00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #ifndef __ScaffoldEdge_AMOS_HH 00011 #define __ScaffoldEdge_AMOS_HH 1 00012 00013 #include "Edge_AMOS.hh" 00014 #include "ScaffoldLink_AMOS.hh" 00015 #include <vector> 00016 00017 00018 00019 00020 namespace AMOS { 00021 00022 //================================================ ScaffoldEdge_t ============== 00028 //============================================================================== 00029 class ScaffoldEdge_t : public ScaffoldLink_t, public IEdge_t 00030 { 00031 00032 private: 00033 00034 void setNodeType (NCode_t nodtype); 00035 00036 00037 protected: 00038 00039 //--------------------------------------------------- readRecord ------------- 00040 virtual void readRecord (std::istream & fix, std::istream & var); 00041 00042 00043 //--------------------------------------------------- writeRecord ------------ 00044 virtual void writeRecord (std::ostream & fix, std::ostream & var) const; 00045 00046 00047 public: 00048 00049 static const NCode_t NCODE; 00051 00052 00053 //--------------------------------------------------- ScaffoldEdge_t --------- 00056 ScaffoldEdge_t ( ) 00057 { 00058 // ScaffoldLink_t sets NodeType 00059 } 00060 00061 00062 //--------------------------------------------------- ScaffoldEdge_t --------- 00065 ScaffoldEdge_t (const ScaffoldEdge_t & source) 00066 { 00067 *this = source; 00068 } 00069 00070 00071 //--------------------------------------------------- ~ScaffoldEdge_t -------- 00074 ~ScaffoldEdge_t ( ) 00075 { 00076 00077 } 00078 00079 00080 //--------------------------------------------------- clear ------------------ 00081 virtual void clear ( ) 00082 { 00083 // ScaffoldLink_t preserves NodeType 00084 ScaffoldLink_t::clear( ); 00085 IEdge_t::clear( ); 00086 } 00087 00088 00089 //--------------------------------------------------- getScaffoldLinks ------- 00094 const std::vector<ID_t> & getScaffoldLinks ( ) const 00095 { 00096 return IEdge_t::getLinks( ); 00097 } 00098 00099 00100 //--------------------------------------------------- getScaffoldLinks ------- 00105 std::vector<ID_t> & getScaffoldLinks ( ) 00106 { 00107 return IEdge_t::getLinks( ); 00108 } 00109 00110 00111 //--------------------------------------------------- getNCode --------------- 00112 virtual NCode_t getNCode ( ) const 00113 { 00114 return ScaffoldEdge_t::NCODE; 00115 } 00116 00117 00118 //--------------------------------------------------- readMessage ------------ 00119 virtual void readMessage (const Message_t & msg); 00120 00121 00122 //--------------------------------------------------- setScaffoldLinks ------- 00128 void setScaffoldLinks (const std::vector<ID_t> & links) 00129 { 00130 IEdge_t::setLinks (links); 00131 } 00132 00133 00134 //--------------------------------------------------- writeMessage ----------- 00135 virtual void writeMessage (Message_t & msg) const; 00136 00137 }; 00138 00139 } // namespace AMOS 00140 00141 #endif // #ifndef __ScaffoldEdge_AMOS_HH