VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
legionOwnershipTransferManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 #include "legionNet/ownershipManager.h"
10 #include <boost/signals2.hpp>
11 #include <legionDataStore/dataTypes.h>
12 #include <vrfutil/rwUUID.h>
13 
14 #include <set>
15 
16 namespace Legion
17 {
19 }
20 
21 namespace makVrfEvents
22 {
23  class DtTransferRequestEvent;
24  class DtTransferResponseEvent;
25  class DtTransferAcquisitionRequestEvent;
26  class DtTransferAcquisitionResponseEvent;
27  class DtEvent;
28  class DtEventManager;
29 }
30 
31 namespace makVrf
32 {
33  class DtLegionNetworkInterface;
34  class DtLegionOwnershipTransferManager;
35 
36  typedef DtLegionOwnershipTransferManager* (*DtLegionOwnershipTransferManagerCreatorFcn)(DtLegionNetworkInterface*);
37 
42  {
43  public:
44 
47 
49 
50  static void setLegionOwnershipTransferManagerCreatorFcn(DtLegionOwnershipTransferManagerCreatorFcn);
52 
53  virtual void setEventManager(makVrfEvents::DtEventManager*);
54 
55  protected:
56  virtual void processOwnershipDivestitureRequest(Legion::TransactionIdentifier transactionId,
57  Legion::Span<Legion::GlobalIdentifier> globalIds, Legion::Span<char> privateData);
58 
60  boost::signals2::signal<void (const makVrfEvents::DtTransferRequestEvent&, Legion::Span<Legion::GlobalIdentifier>, bool& continueOn)> signal_preOwnershipDivestitureRequest;
61  boost::signals2::signal<void (const makVrfEvents::DtTransferAcquisitionRequestEvent&,
62  Legion::Span<Legion::GlobalIdentifier>, bool& continueOn)> signal_preOwnershipAcquisitionRequest;
63 
65  virtual void processTransferEventResponse(const makVrfEvents::DtEvent&);
66  virtual void processTransferAcquisitionEventResponse(const makVrfEvents::DtEvent&);
67 
68  virtual void processInitiateTakeEvent(const makVrfEvents::DtEvent&);
69 
70  virtual void processOwnershipAcquisitionRejected(Legion::TransactionIdentifier transactionId, Legion::Span<Legion::GlobalIdentifier> globalIds, Legion::Span<char> privateData);
71  virtual void processOwnershipAcquired(Legion::TransactionIdentifier transactionId, Legion::Span<Legion::GlobalIdentifier> globalIds, Legion::Span<char> privateData);
72  virtual void processOwnershipAcquisitionInitiateRequest(Legion::TransactionIdentifier transactionId,
73  const Legion::Span<Legion::GlobalIdentifier> globalIds, Legion::Span<char> requestPrivateData);
74  virtual std::set<DtUUID> globalIdsToUUIDs(const std::set<Legion::GlobalIdentifier>&) const;
75  virtual std::set<DtUUID> globalIdsToUUIDs(const Legion::Span<Legion::GlobalIdentifier>&) const;
76 
77  protected:
79  boost::signals2::connection myEventTransferResponseConnection;
80  boost::signals2::connection myEventTransferAcquisitionResponseConnection;
81  boost::signals2::connection myInitiateTakeEventConnection;
83 
85 
90 
91  typedef std::map<Legion::TransactionIdentifier, std::set<Legion::GlobalIdentifier>> PendingTransactions;
93 
94  typedef std::map<Legion::TransactionIdentifier, std::vector<Legion::GlobalIdentifier>> PendingDivestRequests;
96  };
97 }
Legion::UInt32 myRequestRejectedCallbackHandle
Definition: legionOwnershipTransferManager.h:88
unsigned int UInt32
Definition: stateDataTypes.h:18
std::map< Legion::TransactionIdentifier, std::vector< Legion::GlobalIdentifier > > PendingDivestRequests
Definition: legionOwnershipTransferManager.h:94
Legion::UInt32 myAcquiredCallbackHandle
Definition: legionOwnershipTransferManager.h:87
PendingDivestRequests myPendingDivestRequests
Definition: legionOwnershipTransferManager.h:95
boost::signals2::connection myInitiateTakeEventConnection
Definition: legionOwnershipTransferManager.h:81
#define DT_DLL_legionNetworkInterface
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: legionNetworkInterfaceDefines.h:26
The DtEventManager handles the sending and receipt of system events (fire, detonate, command, etc). It provides a thread-safe way for the sim engine to send and receive such events, between both components within this sim engine and other remote applications.
Definition: eventManager.h:33
boost::signals2::signal< void(const makVrfEvents::DtTransferAcquisitionRequestEvent &, Legion::Span< Legion::GlobalIdentifier >, bool &continueOn)> signal_preOwnershipAcquisitionRequest
Definition: legionOwnershipTransferManager.h:62
Contains the DtUUID class declaration.
makVrfEvents::DtEventManager * myEventManager
Definition: legionOwnershipTransferManager.h:84
boost::signals2::connection myEventTransferResponseConnection
Definition: legionOwnershipTransferManager.h:79
Legion::UInt32 myDivestureCallbackHandle
Definition: legionOwnershipTransferManager.h:86
DtLegionOwnershipTransferManager *(* DtLegionOwnershipTransferManagerCreatorFcn)(DtLegionNetworkInterface *)
Definition: legionOwnershipTransferManager.h:36
PendingTransactions myPendingTransactions
Definition: legionOwnershipTransferManager.h:92
class DtLegionOwnershipTransferManager:
Definition: legionOwnershipTransferManager.h:41
UInt64 GlobalIdentifier
Definition: legionOwnershipTransferManager.h:18
Definition: event.h:13
class DtLegionNetworkInterface:
Definition: legionNetworkInterface.h:53
unsigned long long UInt64
Definition: stateDataTypes.h:17
DtLegionNetworkInterface * myNetworkInterface
Definition: legionOwnershipTransferManager.h:78
Legion::UInt32 myInitiateAcquisitionRequestCallbackHandle
Definition: legionOwnershipTransferManager.h:89
boost::signals2::connection myEventTransferAcquisitionResponseConnection
Definition: legionOwnershipTransferManager.h:80
static DtLegionOwnershipTransferManagerCreatorFcn theCreatorFunction
Definition: legionOwnershipTransferManager.h:82
Definition: transferAcquisitionRequestEvent.h:15
std::map< Legion::TransactionIdentifier, std::set< Legion::GlobalIdentifier > > PendingTransactions
Definition: legionOwnershipTransferManager.h:91

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)