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
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
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
00053 virtual void readRecordFix (std::istream & fix)
00054 {
00055 fix . get (status_m);
00056 comment_m.clear();
00057 }
00058
00059
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
00078 Universal_t ( )
00079 {
00080 status_m = NULL_STATUS;
00081 }
00082
00083
00084
00087 Universal_t (const Universal_t & source)
00088 {
00089 *this = source;
00090 }
00091
00092
00093
00096 virtual ~Universal_t ( )
00097 {
00098
00099 }
00100
00101
00102
00103 virtual void clear ( )
00104 {
00105 IBankable_t::clear( );
00106 status_m = NULL_STATUS;
00107 comment_m . erase( );
00108 }
00109
00110
00111
00116 const std::string & getComment ( ) const
00117 {
00118 return comment_m;
00119 }
00120
00121
00122
00127 const Status_t getStatus ( ) const
00128 {
00129 return status_m;
00130 }
00131
00132
00133
00134 virtual NCode_t getNCode ( ) const
00135 {
00136 return Universal_t::NCODE;
00137 }
00138
00139
00140
00141 virtual void readMessage (const Message_t & msg);
00142
00143
00144
00150 void setComment (const std::string & comment)
00151 {
00152 comment_m = comment;
00153 }
00154
00155
00156
00162 void setStatus (Status_t status)
00163 {
00164 status_m = status;
00165 }
00166
00167
00168
00169 virtual void writeMessage (Message_t & msg) const;
00170
00171 };
00172
00173 }
00174
00175 #endif // #ifndef __Universal_AMOS_HH