00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TORC_GENERIC_OM_PORT_HPP
00017 #define TORC_GENERIC_OM_PORT_HPP
00018
00019 #include "torc/generic/om/PointerTypes.hpp"
00020 #include "torc/generic/om/DumpRestoreConfig.hpp"
00021
00022
00023 #ifdef GENOM_SERIALIZATION
00024 #include <boost/serialization/access.hpp>
00025 #endif //GENOM_SERIALIZATION
00026
00027 #include "torc/generic/om/Commentable.hpp"
00028 #include "torc/generic/om/Connectable.hpp"
00029 #include "torc/generic/om/Extern.hpp"
00030 #include "torc/generic/om/Nameable.hpp"
00031 #include "torc/generic/om/PropertyContainer.hpp"
00032 #include "torc/generic/om/Renamable.hpp"
00033 #include "torc/generic/om/Visitable.hpp"
00034 #include "torc/generic/om/Composite.hpp"
00035 #include "torc/generic/om/ParentedObject.hpp"
00036 #include "torc/generic/om/PortDirection.hpp"
00037 #include "torc/generic/om/View.hpp"
00038 #include "torc/generic/om/UserDataContainer.hpp"
00039
00040 namespace torc { namespace generic { class PortAttributes; } }
00041
00042 namespace torc {
00043
00044 namespace generic {
00045
00046
00047
00048
00049
00050
00051 class Port :
00052 public Commentable,
00053 public Connectable,
00054 public Extern,
00055 public Nameable,
00056 public PropertyContainer,
00057 public Renamable,
00058 public Visitable,
00059 virtual public Composite<Port>,
00060 public ParentedObject<View>,
00061 public UserDataContainer
00062 {
00063 #ifdef GENOM_SERIALIZATION
00064 friend class boost::serialization::access;
00065 #endif //GENOM_SERIALIZATION
00066
00067 public:
00068
00069
00070
00071
00072
00073 inline const PortDirection
00074 getDirection() const throw();
00075
00076
00077
00078
00079
00080
00081 void
00082 setDirection(const PortDirection & inSource) throw();
00083
00084
00085
00086
00087
00088
00089 inline const PortAttributesSharedPtr
00090 getAttributes() const throw();
00091
00092
00093
00094
00095
00096
00097
00098
00099 void
00100 setAttributes(const PortAttributesSharedPtr & inSource) throw();
00101
00102 protected:
00103 explicit Port();
00104
00105 public:
00106 virtual ~Port() throw();
00107
00108 private:
00109 #ifdef GENOM_SERIALIZATION
00110 template<class Archive> void
00111 serialize( Archive &ar, unsigned int );
00112 #endif //GENOM_SERIALIZATION
00113
00114 Port(const Port & source) throw();
00115
00116 Port &
00117 operator=(const Port & source) throw();
00118
00119
00120 PortDirection mDirection;
00121 PortAttributesSharedPtr mAttributes;
00122 };
00123
00124
00125
00126
00127
00128
00129 inline const PortDirection
00130 Port::getDirection() const throw() {
00131 return mDirection;
00132 }
00133
00134
00135
00136
00137
00138
00139 inline const PortAttributesSharedPtr
00140 Port::getAttributes() const throw() {
00141 return mAttributes;
00142 }
00143
00144 }
00145
00146 }
00147 #endif // TORC_GENERIC_OM_PORT_HPP