-rw-r--r-- | src/eyetil.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/eyetil.h b/src/eyetil.h index 8784cb4..64948d0 100644 --- a/src/eyetil.h +++ b/src/eyetil.h @@ -1,14 +1,16 @@ #ifndef __EYETIL_H #define __EYETIL_H #include <vector> #include <string> +#include <fstream> #include <archive.h> #include <archive_entry.h> #include "openssl/md5.h" +#include "soapH.h" struct throwable_exit { int rc; throwable_exit(int rc_) : rc(rc_) { } }; @@ -107,10 +109,30 @@ class tarchive_t { 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 */ |