#include <eutils/emodule.h>

#include "eseq.h"
#include "eseqali.h"

extern "C" void emoduleRegister(emoduleInfo *mInfo)
{
  epregisterClass(estrarrayof<eseq>);
  epregisterClassInheritance(estrarrayof<eseq>,ebasearrayof);
  epregisterClass(ealigndata);
  epregisterClassConstructor(ealigndata,());
  epregisterClassProperty(ealigndata,matches);
  epregisterClassProperty(ealigndata,mismatches);
  epregisterClassProperty(ealigndata,gaps);
  epregisterClassProperty(ealigndata,s1);
  epregisterClassProperty(ealigndata,e1);
  epregisterClassProperty(ealigndata,s2);
  epregisterClassProperty(ealigndata,e2);
  epregisterClassMethod(ealigndata,align_str);
  epregisterClassMethod(ealigndata,identity);
  epregisterClassMethod(ealigndata,score);
  epregisterFunc(seqalign_global);
  epregisterFunc(seqalign_global_nogap);
  epregisterClass(eseq);
  epregisterClassMethod(eseq,revcompl);
  epregisterClassMethod(eseq,subseq);
  epregisterClassMethod(eseq,print_seq);
  epregisterClassProperty(eseq,seqlen);

  epregisterFunc2(load_seqs,estrarrayof<eseq>,(const estr&));
}
