#include "CifFileObj.h"
#include <iostream.h>


#define FALSE 0
int main() {
  char *diags=NULL;
  CifFileObj * fobjR = NULL;

  fobjR = new CifFileObj("./test/TESTFILE2", WRITE_MODE, 80, "?", 1);
  fobjR->Read("./test/view1.cif",diags);
  if (diags) cout << " Diagnostics [" << strlen(diags) << "] " << diags << endl;

  fobjR->Read("./test/view2.cif",diags);
  if (diags) cout << " Diagnostics [" << strlen(diags) << "] " << diags << endl;

  ISTable *cst = new ISTable("ndb_tool_category_state1");
  cst->AddColumn("category");
  cst->AddColumn("row_current");
  cst->AddColumn("row_maximum");
  cst->AddColumn("status");
  ReVarCifArray<CifString> *c0 = NULL;
  ReVarCifArray<CifString> *c1 = NULL;
  ReVarCifArray<CifString> *c2 = NULL;
  ReVarCifArray<CifString> *c3 = NULL;
  
  c0 = new  ReVarCifArray<CifString>;
  c1 = new  ReVarCifArray<CifString>;
  c2 = new  ReVarCifArray<CifString>;
  c3 = new  ReVarCifArray<CifString>;
  CifString cs;
  
  for (int i=0; i < 100;  i++) {
      cs.Clear(); cs.Copy("data point"); c0->Add(cs);
      cs.Clear(); cs.Copy("0");          c1->Add(cs);
      cs.Clear(); cs.Copy("1");            c2->Add(cs);
      cs.Clear(); cs.Copy("0");            c3->Add(cs);
  }
  cst->FillColumn(*c0,0);
  cst->FillColumn(*c1,1);
  cst->FillColumn(*c2,2);
  cst->FillColumn(*c3,3);
  fobjR->WriteTable(cst,"view1","ndb_tool_category_state1");

  fobjR->RenameBlock("view100",0);
  fobjR->Write("./test/view-all.ocif");
  fobjR->CloseFile(1);
  if (fobjR) delete fobjR;
  if (c0) delete c0;
  if (c1) delete c1;
  if (c2) delete c2;
  if (c3) delete c3;

  exit(0);
}
