00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
#ifndef _gnBaseSource_h_
00013
#define _gnBaseSource_h_
00014
00015
#include "gn/gnDefs.h"
00016
00017
#include <string>
00018
00019
#include "gn/gnClone.h"
00020
class gnGenomeSpec;
00021
class gnFilter;
00022
00031 class GNDLLEXPORT gnBaseSource :
public gnClone
00032 {
00033
public:
00034 gnBaseSource(){}
00038 virtual ~gnBaseSource(){}
00039
virtual gnBaseSource*
Clone() const = 0;
00040
00049 virtual
void Open( string openString ) = 0;
00055 virtual
void Open() = 0;
00060 virtual
void Close() = 0;
00066 virtual string GetOpenString() const = 0;
00067
00072 virtual
uint32 GetContigListLength() const = 0;
00079 virtual
boolean HasContig( const string& name ) const = 0;
00087 virtual
uint32 GetContigID( const string& name ) const = 0;
00094 virtual string GetContigName( const
uint32 i ) const = 0;
00100 virtual
gnSeqI GetContigSeqLength( const
uint32 i ) const = 0;
00101
00106 virtual const
gnFilter* GetFilter() const = 0;
00112 virtual
void SetFilter(
gnFilter* filter ) = 0;
00113
00124 virtual
boolean Read( const
uint64 pos,
char* buf,
gnSeqI& bufLen) = 0;
00138 virtual
boolean SeqRead( const
gnSeqI start,
char* buf,
gnSeqI& bufLen, const
uint32 contigI=ALL_CONTIGS ) = 0;
00145 virtual
gnGenomeSpec *GetSpec() const = 0;
00146 private:
00147 };
00148
00149 #endif
00150