Atlas-C++
RootOperation.h
00001 // This file may be redistributed and modified only under the terms of
00002 // the GNU Lesser General Public License (See COPYING for details).
00003 // Copyright 2000-2001 Stefanus Du Toit and Aloril.
00004 // Copyright 2001-2005 Alistair Riddoch.
00005 // Automatically generated using gen_cpp.py.
00006 
00007 #ifndef ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H
00008 #define ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H
00009 
00010 #include <Atlas/Objects/Root.h>
00011 #include <Atlas/Objects/SmartPtr.h>
00012 
00013 #include <Atlas/Objects/objectFactory.h>
00014 
00015 namespace Atlas { namespace Objects { namespace Operation { 
00016 
00027 class RootOperationData;
00028 typedef SmartPtr<RootOperationData> RootOperation;
00029 
00030 static const int ROOT_OPERATION_NO = 9;
00031 
00034 
00040 class RootOperationData : public RootData
00041 {
00042 protected:
00044     RootOperationData(RootOperationData *defaults = NULL) : 
00045         RootData((RootData*)defaults)
00046     {
00047         m_class_no = ROOT_OPERATION_NO;
00048     }
00050     virtual ~RootOperationData();
00051 
00052 public:
00054     virtual RootOperationData * copy() const;
00055 
00057     virtual bool instanceOf(int classNo) const;
00058 
00061     virtual int copyAttr(const std::string& name, Atlas::Message::Element & attr) const;
00063     virtual void setAttr(const std::string& name,
00064                          const Atlas::Message::Element& attr);
00066     virtual void removeAttr(const std::string& name);
00067 
00069     virtual void sendContents(Atlas::Bridge & b) const;
00070 
00072     virtual void addToMessage(Atlas::Message::MapType &) const;
00073 
00075     inline void setSerialno(long val);
00077     inline void setRefno(long val);
00079     inline void setFrom(const std::string& val);
00081     inline void setTo(const std::string& val);
00083     inline void setSeconds(double val);
00085     inline void setFutureSeconds(double val);
00087     inline void setArgs(const std::vector<Root>& val);
00089     inline void setArgsAsList(const Atlas::Message::ListType& val);
00091     template <class ObjectData>
00092     inline void setArgs1(const SmartPtr<ObjectData> & val);
00093 
00095     inline long getSerialno() const;
00097     inline long& modifySerialno();
00099     inline long getRefno() const;
00101     inline long& modifyRefno();
00103     inline const std::string& getFrom() const;
00105     inline std::string& modifyFrom();
00107     inline const std::string& getTo() const;
00109     inline std::string& modifyTo();
00111     inline double getSeconds() const;
00113     inline double& modifySeconds();
00115     inline double getFutureSeconds() const;
00117     inline double& modifyFutureSeconds();
00119     inline const std::vector<Root>& getArgs() const;
00121     inline std::vector<Root>& modifyArgs();
00123     inline const Atlas::Message::ListType getArgsAsList() const;
00124 
00126     inline bool isDefaultSerialno() const;
00128     inline bool isDefaultRefno() const;
00130     inline bool isDefaultFrom() const;
00132     inline bool isDefaultTo() const;
00134     inline bool isDefaultSeconds() const;
00136     inline bool isDefaultFutureSeconds() const;
00138     inline bool isDefaultArgs() const;
00139 
00140 protected:
00142     virtual int getAttrClass(const std::string& name)const;
00144     virtual int getAttrFlag(const std::string& name)const;
00146     long attr_serialno;
00148     long attr_refno;
00150     std::string attr_from;
00152     std::string attr_to;
00154     double attr_seconds;
00156     double attr_future_seconds;
00158     std::vector<Root> attr_args;
00159 
00161     void sendSerialno(Atlas::Bridge&) const;
00163     void sendRefno(Atlas::Bridge&) const;
00165     void sendFrom(Atlas::Bridge&) const;
00167     void sendTo(Atlas::Bridge&) const;
00169     void sendSeconds(Atlas::Bridge&) const;
00171     void sendFutureSeconds(Atlas::Bridge&) const;
00173     void sendArgs(Atlas::Bridge&) const;
00174 
00175     virtual void iterate(int& current_class, std::string& attr) const;
00176 
00177     //freelist related things
00178 public:
00179     static RootOperationData *alloc();
00180     virtual void free();
00181 
00186     virtual RootOperationData *getDefaultObject();
00187 
00192     static RootOperationData *getDefaultObjectInstance();
00193 private:
00194     static RootOperationData *defaults_RootOperationData;
00195     static RootOperationData *begin_RootOperationData;
00196 
00197     static std::map<std::string, int> * attr_flags_RootOperationData;
00198 };
00199 
00200 //
00201 // Attribute name strings follow.
00202 //
00203 
00204 extern const std::string SERIALNO_ATTR;
00205 extern const std::string REFNO_ATTR;
00206 extern const std::string FROM_ATTR;
00207 extern const std::string TO_ATTR;
00208 extern const std::string SECONDS_ATTR;
00209 extern const std::string FUTURE_SECONDS_ATTR;
00210 extern const std::string ARGS_ATTR;
00211 
00212 //
00213 // Inlined member functions follow.
00214 //
00215 
00216 const int SERIALNO_FLAG = 1 << 14;
00217 
00218 void RootOperationData::setSerialno(long val)
00219 {
00220     attr_serialno = val;
00221     m_attrFlags |= SERIALNO_FLAG;
00222 }
00223 
00224 const int REFNO_FLAG = 1 << 15;
00225 
00226 void RootOperationData::setRefno(long val)
00227 {
00228     attr_refno = val;
00229     m_attrFlags |= REFNO_FLAG;
00230 }
00231 
00232 const int FROM_FLAG = 1 << 16;
00233 
00234 void RootOperationData::setFrom(const std::string& val)
00235 {
00236     attr_from = val;
00237     m_attrFlags |= FROM_FLAG;
00238 }
00239 
00240 const int TO_FLAG = 1 << 17;
00241 
00242 void RootOperationData::setTo(const std::string& val)
00243 {
00244     attr_to = val;
00245     m_attrFlags |= TO_FLAG;
00246 }
00247 
00248 const int SECONDS_FLAG = 1 << 18;
00249 
00250 void RootOperationData::setSeconds(double val)
00251 {
00252     attr_seconds = val;
00253     m_attrFlags |= SECONDS_FLAG;
00254 }
00255 
00256 const int FUTURE_SECONDS_FLAG = 1 << 19;
00257 
00258 void RootOperationData::setFutureSeconds(double val)
00259 {
00260     attr_future_seconds = val;
00261     m_attrFlags |= FUTURE_SECONDS_FLAG;
00262 }
00263 
00264 const int ARGS_FLAG = 1 << 20;
00265 
00266 void RootOperationData::setArgs(const std::vector<Root>& val)
00267 {
00268     attr_args = val;
00269     m_attrFlags |= ARGS_FLAG;
00270 }
00271 
00272 void RootOperationData::setArgsAsList(const Atlas::Message::ListType& val)
00273 {
00274     m_attrFlags |= ARGS_FLAG;
00275     attr_args.resize(0);
00276     for(Message::ListType::const_iterator I = val.begin();
00277         I != val.end();
00278         I++)
00279     {
00280         if (I->isMap()) {
00281             attr_args.push_back(Factories::instance()->createObject(I->asMap()));
00282         }
00283     }
00284 }
00285 
00286 template <class ObjectData>
00287 void RootOperationData::setArgs1(const SmartPtr<ObjectData>& val)
00288 {
00289     m_attrFlags |= ARGS_FLAG;
00290     if(attr_args.size()!=1) attr_args.resize(1);
00291     attr_args[0] = val;
00292 }
00293 
00294 long RootOperationData::getSerialno() const
00295 {
00296     if(m_attrFlags & SERIALNO_FLAG)
00297         return attr_serialno;
00298     else
00299         return ((RootOperationData*)m_defaults)->attr_serialno;
00300 }
00301 
00302 long& RootOperationData::modifySerialno()
00303 {
00304     if(!(m_attrFlags & SERIALNO_FLAG))
00305         setSerialno(((RootOperationData*)m_defaults)->attr_serialno);
00306     return attr_serialno;
00307 }
00308 
00309 long RootOperationData::getRefno() const
00310 {
00311     if(m_attrFlags & REFNO_FLAG)
00312         return attr_refno;
00313     else
00314         return ((RootOperationData*)m_defaults)->attr_refno;
00315 }
00316 
00317 long& RootOperationData::modifyRefno()
00318 {
00319     if(!(m_attrFlags & REFNO_FLAG))
00320         setRefno(((RootOperationData*)m_defaults)->attr_refno);
00321     return attr_refno;
00322 }
00323 
00324 const std::string& RootOperationData::getFrom() const
00325 {
00326     if(m_attrFlags & FROM_FLAG)
00327         return attr_from;
00328     else
00329         return ((RootOperationData*)m_defaults)->attr_from;
00330 }
00331 
00332 std::string& RootOperationData::modifyFrom()
00333 {
00334     if(!(m_attrFlags & FROM_FLAG))
00335         setFrom(((RootOperationData*)m_defaults)->attr_from);
00336     return attr_from;
00337 }
00338 
00339 const std::string& RootOperationData::getTo() const
00340 {
00341     if(m_attrFlags & TO_FLAG)
00342         return attr_to;
00343     else
00344         return ((RootOperationData*)m_defaults)->attr_to;
00345 }
00346 
00347 std::string& RootOperationData::modifyTo()
00348 {
00349     if(!(m_attrFlags & TO_FLAG))
00350         setTo(((RootOperationData*)m_defaults)->attr_to);
00351     return attr_to;
00352 }
00353 
00354 double RootOperationData::getSeconds() const
00355 {
00356     if(m_attrFlags & SECONDS_FLAG)
00357         return attr_seconds;
00358     else
00359         return ((RootOperationData*)m_defaults)->attr_seconds;
00360 }
00361 
00362 double& RootOperationData::modifySeconds()
00363 {
00364     if(!(m_attrFlags & SECONDS_FLAG))
00365         setSeconds(((RootOperationData*)m_defaults)->attr_seconds);
00366     return attr_seconds;
00367 }
00368 
00369 double RootOperationData::getFutureSeconds() const
00370 {
00371     if(m_attrFlags & FUTURE_SECONDS_FLAG)
00372         return attr_future_seconds;
00373     else
00374         return ((RootOperationData*)m_defaults)->attr_future_seconds;
00375 }
00376 
00377 double& RootOperationData::modifyFutureSeconds()
00378 {
00379     if(!(m_attrFlags & FUTURE_SECONDS_FLAG))
00380         setFutureSeconds(((RootOperationData*)m_defaults)->attr_future_seconds);
00381     return attr_future_seconds;
00382 }
00383 
00384 const std::vector<Root>& RootOperationData::getArgs() const
00385 {
00386     if(m_attrFlags & ARGS_FLAG)
00387         return attr_args;
00388     else
00389         return ((RootOperationData*)m_defaults)->attr_args;
00390 }
00391 
00392 std::vector<Root>& RootOperationData::modifyArgs()
00393 {
00394     if(!(m_attrFlags & ARGS_FLAG))
00395         setArgs(((RootOperationData*)m_defaults)->attr_args);
00396     return attr_args;
00397 }
00398 
00399 const Atlas::Message::ListType RootOperationData::getArgsAsList() const
00400 {
00401     const std::vector<Root>& args_in = getArgs();
00402     Atlas::Message::ListType args_out;
00403     for(std::vector<Root>::const_iterator I = args_in.begin();
00404         I != args_in.end();
00405         I++)
00406     {
00407         args_out.push_back(Atlas::Message::MapType());
00408         (*I)->addToMessage(args_out.back().asMap());
00409     }
00410     return args_out;
00411 }
00412 
00413 bool RootOperationData::isDefaultSerialno() const
00414 {
00415     return (m_attrFlags & SERIALNO_FLAG) == 0;
00416 }
00417 
00418 bool RootOperationData::isDefaultRefno() const
00419 {
00420     return (m_attrFlags & REFNO_FLAG) == 0;
00421 }
00422 
00423 bool RootOperationData::isDefaultFrom() const
00424 {
00425     return (m_attrFlags & FROM_FLAG) == 0;
00426 }
00427 
00428 bool RootOperationData::isDefaultTo() const
00429 {
00430     return (m_attrFlags & TO_FLAG) == 0;
00431 }
00432 
00433 bool RootOperationData::isDefaultSeconds() const
00434 {
00435     return (m_attrFlags & SECONDS_FLAG) == 0;
00436 }
00437 
00438 bool RootOperationData::isDefaultFutureSeconds() const
00439 {
00440     return (m_attrFlags & FUTURE_SECONDS_FLAG) == 0;
00441 }
00442 
00443 bool RootOperationData::isDefaultArgs() const
00444 {
00445     return (m_attrFlags & ARGS_FLAG) == 0;
00446 }
00447 
00448 
00449 } } } // namespace Atlas::Objects::Operation
00450 
00451 #endif // ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H

Copyright 2000-2004 the respective authors.

This document can be licensed under the terms of the GNU Free Documentation License or the GNU General Public License and may be freely distributed under the terms given by one of these licenses.