HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_PtrProxy.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: UT_PtrProxy.h ( UT Library, C++)
7  *
8  * COMMENTS: Template interface to the UT_ProxyPointer methods
9  */
10 
11 #ifndef __UT_PtrProxy__
12 #define __UT_PtrProxy__
13 
14 #include "UT_ProxyPointer.h"
15 
16 
17 //
18 // First half of the proxy pointer interface. The UT_PtrProxy maintains a
19 // pointer to the source object.
20 //
21 template <typename utObj>
22 class UT_PtrProxy {
23 public:
24  explicit UT_PtrProxy(utObj *me)
25  {
26  myId = UT_ProxyPointer::allocProxy(me);
27  }
29  {
31  }
32 
33  int getId() const { return myId; }
34 
35  operator const utObj *() const
36  {
37  const void *v = UT_ProxyPointer::lookupProxy(myId);
38  return (const utObj *)v;
39  }
40  operator utObj *()
41  {
42  void *v = UT_ProxyPointer::lookupProxy(myId);
43  return (utObj *)v;
44  }
45  operator int() const
46  {
47  return myId;
48  }
49  void swizzle(utObj *me)
50  {
52  }
53  unsigned int getReferences() const
54  {
56  }
57 
58 private:
59  int myId;
60 };
61 
62 template <typename utObj>
63 class UT_RefProxy {
64 public:
65  explicit UT_RefProxy(int id)
66  {
67  init(id);
68  }
70  {
71  init(ptr.getId());
72  }
74 
75  operator const utObj *() const
76  {
77  const void *v = UT_ProxyPointer::lookupProxy(myId);
78  return (const utObj *)v;
79  }
80  operator utObj *()
81  {
82  void *v = UT_ProxyPointer::lookupProxy(myId);
83  return (utObj *)v;
84  }
85  operator int() const
86  {
87  return myId;
88  }
89 
90 private:
91  void init(int id)
92  {
93  myId = id;
95  }
96  int myId;
97 };
98 
99 
100 #endif
101 
static int allocProxy(void *ptr)
const GLdouble * v
Definition: glcorearb.h:836
png_voidp ptr
Definition: png.h:2145
UT_RefProxy(int id)
Definition: UT_PtrProxy.h:65
static void deReferenceProxy(int id)
static void referenceProxy(int id)
unsigned int getReferences() const
Definition: UT_PtrProxy.h:53
GLuint id
Definition: glcorearb.h:654
int getId() const
Definition: UT_PtrProxy.h:33
static void * lookupProxy(int id)
UT_RefProxy(const UT_PtrProxy< utObj > &ptr)
Definition: UT_PtrProxy.h:69
static unsigned getReferenceCount(int id)
void swizzle(utObj *me)
Definition: UT_PtrProxy.h:49
static void freeProxy(int &id)
typedef int
Definition: png.h:1175
UT_PtrProxy(utObj *me)
Definition: UT_PtrProxy.h:24
static void swizzlePointer(int id, void *ptr)