-rw-r--r-- | src/eyetil.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/eyetil.h b/src/eyetil.h index 64948d0..8af18a4 100644 --- a/src/eyetil.h +++ b/src/eyetil.h @@ -41,98 +41,98 @@ struct md5_digester { void update(const T& x) { update(&x,sizeof(x)); } template<typename T> struct update_iterator : public std::iterator<std::output_iterator_tag,T,void,T*,T&> { md5_digester *d; update_iterator(md5_digester *d_) : d(d_) { } update_iterator(const update_iterator& x) : d(x.d) { } update_iterator& operator*() { return *this; } update_iterator& operator++() { return *this; } update_iterator& operator++(int) { return *this; } update_iterator& operator=(const T& x) { d->update(x); return *this; } }; template<typename T> update_iterator<T> updater() { return update_iterator<T>(this); } }; template<> inline void md5_digester::update<binary_t>(const binary_t& x) { update((const unsigned char*)&(x.front()),x.size()); } #pragma pack(1) struct block512_t { enum { words = 512 / sizeof(uint16_t) }; uint16_t data[words]; inline uint8_t *dptr(size_t o) { return ((uint8_t*)this)+o; } static uint16_t tcpcksum(block512_t& data); }; #pragma pack() struct integrity_digester { md5_digester md5; size_t data_size; block512_t data; integrity_digester() : data_size(0) { } void update(const void *d,size_t s); binary_t final(const std::string& ukey); }; class tmpdir_t { public: std::string dir; tmpdir_t(const std::string& dt); ~tmpdir_t(); std::string get_file(const std::string& f); }; class tarchive_t { public: struct archive *a; struct archive_entry *e; - tarchive_t(void *p,size_t s); + tarchive_t(const char *); ~tarchive_t(); bool read_next_header(); std::string entry_pathname(); bool read_data_into_fd(int fd); }; struct mimewrite_base { virtual ~mimewrite_base() { } virtual int write(const char *buf,size_t len) = 0; virtual void close() = 0; }; struct mimewrite_string : public mimewrite_base { std::string str; int write(const char *buf,size_t len) { str.append(buf,len); return SOAP_OK; }; void close() { } }; struct mimewrite_tarfile : public mimewrite_base { std::string fn; std::fstream f; integrity_digester idigest; mimewrite_tarfile(tmpdir_t& d); ~mimewrite_tarfile(); int write(const char *buf,size_t len); void close() { } }; binary_t integrity_digest(const void *ptr,size_t size, const std::string& ukey); #endif /* __EYETIL_H */ |