00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _CERTI_DATA_DISTRIBUTION
00025 #define _CERTI_DATA_DISTRIBUTION
00026
00027
00028 #include "Communications.hh"
00029 #include "FederationManagement.hh"
00030 #include "RootObject.hh"
00031
00032 namespace certi {
00033 namespace rtia {
00034
00035 class DataDistribution
00036 {
00037 public:
00038 DataDistribution(RootObject *, FederationManagement *, Communications *);
00039
00040 SpaceHandle getRoutingSpaceHandle(std::string) const ;
00041
00042 std::string getRoutingSpaceName(SpaceHandle) const ;
00043
00044 DimensionHandle getDimensionHandle(std::string, SpaceHandle) const
00045 throw (SpaceNotDefined, NameNotFound);
00046
00047 std::string getDimensionName(DimensionHandle, SpaceHandle) const
00048 throw (SpaceNotDefined, DimensionNotDefined);
00049
00050 SpaceHandle getAttributeSpace(AttributeHandle, ObjectClassHandle) const
00051 throw (ObjectClassNotDefined, AttributeNotDefined);
00052
00053 SpaceHandle getInteractionSpace(InteractionClassHandle) const
00054 throw (InteractionClassNotDefined);
00055
00056 long createRegion(SpaceHandle, unsigned long, TypeException &)
00057 throw (SpaceNotDefined);
00058
00059 void modifyRegion(RegionHandle, const std::vector<Extent> &,
00060 TypeException &);
00061
00062 void deleteRegion(long, TypeException &)
00063 throw (RegionNotKnown, RegionInUse);
00064
00065 void associateRegion(ObjectHandle, RegionHandle, std::vector <AttributeHandle> &,
00066 int, TypeException &)
00067 throw (RegionNotKnown);
00068
00069 ObjectHandle registerObject(ObjectClassHandle, const std::string,
00070 const std::vector <AttributeHandle> &, int,
00071 const std::vector<RegionHandle>,
00072 TypeException &);
00073
00074 void unassociateRegion(ObjectHandle, RegionHandle, TypeException &e)
00075 throw (ObjectNotKnown, InvalidRegionContext, RegionNotKnown);
00076
00077 void subscribe(ObjectClassHandle, RegionHandle, std::vector <AttributeHandle> &, int,
00078 TypeException &)
00079 throw (RegionNotKnown);
00080
00081 void unsubscribeAttributes(ObjectClassHandle, RegionHandle, TypeException &)
00082 throw (RegionNotKnown);
00083
00084 void subscribeInteraction(InteractionClassHandle, RegionHandle,
00085 TypeException &)
00086 throw (RegionNotKnown);
00087
00088 void unsubscribeInteraction(InteractionClassHandle, RegionHandle,
00089 TypeException &)
00090 throw (RegionNotKnown);
00091
00092 private:
00093 RootObject *rootObject ;
00094 FederationManagement *fm ;
00095 Communications *comm ;
00096 };
00097
00098 }}
00099
00100 #endif // _CERTI_DATA_DISTRIBUTION
00101
00102