* is built on top of libtar, and represents segments as TAR files and objects
* as files within them. */
+#include <assert.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
{
return object;
}
+
+LbsObject::LbsObject()
+ : group(""), data(NULL), data_len(0), written(false)
+{
+}
+
+LbsObject::~LbsObject()
+{
+}
+
+void LbsObject::add_reference(const LbsObject *o)
+{
+ refs.insert(o->get_name());
+}
+
+void LbsObject::write(TarSegmentStore *store)
+{
+ assert(data != NULL);
+ assert(!written);
+
+ list<string> reflist;
+ for (set<string>::iterator i = refs.begin(); i != refs.end(); ++i) {
+ reflist.push_back(*i);
+ }
+
+ name = store->write_object(data, data_len, group, reflist);
+
+ written = true;
+ data = NULL;
+}