CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sync_item_tar.h
Go to the documentation of this file.
1 
5 #ifndef CVMFS_SYNC_ITEM_TAR_H_
6 #define CVMFS_SYNC_ITEM_TAR_H_
7 
8 #include "sync_item.h"
9 
10 #include <string>
11 
12 #include "directory_entry.h"
13 #include "duplex_libarchive.h"
15 #include "sync_union_tarball.h"
16 #include "util/concurrency.h"
17 #include "util/platform.h"
18 
19 namespace publish {
20 
21 class SyncItemTar : public SyncItem {
22  friend class SyncUnionTarball;
23 
24  public:
26  virtual IngestionSource *CreateIngestionSource() const;
27  virtual void MakePlaceholderDirectory() const { rdonly_type_ = kItemDir; }
28  virtual SyncItemType GetScratchFiletype() const;
29  virtual bool IsType(const SyncItemType expected_type) const;
30  virtual void StatScratch(const bool refresh) const;
31 
32  protected:
33  SyncItemTar(const std::string &relative_parent_path,
34  const std::string &filename, struct archive *archive,
35  struct archive_entry *entry, Signal *read_archive_signal,
36  const SyncUnion *union_engine, const uid_t uid, const gid_t gid);
37  SyncItemTar(const std::string &relative_parent_path,
38  const std::string &filename, struct archive *archive,
39  struct archive_entry *entry, Signal *read_archive_signal,
40  const SyncUnion *union_engine);
41 
42  private:
43  struct archive *archive_;
44  struct archive_entry *archive_entry_;
47  mutable bool obtained_tar_stat_;
49  const uid_t uid_;
50  const gid_t gid_;
51 };
52 
53 } // namespace publish
54 
55 #endif // CVMFS_SYNC_ITEM_TAR_H_
struct stat64 platform_stat64
SyncItemType rdonly_type_
Definition: sync_item.h:268
platform_stat64 GetStatFromTar() const
struct archive * archive_
Definition: sync_item_tar.h:43
virtual void StatScratch(const bool refresh) const
std::string relative_parent_path() const
Definition: sync_item.h:175
virtual bool IsType(const SyncItemType expected_type) const
platform_stat64 tar_stat_
Definition: sync_item_tar.h:46
Signal * read_archive_signal_
Definition: sync_item_tar.h:48
SyncItemType
Definition: sync_item.h:29
struct archive_entry * archive_entry_
Definition: sync_item_tar.h:44
std::string filename() const
Definition: sync_item.h:174
virtual void MakePlaceholderDirectory() const
Definition: sync_item_tar.h:27
virtual IngestionSource * CreateIngestionSource() const
SyncItemTar(const std::string &relative_parent_path, const std::string &filename, struct archive *archive, struct archive_entry *entry, Signal *read_archive_signal, const SyncUnion *union_engine, const uid_t uid, const gid_t gid)
virtual SyncItemType GetScratchFiletype() const
virtual catalog::DirectoryEntryBase CreateBasicCatalogDirent() const