VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDisconnectable.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
13 
14 #include <boost/function.hpp>
15 #include <boost/signals2.hpp>
16 
17 #include <tbb/spin_mutex.h>
18 
19 namespace makVrv
20 {
26  {
27  public:
30 
34  virtual ~DtDisconnectable();
35 
38  virtual boost::signals2::connection addDisconnectFunction(
39  const boost::function<void ()>& callback);
40 
44  virtual bool callDisconnectFunctions();
45 
46  protected:
47  enum State { NotUsed, InUse, Disconnected };
48 
49  typedef tbb::spin_mutex Mutex;
50 
51  mutable Mutex myMutex;
53  boost::signals2::signal<void ()> myDisconnectSignal;
54  };
55 }
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
Contains DLL export macros.
Functionality for disconnecting the various references that objects make to each other.
Definition: DtDisconnectable.h:25
Mutex myMutex
Definition: DtDisconnectable.h:51
State
Definition: DtDisconnectable.h:47
State myDisconnectedState
Definition: DtDisconnectable.h:52
boost::signals2::signal< void()> myDisconnectSignal
Definition: DtDisconnectable.h:53
tbb::spin_mutex Mutex
Definition: DtDisconnectable.h:49

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)