VR-Vantage 3.2 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtProxy.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef DtProxy_H_
10 #define DtProxy_H_
11 
12 #include <vrvUtil/vrvUtil.h>
13 #include <vlutil/vlSmartPointers.h>
14 #include <vlutil/vlExceptions.h>
15 
16 #include <map>
17 #include <memory>
18 
19 namespace makVrv
20 {
21  class DtMessage;
22 
40  {
41  public:
42 
44  DtProxy();
45 
47  virtual void makeInvalid();
48 
52  inline bool isValid() const
53  {
54  return myValidFlag;
55  }
56 
61  inline void validate() const
62  {
63  if(!isValid())
64  {
65  DtTHROW_NEW(DtCorruptedState, "Interface is invalid.");
66  }
67  }
68 
69  protected:
70 
72  };
73 
74  typedef std::weak_ptr<DtProxy> DtProxyWP;
75  typedef std::shared_ptr<DtProxy> DtProxySP;
76 
80  template <typename K, typename V>
81  std::shared_ptr<V> DtFindProxyByName(std::map<K, std::weak_ptr<V> >& map, const std::string& name)
82  {
83  typedef std::weak_ptr<V> VWP;
84  typedef std::shared_ptr<V> VSP;
85 
86  typename std::map<K, std::weak_ptr<V> >::iterator iter = map.find(name);
87  if(iter != map.end())
88  {
89  VSP proctor = iter->second.lock();
90  if(proctor)
91  {
92  return proctor;
93  }
94  }
95  return VSP();
96  }
97 
98 }
99 
100 #endif


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