#include "api1/Cipres.idl" module CipresIDL_api1 { interface CharacterDB: Scriptable { typedef sequence stringArray; typedef sequence stringMatrix; string getDatabaseName(); stringArray getAnyTaxa(); //returns taxa matching taxaID stringArray getTaxa(in string taxaID); //returns taxa matching taxaID string findTaxa(in stringArray taxa); //returns taxa ID; "" if taxa matching array not found string makeTaxa(in stringArray taxa); //establishes block of taxa and returns ID long getNumberOfMatrices(in string taxaID); //returns matrix ID; "" if matrix for taxa not found string getMatrix(in string taxaID, in long whichMatrix); //returns matrix ID; "" if matrix for taxa not found string findMatrix(in string taxaID); //returns matrix ID; "" if matrix for taxa not found string makeMatrix(in string taxaID, in long numberOfCharacters); //establishes matrix and returns ID long getNumberOfCharacters(in string matrixID); void putState(in string matrixID, in long whichTaxon, in long whichCharacter, in string state); string getState(in string matrixID, in long whichTaxon, in long whichCharacter); }; interface ChDBFactory { CharacterDB build(in string clientID); //establishes a session for client }; };