#define C_KINO_DATAWRITER
#include "KinoSearch/Util/ToolSet.h"
#include "KinoSearch/Index/DataWriter.h"
#include "KinoSearch/Plan/Schema.h"
#include "KinoSearch/Store/Folder.h"
#include "KinoSearch/Index/PolyReader.h"
#include "KinoSearch/Index/Segment.h"
#include "KinoSearch/Index/SegReader.h"
#include "KinoSearch/Index/Snapshot.h"
#include "KinoSearch/Store/Folder.h"
DataWriter*
DataWriter_init(DataWriter *self, Schema *schema, Snapshot *snapshot,
Segment *segment, PolyReader *polyreader)
{
self->snapshot = (Snapshot*)INCREF(snapshot);
self->segment = (Segment*)INCREF(segment);
self->polyreader = (PolyReader*)INCREF(polyreader);
self->schema = (Schema*)INCREF(schema);
self->folder = (Folder*)INCREF(PolyReader_Get_Folder(polyreader));
ABSTRACT_CLASS_CHECK(self, DATAWRITER);
return self;
}
void
DataWriter_destroy(DataWriter *self)
{
DECREF(self->snapshot);
DECREF(self->segment);
DECREF(self->polyreader);
DECREF(self->schema);
DECREF(self->folder);
SUPER_DESTROY(self, DATAWRITER);
}
Snapshot*
DataWriter_get_snapshot(DataWriter *self) { return self->snapshot; }
Segment*
DataWriter_get_segment(DataWriter *self) { return self->segment; }
PolyReader*
DataWriter_get_polyreader(DataWriter *self) { return self->polyreader; }
Schema*
DataWriter_get_schema(DataWriter *self) { return self->schema; }
Folder*
DataWriter_get_folder(DataWriter *self) { return self->folder; }
void
DataWriter_delete_segment(DataWriter *self, SegReader *reader)
{
UNUSED_VAR(self);
UNUSED_VAR(reader);
}
void
DataWriter_merge_segment(DataWriter *self, SegReader *reader,
I32Array *doc_map)
{
DataWriter_Add_Segment(self, reader, doc_map);
DataWriter_Delete_Segment(self, reader);
}
Hash*
DataWriter_metadata(DataWriter *self)
{
Hash *metadata = Hash_new(0);
Hash_Store_Str(metadata, "format", 6,
(Obj*)CB_newf("%i32", DataWriter_Format(self)));
return metadata;
}
/* Copyright 2007-2011 Marvin Humphrey
*
* This program is free software; you can redistribute it and/or modify
* under the same terms as Perl itself.
*/