/*
* call-seq:
* iw.add_readers(reader_array) -> iw
*
* Use this method to merge other indexes into the one being written by
* IndexWriter. This is useful for parallel indexing. You can have several
* indexing processes running in parallel, possibly even on different
* machines. Then you can finish by merging all of the indexes into a single
* index.
*/
static VALUE
frt_iw_add_readers(VALUE self, VALUE rreaders)
{
IndexWriter *iw = (IndexWriter *)DATA_PTR(self);
int i;
IndexReader **irs;
Check_Type(rreaders, T_ARRAY);
irs = ALLOC_N(IndexReader *, RARRAY(rreaders)->len);
i = RARRAY(rreaders)->len;
while (i-- > 0) {
IndexReader *ir;
Data_Get_Struct(RARRAY(rreaders)->ptr[i], IndexReader, ir);
irs[i] = ir;
}
iw_add_readers(iw, irs, RARRAY(rreaders)->len);
free(irs);
return self;
}