#include <sstream>
#include "format.h"
-#include "tarstore.h"
+#include "store.h"
#include "sha1.h"
using std::list;
hash.process(block_buf, bytes);
// tarstore processing
- string blockid = tss->write_object(block_buf, bytes, "data");
- segment_list.push_back(blockid);
+ LbsObject *o = new LbsObject;
+ o->set_group("data");
+ o->set_data(block_buf, bytes);
+ o->write(tss);
+ segment_list.push_back(o->get_name());
+ delete o;
size += bytes;
}
i != segment_list.end(); ++i) {
blocklist += *i + "\n";
}
- string indirect = tss->write_object(blocklist.data(), blocklist.size(),
- "indirect");
- file_info["data"] = "@" + indirect;
+
+ LbsObject *i = new LbsObject;
+ i->set_group("indirect");
+ i->set_data(blocklist.data(), blocklist.size());
+ i->write(tss);
+ file_info["data"] = "@" + i->get_name();
+ delete i;
}
}
{
block_buf = new char[LBS_BLOCK_SIZE];
- tss = new TarSegmentStore(".");
+ if (argc > 1) {
+ tss = new TarSegmentStore(argv[1]);
+ } else {
+ tss = new TarSegmentStore(".");
+ }
std::ostringstream metadata;
}
const string md = metadata.str();
- string root = tss->write_object(md.data(), md.size(), "root");
+
+ LbsObject *r = new LbsObject;
+ r->set_group("root");
+ r->set_data(md.data(), md.size());
+ r->write(tss);
+ delete r;
tss->sync();
delete tss;