summaryrefslogtreecommitdiffabout
path: root/src/eyetil.h
Side-by-side diff
Diffstat (limited to 'src/eyetil.h') (more/less context) (ignore whitespace changes)
-rw-r--r--src/eyetil.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/eyetil.h b/src/eyetil.h
new file mode 100644
index 0000000..195d24f
--- a/dev/null
+++ b/src/eyetil.h
@@ -0,0 +1,48 @@
+#ifndef __EYETIL_H
+#define __EYETIL_H
+
+#include <vector>
+#include <string>
+#include <archive.h>
+#include <archive_entry.h>
+
+class binary_t : public std::vector<unsigned char> {
+ public:
+ binary_t() { }
+ binary_t(size_type n) : std::vector<unsigned char>(n) { }
+ binary_t(const std::string& h) { from_hex(h); }
+ binary_t(const void *d,size_t s) { from_data(d,s); }
+
+ binary_t& from_hex(const std::string& h);
+ binary_t& from_data(const void *d,size_t s);
+
+ std::string hex() const;
+ binary_t md5() const;
+};
+
+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();
+
+ bool read_next_header();
+
+ std::string entry_pathname();
+
+ bool read_data_into_fd(int fd);
+};
+
+#endif /* __EYETIL_H */