VR-Vantage 3.0 API 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
13 #include <vrvUtil/signalslib.h>
14 
15 #include <boost/function.hpp>
16 
17 #include <tbb/spin_mutex.h>
18 
19 namespace makVrv
20 {
26  {
27  public:
30 
34  virtual ~DtDisconnectable();
35 
38  virtual boost::signalslib::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::signalslib::signal<void ()> myDisconnectSignal;
54  };
55 }


Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)