diff options
author | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /util/generic/ptr.pxd |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'util/generic/ptr.pxd')
-rw-r--r-- | util/generic/ptr.pxd | 42 |
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](...) |