Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

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-2004 Al 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 // Inlined member functions follow.
00202 //
00203 
00204 const int SERIALNO_FLAG = 1 << 14;
00205 void RootOperationData::setSerialno(long val)
00206 {
00207     attr_serialno = val;
00208     m_attrFlags |= SERIALNO_FLAG;
00209 }
00210 
00211 const int REFNO_FLAG = 1 << 15;
00212 void RootOperationData::setRefno(long val)
00213 {
00214     attr_refno = val;
00215     m_attrFlags |= REFNO_FLAG;
00216 }
00217 
00218 const int FROM_FLAG = 1 << 16;
00219 void RootOperationData::setFrom(const std::string& val)
00220 {
00221     attr_from = val;
00222     m_attrFlags |= FROM_FLAG;
00223 }
00224 
00225 const int TO_FLAG = 1 << 17;
00226 void RootOperationData::setTo(const std::string& val)
00227 {
00228     attr_to = val;
00229     m_attrFlags |= TO_FLAG;
00230 }
00231 
00232 const int SECONDS_FLAG = 1 << 18;
00233 void RootOperationData::setSeconds(double val)
00234 {
00235     attr_seconds = val;
00236     m_attrFlags |= SECONDS_FLAG;
00237 }
00238 
00239 const int FUTURE_SECONDS_FLAG = 1 << 19;
00240 void RootOperationData::setFutureSeconds(double val)
00241 {
00242     attr_future_seconds = val;
00243     m_attrFlags |= FUTURE_SECONDS_FLAG;
00244 }
00245 
00246 const int ARGS_FLAG = 1 << 20;
00247 void RootOperationData::setArgs(const std::vector<Root>& val)
00248 {
00249     attr_args = val;
00250     m_attrFlags |= ARGS_FLAG;
00251 }
00252 
00253 void RootOperationData::setArgsAsList(const Atlas::Message::ListType& val)
00254 {
00255     m_attrFlags |= ARGS_FLAG;
00256     attr_args.resize(0);
00257     for(Message::ListType::const_iterator I = val.begin();
00258         I != val.end();
00259         I++)
00260     {
00261         if (I->isMap()) {
00262             attr_args.push_back(Factories::instance()->createObject(I->asMap()));
00263         }
00264     }
00265 }
00266 
00267 template <class ObjectData>
00268 void RootOperationData::setArgs1(const SmartPtr<ObjectData>& val)
00269 {
00270     m_attrFlags |= ARGS_FLAG;
00271     if(attr_args.size()!=1) attr_args.resize(1);
00272     attr_args[0] = val;
00273 }
00274 
00275 long RootOperationData::getSerialno() const
00276 {
00277     if(m_attrFlags & SERIALNO_FLAG)
00278         return attr_serialno;
00279     else
00280         return ((RootOperationData*)m_defaults)->attr_serialno;
00281 }
00282 
00283 long& RootOperationData::modifySerialno()
00284 {
00285     if(!(m_attrFlags & SERIALNO_FLAG))
00286         setSerialno(((RootOperationData*)m_defaults)->attr_serialno);
00287     return attr_serialno;
00288 }
00289 
00290 long RootOperationData::getRefno() const
00291 {
00292     if(m_attrFlags & REFNO_FLAG)
00293         return attr_refno;
00294     else
00295         return ((RootOperationData*)m_defaults)->attr_refno;
00296 }
00297 
00298 long& RootOperationData::modifyRefno()
00299 {
00300     if(!(m_attrFlags & REFNO_FLAG))
00301         setRefno(((RootOperationData*)m_defaults)->attr_refno);
00302     return attr_refno;
00303 }
00304 
00305 const std::string& RootOperationData::getFrom() const
00306 {
00307     if(m_attrFlags & FROM_FLAG)
00308         return attr_from;
00309     else
00310         return ((RootOperationData*)m_defaults)->attr_from;
00311 }
00312 
00313 std::string& RootOperationData::modifyFrom()
00314 {
00315     if(!(m_attrFlags & FROM_FLAG))
00316         setFrom(((RootOperationData*)m_defaults)->attr_from);
00317     return attr_from;
00318 }
00319 
00320 const std::string& RootOperationData::getTo() const
00321 {
00322     if(m_attrFlags & TO_FLAG)
00323         return attr_to;
00324     else
00325         return ((RootOperationData*)m_defaults)->attr_to;
00326 }
00327 
00328 std::string& RootOperationData::modifyTo()
00329 {
00330     if(!(m_attrFlags & TO_FLAG))
00331         setTo(((RootOperationData*)m_defaults)->attr_to);
00332     return attr_to;
00333 }
00334 
00335 double RootOperationData::getSeconds() const
00336 {
00337     if(m_attrFlags & SECONDS_FLAG)
00338         return attr_seconds;
00339     else
00340         return ((RootOperationData*)m_defaults)->attr_seconds;
00341 }
00342 
00343 double& RootOperationData::modifySeconds()
00344 {
00345     if(!(m_attrFlags & SECONDS_FLAG))
00346         setSeconds(((RootOperationData*)m_defaults)->attr_seconds);
00347     return attr_seconds;
00348 }
00349 
00350 double RootOperationData::getFutureSeconds() const
00351 {
00352     if(m_attrFlags & FUTURE_SECONDS_FLAG)
00353         return attr_future_seconds;
00354     else
00355         return ((RootOperationData*)m_defaults)->attr_future_seconds;
00356 }
00357 
00358 double& RootOperationData::modifyFutureSeconds()
00359 {
00360     if(!(m_attrFlags & FUTURE_SECONDS_FLAG))
00361         setFutureSeconds(((RootOperationData*)m_defaults)->attr_future_seconds);
00362     return attr_future_seconds;
00363 }
00364 
00365 const std::vector<Root>& RootOperationData::getArgs() const
00366 {
00367     if(m_attrFlags & ARGS_FLAG)
00368         return attr_args;
00369     else
00370         return ((RootOperationData*)m_defaults)->attr_args;
00371 }
00372 
00373 std::vector<Root>& RootOperationData::modifyArgs()
00374 {
00375     if(!(m_attrFlags & ARGS_FLAG))
00376         setArgs(((RootOperationData*)m_defaults)->attr_args);
00377     return attr_args;
00378 }
00379 
00380 const Atlas::Message::ListType RootOperationData::getArgsAsList() const
00381 {
00382     const std::vector<Root>& args_in = getArgs();
00383     Atlas::Message::ListType args_out;
00384     for(std::vector<Root>::const_iterator I = args_in.begin();
00385         I != args_in.end();
00386         I++)
00387     {
00388         args_out.push_back(Atlas::Message::MapType());
00389         (*I)->addToMessage(args_out.back().asMap());
00390     }
00391     return args_out;
00392 }
00393 
00394 bool RootOperationData::isDefaultSerialno() const
00395 {
00396     return (m_attrFlags & SERIALNO_FLAG) == 0;
00397 }
00398 
00399 bool RootOperationData::isDefaultRefno() const
00400 {
00401     return (m_attrFlags & REFNO_FLAG) == 0;
00402 }
00403 
00404 bool RootOperationData::isDefaultFrom() const
00405 {
00406     return (m_attrFlags & FROM_FLAG) == 0;
00407 }
00408 
00409 bool RootOperationData::isDefaultTo() const
00410 {
00411     return (m_attrFlags & TO_FLAG) == 0;
00412 }
00413 
00414 bool RootOperationData::isDefaultSeconds() const
00415 {
00416     return (m_attrFlags & SECONDS_FLAG) == 0;
00417 }
00418 
00419 bool RootOperationData::isDefaultFutureSeconds() const
00420 {
00421     return (m_attrFlags & FUTURE_SECONDS_FLAG) == 0;
00422 }
00423 
00424 bool RootOperationData::isDefaultArgs() const
00425 {
00426     return (m_attrFlags & ARGS_FLAG) == 0;
00427 }
00428 
00429 
00430 } } } // namespace Atlas::Objects::Operation
00431 
00432 #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.