@Name(value="c10::intrusive_ptr<c10::ivalue::PyObjectHolder>") @NoOffset @Properties(inherit=torch.class) public class PyObjectHolderPtr extends Pointer
Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.NativeDeallocator, Pointer.ReferenceCounter
Constructor and Description |
---|
PyObjectHolderPtr() |
PyObjectHolderPtr(long size)
Native array allocator.
|
PyObjectHolderPtr(Pointer p)
Pointer cast constructor.
|
PyObjectHolderPtr(PointerPointer arg0) |
PyObjectHolderPtr(PyObjectHolder target,
DontIncreaseRefcount arg1) |
PyObjectHolderPtr(PyObjectHolderPtr rhs) |
Modifier and Type | Method and Description |
---|---|
PyObjectHolder |
access() |
boolean |
asBoolean() |
boolean |
defined() |
PyObjectHolder |
get() |
PyObjectHolderPtr |
getPointer(long i) |
PyObjectHolder |
multiply() |
PyObjectHolderPtr |
position(long position) |
PyObjectHolderPtr |
put(PyObjectHolderPtr rhs) |
static PyObjectHolderPtr |
reclaim_copy(PyObjectHolder owning_ptr)
Takes an owning pointer to TTarget* and creates an intrusive_ptr
representing a new reference, i.e.
|
static PyObjectHolderPtr |
reclaim(PyObjectHolder owning_ptr)
Takes an owning pointer to TTarget* and creates an intrusive_ptr that takes
over ownership.
|
PyObjectHolder |
release()
Returns an owning (!) pointer to the underlying object and makes the
intrusive_ptr instance invalid.
|
void |
reset() |
void |
swap(PyObjectHolderPtr rhs) |
boolean |
unique() |
static PyObjectHolderPtr |
unsafe_adapt_non_heap_allocated(PyObjectHolder raw_ptr,
long expected_decrefs)
Turn an instance of TTarget that should not be reference counted
(e.g., allocated into an arena with placement new) into an
intrusive_ptr.
|
static PyObjectHolderPtr |
unsafe_reclaim_from_nonowning(PyObjectHolder raw_ptr)
Turn a **non-owning raw pointer** to an intrusive_ptr.
|
static PyObjectHolderPtr |
unsafe_steal_from_new(PyObjectHolder raw_ptr)
Turn a new instance of TTarget (e.g., literally allocated
using new TTarget(...) into an intrusive_ptr.
|
long |
use_count() |
long |
weak_use_count() |
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, getDirectBufferAddress, getPointer, getPointer, getPointer, hashCode, interruptDeallocatorThread, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetAddress, offsetof, offsetof, parseBytes, physicalBytes, physicalBytesInaccurate, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, sizeof, toString, totalBytes, totalCount, totalPhysicalBytes, withDeallocator, zero
public PyObjectHolderPtr(Pointer p)
Pointer(Pointer)
.public PyObjectHolderPtr(long size)
Pointer.position(long)
.public PyObjectHolderPtr()
public PyObjectHolderPtr(@ByVal @Cast(value="std::nullptr_t*") PointerPointer arg0)
public PyObjectHolderPtr(PyObjectHolder target, @ByVal DontIncreaseRefcount arg1)
public PyObjectHolderPtr(@ByRef(value=true) PyObjectHolderPtr rhs)
public PyObjectHolderPtr position(long position)
public PyObjectHolderPtr getPointer(long i)
getPointer
in class Pointer
@ByRef @Name(value="operator =") @NoException(value=true) public PyObjectHolderPtr put(@ByRef(value=true) PyObjectHolderPtr rhs)
@NoException(value=true) public PyObjectHolder get()
@ByRef @Name(value="operator *") @NoException(value=true) public PyObjectHolder multiply()
@Name(value="operator ->") @NoException(value=true) public PyObjectHolder access()
@Cast(value="bool") @Name(value="operator bool") @NoException(value=true) public boolean asBoolean()
@NoException(value=true) public void reset()
@NoException(value=true) public void swap(@ByRef PyObjectHolderPtr rhs)
@Cast(value="bool") @NoException(value=true) public boolean defined()
@Cast(value="size_t") @NoException(value=true) public long use_count()
@Cast(value="size_t") @NoException(value=true) public long weak_use_count()
@Cast(value="bool") @NoException(value=true) public boolean unique()
@NoException(value=true) public PyObjectHolder release()
@ByVal public static PyObjectHolderPtr reclaim(PyObjectHolder owning_ptr)
@ByVal public static PyObjectHolderPtr reclaim_copy(PyObjectHolder owning_ptr)
@ByVal public static PyObjectHolderPtr unsafe_steal_from_new(PyObjectHolder raw_ptr)
@ByVal public static PyObjectHolderPtr unsafe_adapt_non_heap_allocated(PyObjectHolder raw_ptr, @Cast(value="size_t") long expected_decrefs)
expected_decrefs
is a debugging parameter: it indicates the
number of strong owners the intrusive_ptr_target in question is
expected to get. In most use cases, this will likely be 1.
The reason this method exists is for manually sharing
StorageImpls across Tensors in the static runtime. It needs
access to private intrusive_ptr members so that the refcounts can
be initialized to custom values.@ByVal public static PyObjectHolderPtr unsafe_reclaim_from_nonowning(PyObjectHolder raw_ptr)
Copyright © 2024. All rights reserved.