X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=store.h;h=72fde52fcb2fb1b7d60b2712e9b12670e29a9ee6;hb=3addc0c5e928bc7b0fc6ff1ef8b7dff7263cf3ea;hp=1ef5db46a5f6eb2cb39ec99dcf347b4bdbbff492;hpb=5c10647d667fc4408b73402db9247181a54a57ad;p=cumulus.git diff --git a/store.h b/store.h index 1ef5db4..72fde52 100644 --- a/store.h +++ b/store.h @@ -49,10 +49,11 @@ public: Tarfile(const std::string &path, const std::string &segment); ~Tarfile(); + int spawn_filter(int fd_out); void write_object(int id, const char *data, size_t len); // Return an estimate of the size of the file. - size_t size_estimate() { return size; } + size_t size_estimate(); void internal_write_object(const std::string &path, const char *data, size_t len); @@ -61,6 +62,10 @@ private: size_t size; std::string segment_name; TAR *t; + + /* Filter support. */ + int real_fd, filter_fd; + pid_t filter_pid; }; class TarSegmentStore { @@ -139,4 +144,11 @@ private: ObjectReference ref; }; +/* Program through which segment data is piped before being written to file. */ +extern const char *filter_program; + +/* Extension which should be appended to segments written out (.tar is already + * included; this adds to it) */ +extern const char *filter_extension; + #endif // _LBS_STORE_H