include/gn/gnBaseSpec.h

Go to the documentation of this file.
00001 00002 // File: gnBaseSpec.h 00003 // Purpose: abstract Spec class 00004 // Description: Defines a basic interface for all specs 00005 // Changes: 00006 // Version: libGenome 0.5.1 00007 // Author: Aaron Darling 00008 // Modified by: 00009 // Copyright: (c) Aaron Darling 00010 // Licenses: See COPYING file for details 00012 #ifndef _gnBaseSpec_h_ 00013 #define _gnBaseSpec_h_ 00014 00015 #include "gn/gnDefs.h" 00016 00017 #include <vector> 00018 #include <string> 00019 00020 #include "gn/gnClone.h" 00021 #include "gn/gnBaseFeature.h" 00022 #include "gn/gnBaseHeader.h" 00023 00027 class GNDLLEXPORT gnBaseSpec : public gnClone 00028 { 00029 public: 00030 gnBaseSpec(){} 00034 virtual ~gnBaseSpec(){} 00035 virtual gnBaseSpec* Clone() const = 0; 00036 virtual gnBaseSpec* CloneRange( const gnSeqI startI, const gnSeqI len ) const = 0; 00041 virtual string GetName() const; 00047 virtual void SetName( const string& name ); 00052 virtual gnSeqI GetLength() const = 0; 00057 virtual boolean IsReverseComplement() const; 00062 virtual boolean IsCircular() const; 00067 virtual void SetReverseComplement( const boolean value ) = 0; 00074 virtual void SetCircular( const boolean value ); 00080 virtual void CropStart( gnSeqI cropLen ) = 0; 00086 virtual void CropEnd( gnSeqI cropLen ) = 0; 00087 00101 virtual boolean SeqRead(const gnSeqI start, gnSeqC* buf, gnSeqI& bufLen, const uint32 contigI ) const = 0; 00105 virtual void Clear(); 00106 protected: 00107 boolean m_reverseComplement; 00108 boolean m_circular; 00109 00110 string m_name; 00111 string m_sourceName; 00112 00113 }; // class gnBaseSpec 00114 00115 inline 00116 string gnBaseSpec::GetName() const{ 00117 return m_name; 00118 } 00119 inline 00120 void gnBaseSpec::SetName( const string& name ){ 00121 m_name = name; 00122 } 00123 inline 00124 boolean gnBaseSpec::IsReverseComplement() const{ 00125 return m_reverseComplement; 00126 } 00127 inline 00128 boolean gnBaseSpec::IsCircular() const{ 00129 return m_circular; 00130 } 00131 inline 00132 void gnBaseSpec::SetCircular( const boolean value ){ 00133 m_circular = value; 00134 } 00135 inline 00136 void gnBaseSpec::Clear(){ 00137 m_sourceName = ""; 00138 m_name = ""; 00139 m_reverseComplement = false; 00140 m_circular = false; 00141 } 00142 00143 #endif 00144 // _gnBaseSpec_h_

Generated on Mon Feb 14 19:28:17 2005 for libGenome by doxygen 1.3.8