![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: requestDb.h,v $ $Revision: 1.22 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtRequestDb 00013 #define DtRequestDb 00014 00015 #include <vlutil/vlHashlist.h> 00016 #include "attrHandSet.h" 00017 #include "fedHandleSet.h" 00018 #include "internalTypes.h" 00019 00020 #include <map> 00021 #include <list> 00022 00036 00037 00038 class DT_DLL_LRC DtRequestDatabase 00039 { 00040 public: 00041 00042 DtRequestDatabase(); 00043 virtual ~DtRequestDatabase(); 00044 00046 virtual void clearAll(); 00047 00053 virtual void addRemoteRequest( 00054 const DtAttributeHandleSet& requestSet, 00055 DtFederateHandle fed); 00056 00060 virtual void removeRemoteRequest( 00061 const DtAttributeHandleSet& requestSet, 00062 DtFederateHandle fed); 00063 00066 virtual void removeRemoteRequest( 00067 const DtAttributeHandleSet& requestSet); 00068 00071 virtual void addPendingConfirm( 00072 const DtAttributeHandleSet& requestSet, 00073 DtFederateHandle fed); 00074 00078 virtual void removePendingConfirm( 00079 const DtAttributeHandleSet& requestSet, 00080 DtFederateHandle fed); 00081 00082 00085 virtual void removePendingConfirm( 00086 const DtAttributeHandleSet& requestSet); 00087 00090 void moveRemoteRequestToPendingList( 00091 const DtAttributeHandleSet& requestSet ); 00092 00093 00096 virtual void cancelRemoteRequest( 00097 const DtAttributeHandleSet& canceledSet, DtFederateHandle fed); 00098 00100 virtual void cancelAllRemoteRequest( 00101 const DtAttributeHandleSet& canceledSet); 00102 00103 00105 virtual void removeCanceledRequests( 00106 const DtAttributeHandleSet& releaseSet); 00107 00110 virtual bool isRequestCanceled(DtAttributeHandle hand) const; 00111 00113 virtual DtAttributeHandleSet canceledRequestSet() const; 00114 00122 virtual DtFederateHandle releaseRequested( 00123 const DtAttributeHandleSet& inSet, 00124 DtAttributeHandleSet* releasedSet, 00125 bool keepForConfirm); 00126 00133 virtual DtFederateHandle releaseConfirm( 00134 const DtAttributeHandleSet& inSet, 00135 DtAttributeHandleSet* releasedSet); 00136 00139 virtual DtFederateHandle pendingRemoteRequest(DtAttributeHandle hand) const; 00140 00143 virtual DtFederateHandle pendingConfirm(DtAttributeHandle hand) const; 00144 00147 virtual DtAttributeHandleSet requestedByFed(DtFederateHandle fed, 00148 bool includePendingConfirm=false) const; 00149 00151 virtual DtAttributeHandleSet remoteRequestByFed( DtFederateHandle fed ) const; 00152 00154 virtual DtAttributeHandleSet pendingConfirmByFed( DtFederateHandle fed ) const; 00155 00156 00158 virtual int requestCount() const; 00159 00161 virtual DtAttributeHandleSet const& requestedAttributes() const; 00162 00164 virtual int confirmCount() const; 00165 00167 virtual DtAttributeHandleSet const& pendingConfirmAttributes() const; 00168 00171 virtual void markPendingRequestsUnavailable(const DtAttributeHandleSet& requestSet, 00172 DtFederateHandle confirmedFed ); 00173 00176 virtual DtFederateHandle unavailablePendingRequests( DtAttributeHandleSet* invalidatedSet ); 00177 00178 protected: 00179 00180 typedef std::map< DtAttributeHandle, DtFederateHandleSet > DtAttrToFederatesMap; 00181 typedef std::map< DtFederateHandle, DtAttributeHandleSet > DtFedToAttributesMap; 00182 00184 DtAttributeHandleSet myRemoteRequestSet; 00185 00187 DtAttributeHandleSet myRemoteCanceledRequestSet; 00188 DtAttrToFederatesMap myRemoteRequestsByAttr; 00189 00191 DtAttrToFederatesMap myPendingConfirmByAttr; 00192 DtAttributeHandleSet myPendingConfirmSet; 00193 00196 DtFedToAttributesMap myUnavailableRequestsByFed; 00197 }; 00198 00199 00200 00201 #endif 00202