summaryrefslogtreecommitdiffstats
path: root/util/generic/ptr.pxd
diff options
context:
space:
mode:
authorDevtools Arcadia <[email protected]>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <[email protected]>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /util/generic/ptr.pxd
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'util/generic/ptr.pxd')
-rw-r--r--util/generic/ptr.pxd42
1 files changed, 42 insertions, 0 deletions
diff --git a/util/generic/ptr.pxd b/util/generic/ptr.pxd
new file mode 100644
index 00000000000..16e8d191443
--- /dev/null
+++ b/util/generic/ptr.pxd
@@ -0,0 +1,42 @@
+cdef extern from "<util/generic/ptr.h>" nogil:
+ cdef cppclass THolder[T]:
+ THolder(...)
+ T* Get()
+ void Destroy()
+ T* Release()
+ void Reset()
+ void Reset(T*)
+ void Swap(THolder[T])
+
+
+ cdef THolder[T] MakeHolder[T](...)
+
+
+ cdef cppclass TIntrusivePtr[T]:
+ TIntrusivePtr()
+ TIntrusivePtr(T*)
+ TIntrusivePtr& operator=(...)
+ void Reset(T*)
+ T* Get()
+ T* Release()
+ void Drop()
+
+
+ cdef cppclass TIntrusiveConstPtr[T]:
+ TIntrusiveConstPtr()
+ TIntrusiveConstPtr(T*)
+ TIntrusiveConstPtr& operator=(...)
+ void Reset(T*)
+ const T* Get()
+ void Drop()
+
+
+ cdef cppclass TAtomicSharedPtr[T]:
+ TAtomicSharedPtr()
+ TAtomicSharedPtr(T*)
+ T& operator*()
+ T* Get()
+ void Reset(T*)
+
+
+ cdef TAtomicSharedPtr[T] MakeAtomicShared[T](...)