VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
influenceEventDispatcher.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
8 #pragma once
11 #include <boost/signals2.hpp>
12 #include <unordered_map>
15 #include "vrfutil/rwUUID.h"
16 #include <tbb/spin_mutex.h>
17 
19 
20 namespace makVrfEvents
21 {
22  class DtEvent;
23 }
24 
26 {
27 public:
29  virtual ~DtInfluenceEventDispatcher();
30 
31  virtual bool init();
32 
33  virtual void registerForInfluenceEvents(const DtUUID& uuid, DtInfluenceEventFunction func, void* userData) override;
35  virtual void unregisterForInfluenceEvents(const DtUUID& uuid, DtInfluenceEventFunction func, void* userData) override;
36 
41  virtual void registerForEventsByInfluenceName(const std::string& sInfluenceName, DtInfluenceEventFunction func, void* userData) override;
42  virtual void unregisterForEventsByInfluenceName(const std::string& sInfluenceName, DtInfluenceEventFunction func, void* userData) override;
44 
45  virtual void processInfluence(const makVrfEvents::DtEvent& m);
46 
47 protected:
49  boost::signals2::scoped_connection myInfluenceEventConnection;
50 
52  typedef std::shared_ptr<CallbackList > CallbackListPtr;
53  typedef std::unordered_map<DtUUID, CallbackListPtr> CallbackMap;
54  typedef std::map<std::string, CallbackListPtr> CallbackByInfluenceTypeMap;
55 
58 
59  tbb::spin_mutex myMutex;
60 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual void registerForEventsByInfluenceName(const std::string &sInfluenceName, DtInfluenceEventFunction func, void *userData)=0
Register for influence event callbacks based on influence name. This allows subscribers to receive in...
virtual void registerForInfluenceEvents(const DtUUID &uuid, DtInfluenceEventFunction func, void *userData)=0
Register to receive callbacks for influence events addressed to a specific UUID.
Contains the DtUUID class declaration.
Definition: influenceEventDispatcher.h:25
Contains the DtInfluenceDispatcherServiceInterface class declaration.
virtual void unregisterForEventsByInfluenceName(const std::string &sInfluenceName, DtInfluenceEventFunction func, void *userData)=0
Register for influence event callbacks based on influence name. This allows subscribers to receive in...
std::shared_ptr< CallbackList > CallbackListPtr
Definition: influenceEventDispatcher.h:52
std::map< std::string, CallbackListPtr > CallbackByInfluenceTypeMap
Definition: influenceEventDispatcher.h:54
Definition: event.h:13
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Abstract interface class to the influence dispatcher service. This service provides DtInfluenceEvent ...
Definition: influenceDispatcherServiceInterface.h:26
Definition: noArgumentCallbackList.h:90
CallbackByInfluenceTypeMap myRegisteredByTypeCallbacks
Definition: influenceEventDispatcher.h:57
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
DtCallbackList< std::shared_ptr< const makVrfEvents::DtInfluenceEvent > > CallbackList
Definition: influenceEventDispatcher.h:51
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
CallbackMap myRegisteredCallbacks
Definition: influenceEventDispatcher.h:56
DtSimulationServices * mySimServices
Definition: influenceEventDispatcher.h:48
virtual void unregisterForInfluenceEvents(const DtUUID &uuid, DtInfluenceEventFunction func, void *userData)=0
Remove a callback registered with registerForInfluenceEvents()
std::unordered_map< DtUUID, CallbackListPtr > CallbackMap
Definition: influenceEventDispatcher.h:53
boost::signals2::scoped_connection myInfluenceEventConnection
Definition: influenceEventDispatcher.h:49
tbb::spin_mutex myMutex
Definition: influenceEventDispatcher.h:59

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)