Universal_AMOS.hh

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 #ifndef __Universal_AMOS_HH
00011 #define __Universal_AMOS_HH 1
00012 
00013 #include "Message_AMOS.hh"
00014 #include "datatypes_AMOS.hh"
00015 #include "databanks_AMOS.hh"
00016 #include <string>
00017 #include <sstream>
00018 #include <utility>
00019 
00020 
00021 
00022 
00023 namespace AMOS {
00024 
00025 //================================================ Universal_t =================
00033 //==============================================================================
00034 class Universal_t : public IBankable_t, public IMessagable_t
00035 {
00036 
00037 private:
00038 
00039   Status_t status_m;          
00040   std::string comment_m;      
00041 
00042 
00043 protected:
00044 
00045   //--------------------------------------------------- readRecord -------------
00046   virtual void readRecord (std::istream & fix, std::istream & var)
00047   {
00048     fix . get (status_m);
00049     std::getline (var, comment_m, '\0');
00050   }
00051 
00052   //--------------------------------------------------- readRecordFix ----------
00053   virtual void readRecordFix (std::istream & fix)
00054   {
00055     fix . get (status_m);
00056     comment_m.clear();
00057   }
00058 
00059   //--------------------------------------------------- writeRecord ------------
00060   virtual void writeRecord (std::ostream & fix, std::ostream & var) const
00061   {
00062     fix . put (status_m);
00063     var . write (comment_m . c_str( ), comment_m . size( ) + 1);
00064   }
00065 
00066 
00067 public:
00068 
00069   static const NCode_t NCODE;
00071 
00072 
00073   //--------------------------------------------------- Universal_t ------------
00078   Universal_t ( )
00079   {
00080     status_m = NULL_STATUS;
00081   }
00082 
00083 
00084   //--------------------------------------------------- Universal_t ------------
00087   Universal_t (const Universal_t & source)
00088   {
00089     *this = source;
00090   }
00091 
00092 
00093   //--------------------------------------------------- ~Universal_t -----------
00096   virtual ~Universal_t ( )
00097   {
00098 
00099   }
00100 
00101 
00102   //--------------------------------------------------- clear ------------------
00103   virtual void clear ( )
00104   {
00105     IBankable_t::clear( );
00106     status_m = NULL_STATUS;
00107     comment_m . erase( );
00108   }
00109 
00110 
00111   //--------------------------------------------------- getComment -------------
00116   const std::string & getComment ( ) const
00117   {
00118     return comment_m;
00119   }
00120 
00121 
00122   //--------------------------------------------------- getStatus --------------
00127   const Status_t getStatus ( ) const
00128   {
00129     return status_m;
00130   }
00131 
00132 
00133   //--------------------------------------------------- getNCode ---------------
00134   virtual NCode_t getNCode ( ) const
00135   {
00136     return Universal_t::NCODE;
00137   }
00138 
00139 
00140   //--------------------------------------------------- readMessage ------------
00141   virtual void readMessage (const Message_t & msg);
00142 
00143 
00144   //--------------------------------------------------- setComment -------------
00150   void setComment (const std::string & comment)
00151   {
00152     comment_m = comment;
00153   }
00154 
00155 
00156   //--------------------------------------------------- setStatus --------------
00162   void setStatus (Status_t status)
00163   {
00164     status_m = status;
00165   }
00166 
00167 
00168   //--------------------------------------------------- writeMessage -----------
00169   virtual void writeMessage (Message_t & msg) const;
00170 
00171 };
00172 
00173 } // namespace AMOS
00174 
00175 #endif // #ifndef __Universal_AMOS_HH

Generated on Mon Feb 22 17:36:27 2010 for libAMOS by  doxygen 1.4.7