CFx SDK Documentation  2023 SP0
TrVisStaticSharedPtr.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 // GLES2 device static shared pointer
24 
25 #ifndef ODTRVISSTATICSHAREDPTR
26 #define ODTRVISSTATICSHAREDPTR
27 
28 #include "TD_PackPush.h"
29 
30 #include "SharedPtr.h"
31 
35 template <class T>
36 class OdStaticSharedPtr : public OdSharedPtr<T>
37 {
38  protected:
40  protected:
41  T **accessObjPtr() { return reinterpret_cast<T**>(this); }
42  int **accessRefPtr() { return reinterpret_cast<int**>(this) + 1; }
43  public:
45  : OdSharedPtr<T>(), m_realRefs(2)
46  {
47  *accessObjPtr() = pRef;
49  }
51  {
52  **this = *other;
53  return *this;
54  }
55  private:
56  T* detach() { return NULL; }
57  OdStaticSharedPtr(const OdStaticSharedPtr &other) {}
58 };
59 
63 template <class T>
65 {
66  protected:
68  public:
71  {
72  }
75  {
76  m_realObj = *other;
77  }
78 };
79 
80 #include "TD_PackPop.h"
81 
82 #endif // ODTRVISSTATICSHAREDPTR
#define NULL
Definition: GsProperties.h:177
OdStaticDefSharedPtr(const OdStaticDefSharedPtr &other)
OdStaticSharedPtr & operator=(const OdStaticSharedPtr &other)