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_RTIA_OWM
00025 #define _CERTI_RTIA_OWM
00026
00027 #include "certi.hh"
00028 #include "FederationManagement.hh"
00029 #include "Communications.hh"
00030 #include "Files.hh"
00031 #include "RootObject.hh"
00032
00033 namespace certi {
00034 namespace rtia {
00035
00036
00037 class Communications ;
00038 class Queues ;
00039 class FederationManagement ;
00040
00042 class OwnershipManagement
00043 {
00044 public:
00045 OwnershipManagement(Communications *GC,
00046 FederationManagement *GF);
00047
00048 ~OwnershipManagement();
00049
00050
00051 const char *
00052 attributeOwnedByFederate(ObjectHandle theObject,
00053 AttributeHandle theAttribute,
00054 TypeException &e);
00055
00056 void
00057 queryAttributeOwnership(ObjectHandle theObject,
00058 AttributeHandle theAttribute,
00059 TypeException &e);
00060
00061 void
00062 informAttributeOwnership(ObjectHandle theObject,
00063 AttributeHandle theAttribute,
00064 FederateHandle theOwner,
00065 TypeException &e);
00066
00067 void
00068 attributeIsNotOwned(ObjectHandle theObject,
00069 AttributeHandle theAttribute,
00070 FederateHandle theOwner,
00071 TypeException &e);
00072
00073 void
00074 negotiatedAttributeOwnershipDivestiture(ObjectHandle theObject,
00075 std::vector <AttributeHandle> &attribArray,
00076 UShort attribArraySize,
00077 std::string theTag,
00078 TypeException &e);
00079 void
00080 cancelnegotiatedAttributeOwnershipDivestiture(ObjectHandle theObject,
00081 std::vector <AttributeHandle> &,
00082 UShort attribArraySize,
00083 TypeException &e);
00084
00085 void
00086 attributeOwnershipAcquisitionIfAvailable(ObjectHandle theObject,
00087 std::vector <AttributeHandle> &attribArray,
00088 UShort attribArraySize,
00089 TypeException &e);
00090
00091 void
00092 cancelattributeOwnershipAcquisition(ObjectHandle theObject,
00093 std::vector <AttributeHandle> &attribArray,
00094 UShort attribArraySize,
00095 TypeException &e);
00096
00097 void
00098 attributeOwnershipAcquisitionNotification(ObjectHandle theObject,
00099 std::vector <AttributeHandle> &attribArray,
00100 UShort attribArraySize,
00101 FederateHandle theOwner,
00102 TypeException &e);
00103 void
00104 attributeOwnershipUnavailable(ObjectHandle theObject,
00105 std::vector <AttributeHandle> &attribArray,
00106 UShort attribArraySize,
00107 FederateHandle theOwner,
00108 TypeException &e);
00109
00110 void
00111 requestAttributeOwnershipAssumption(ObjectHandle theObject,
00112 std::vector <AttributeHandle> &attribArray,
00113 UShort attribArraySize,
00114 FederateHandle theOwner,
00115 std::string theTag,
00116 TypeException &e);
00117
00118 void
00119 unconditionalAttributeOwnershipDivestiture(ObjectHandle theObject,
00120 std::vector <AttributeHandle> &attribArray,
00121 UShort attribArraySize,
00122 TypeException &e);
00123
00124 void
00125 attributeOwnershipAcquisition(ObjectHandle theObject,
00126 std::vector <AttributeHandle> &attribArray,
00127 UShort attribArraySize,
00128 std::string theTag,
00129 TypeException &e);
00130
00131 void
00132 requestAttributeOwnershipRelease(ObjectHandle theObject,
00133 std::vector <AttributeHandle> &attribArray,
00134 UShort attribArraySize,
00135 std::string theTag,
00136 TypeException &e);
00137
00138 void
00139 attributeOwnershipDivestitureNotification(ObjectHandle theObject,
00140 std::vector <AttributeHandle> &attribArray,
00141 UShort attribArraySize,
00142 TypeException &e);
00143 AttributeHandleSet*
00144 attributeOwnershipRealeaseResponse(ObjectHandle theObject,
00145 std::vector <AttributeHandle> &attribArray,
00146 UShort attribArraySize,
00147 TypeException &e);
00148
00149 void
00150 confirmAttributeOwnershipAcquisitionCancellation(ObjectHandle theObject,
00151 std::vector <AttributeHandle> &,
00152 UShort attribArraySize,
00153 TypeException &e);
00154
00155 protected:
00156 Communications *comm ;
00157 Queues *queues ;
00158 FederationManagement *fm ;
00159 };
00160
00161 }}
00162
00163 #endif // _CERTI_RTIA_OWM
00164
00165