Public Types | |
typedef char | TimeToLive |
typedef unsigned long | DataLength |
typedef unsigned short | UserDataIndex |
typedef unsigned short | UserDataIndex |
Public Member Functions | |
virtual void | Read ()=0 |
virtual void | Read (JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual void | Read (JetByteTools::IO::IBuffer *pBuffer)=0 |
virtual void | Accepted ()=0 |
virtual void | Connected ()=0 |
virtual bool | CanWrite (size_t numBuffers=1)=0 |
void | WriteCompleted () override=0 |
virtual SOCKET | GetSocket () const =0 |
virtual bool | HandleError (DWORD lastError)=0 |
virtual IWritableAddress & | GetAddress ()=0 |
virtual JetByteTools::IO::CSmartBuffer | GetNextOperation (JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual bool | ProcessAndGetNextOperation (JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual void | AllowOperationProcessingTransfer ()=0 |
virtual bool | IsLockedByThisThread () const =0 |
virtual JetByteTools::IO::IBuffer::SequenceNumber | GetNextOperationSequenceNumber ()=0 |
virtual void | Write (const char *pData, DataLength dataLength)=0 |
virtual void | Write (const BYTE *pData, DataLength dataLength)=0 |
virtual void | Write (JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual void | Write (JetByteTools::IO::IIterateableBufferChain &buffers)=0 |
virtual bool | TryWrite (const char *pData, DataLength dataLength)=0 |
virtual bool | TryWrite (const BYTE *pData, DataLength dataLength)=0 |
virtual bool | TryWrite (JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual bool | TryWrite (JetByteTools::IO::IIterateableBufferChain &buffers)=0 |
virtual void | SendTo (const IAddress &address, const char *pData, DataLength dataLength)=0 |
virtual void | SendTo (const IAddress &address, const BYTE *pData, DataLength dataLength)=0 |
virtual void | SendTo (const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual bool | TrySendTo (const IAddress &address, const char *pData, DataLength dataLength)=0 |
virtual bool | TrySendTo (const IAddress &address, const BYTE *pData, DataLength dataLength)=0 |
virtual bool | TrySendTo (const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer)=0 |
virtual CAddress | GetLocalAddress () const =0 |
virtual CAddress | GetRemoteAddress () const =0 |
virtual void | AddRef ()=0 |
virtual void | Release ()=0 |
virtual bool | WeOwnOnlyReference () const =0 |
virtual void | Shutdown ()=0 |
virtual void | Shutdown (ShutdownHow how)=0 |
virtual bool | AbortConnection ()=0 |
virtual bool | AbortConnection (ConnectionClosureReason reason)=0 |
virtual ConnectionDirection | GetConnectionDirection () const =0 |
virtual JetByteTools::Core::ILockableObject & | GetLock () const =0 |
Returns the critical section that is used for locking this socket's data for multi-threaded use. | |
virtual void | JoinMulticastGroup (const IAddress &groupAddress, const IAddress &interfaceAddress)=0 |
virtual void | BlockMulticastGroupSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress)=0 |
virtual void | UnblockMulticastGroupSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress)=0 |
virtual void | LeaveMulticastGroup (const IAddress &groupAddress, const IAddress &interfaceAddress)=0 |
virtual void | IncludeMulticastSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress)=0 |
virtual void | ExcludeMulticastSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress)=0 |
virtual void | SetMulticastSendInterface (const IAddress &interfaceAddress, TimeToLive multicastTTL=1, bool enableLoopback=false)=0 |
virtual void * | GetUserPointer (UserDataIndex index) const =0 |
Access the data stored at the specified index as a void pointer. | |
virtual void | SetUserPointer (UserDataIndex index, void *pData)=0 |
Update the data stored at the specified index as a void pointer. | |
virtual ULONG_PTR | GetUserData (UserDataIndex index) const =0 |
Access the data stored at the specified index as an unsigned long. | |
virtual void | SetUserData (UserDataIndex index, ULONG_PTR data)=0 |
Update the data stored at the specified index as an unsigned long. | |
CSmartBuffer | Allocate () override=0 |
Allocate an instance of IBuffer, remember to call Release() on it when you're done with it. | |
virtual CSmartBuffer | Allocate (IAllocateBuffer &allocator)=0 |
CSmartBuffer | AllocateCustomSizedBuffer (IBuffer::BufferSize bufferSize) override=0 |
virtual CSmartBuffer | AllocateCustomSizedBuffer (IAllocateBuffer &allocator, IBuffer::BufferSize bufferSize)=0 |
virtual void | AddBufferToPool (IBuffer &buffer)=0 |
virtual CAddress | GetLocalAddress () const =0 |
virtual CAddress | GetRemoteAddress () const =0 |
virtual void | OnError (DWORD lastError)=0 |
Called when an error has occurred before the operation can be handled. | |
virtual void | HandleOperation (IBuffer *pBuffer, DWORD ioSize, DWORD lastError)=0 |
Called when a buffer has an operation that needs to be handled. | |
virtual DWORD | GetError (const OVERLAPPED &overlapped)=0 |
Static Public Attributes | |
static JETBYTE_CONSTEXPR UserDataIndex | InvalidUserDataIndex = 0xFFFF |
static JETBYTE_CONSTEXPR UserDataIndex | InvalidUserDataIndex = 0xFFFF |
Protected Member Functions | |
virtual | ~IDatagramServerSocketEx () |
We never delete instances of this interface; you must manage the lifetime of the class that implements it. | |
Static Protected Member Functions | |
static DWORD | GetError (HANDLE handle, const OVERLAPPED &overlapped) |
typedef char TimeToLive [inherited] |
typedef unsigned long DataLength [inherited] |
typedef unsigned short UserDataIndex [inherited] |
typedef unsigned short UserDataIndex [inherited] |
virtual ~IDatagramServerSocketEx | ( | ) | [protected, virtual] |
We never delete instances of this interface; you must manage the lifetime of the class that implements it.
virtual void Read | ( | ) | [pure virtual] |
virtual void Read | ( | JetByteTools::IO::CSmartBuffer & | buffer | ) | [pure virtual] |
virtual void Read | ( | JetByteTools::IO::IBuffer * | pBuffer | ) | [pure virtual] |
virtual void Accepted | ( | ) | [pure virtual] |
virtual void Connected | ( | ) | [pure virtual] |
virtual bool CanWrite | ( | size_t | numBuffers = 1 |
) | [pure virtual] |
void WriteCompleted | ( | ) | [override, pure virtual] |
virtual SOCKET GetSocket | ( | ) | const [pure virtual] |
virtual IWritableAddress& GetAddress | ( | ) | [pure virtual] |
virtual JetByteTools::IO::CSmartBuffer GetNextOperation | ( | JetByteTools::IO::CSmartBuffer & | buffer | ) | [pure virtual] |
virtual bool ProcessAndGetNextOperation | ( | JetByteTools::IO::CSmartBuffer & | buffer | ) | [pure virtual] |
virtual void AllowOperationProcessingTransfer | ( | ) | [pure virtual] |
virtual bool IsLockedByThisThread | ( | ) | const [pure virtual] |
virtual JetByteTools::IO::IBuffer::SequenceNumber GetNextOperationSequenceNumber | ( | ) | [pure virtual] |
virtual void Write | ( | const char * | pData, | |
DataLength | dataLength | |||
) | [pure virtual, inherited] |
virtual void Write | ( | const BYTE * | pData, | |
DataLength | dataLength | |||
) | [pure virtual, inherited] |
virtual void Write | ( | JetByteTools::IO::CSmartBuffer & | buffer | ) | [pure virtual, inherited] |
virtual void Write | ( | JetByteTools::IO::IIterateableBufferChain & | buffers | ) | [pure virtual, inherited] |
virtual bool TryWrite | ( | const char * | pData, | |
DataLength | dataLength | |||
) | [pure virtual, inherited] |
virtual bool TryWrite | ( | const BYTE * | pData, | |
DataLength | dataLength | |||
) | [pure virtual, inherited] |
virtual bool TryWrite | ( | JetByteTools::IO::CSmartBuffer & | buffer | ) | [pure virtual, inherited] |
virtual bool TryWrite | ( | JetByteTools::IO::IIterateableBufferChain & | buffers | ) | [pure virtual, inherited] |
virtual void SendTo | ( | const IAddress & | address, | |
const char * | pData, | |||
DataLength | dataLength | |||
) | [pure virtual, inherited] |
Implemented in IDatagramSocket.
virtual void SendTo | ( | const IAddress & | address, | |
const BYTE * | pData, | |||
DataLength | dataLength | |||
) | [pure virtual, inherited] |
Implemented in IDatagramSocket.
virtual void SendTo | ( | const IAddress & | address, | |
JetByteTools::IO::CSmartBuffer & | buffer | |||
) | [pure virtual, inherited] |
Implemented in IDatagramSocket.
virtual bool TrySendTo | ( | const IAddress & | address, | |
const char * | pData, | |||
DataLength | dataLength | |||
) | [pure virtual, inherited] |
Implemented in IDatagramSocket.
virtual bool TrySendTo | ( | const IAddress & | address, | |
const BYTE * | pData, | |||
DataLength | dataLength | |||
) | [pure virtual, inherited] |
Implemented in IDatagramSocket.
virtual bool TrySendTo | ( | const IAddress & | address, | |
JetByteTools::IO::CSmartBuffer & | buffer | |||
) | [pure virtual, inherited] |
Implemented in IDatagramSocket.
virtual CAddress GetLocalAddress | ( | ) | const [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual CAddress GetRemoteAddress | ( | ) | const [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void AddRef | ( | ) | [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void Release | ( | ) | [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual bool WeOwnOnlyReference | ( | ) | const [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void Shutdown | ( | ) | [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void Shutdown | ( | ShutdownHow | how | ) | [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual bool AbortConnection | ( | ) | [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual bool AbortConnection | ( | ConnectionClosureReason | reason | ) | [pure virtual, inherited] |
virtual ConnectionDirection GetConnectionDirection | ( | ) | const [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual JetByteTools::Core::ILockableObject& GetLock | ( | ) | const [pure virtual, inherited] |
Returns the critical section that is used for locking this socket's data for multi-threaded use.
Implemented in IDatagramSocket, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void SetMulticastSendInterface | ( | const IAddress & | interfaceAddress, | |
TimeToLive | multicastTTL = 1 , |
|||
bool | enableLoopback = false | |||
) | [pure virtual, inherited] |
virtual void* GetUserPointer | ( | UserDataIndex | index | ) | const [pure virtual, inherited] |
Access the data stored at the specified index as a void pointer.
Implemented in TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void SetUserPointer | ( | UserDataIndex | index, | |
void * | pData | |||
) | [pure virtual, inherited] |
Update the data stored at the specified index as a void pointer.
Implemented in TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual ULONG_PTR GetUserData | ( | UserDataIndex | index | ) | const [pure virtual, inherited] |
Access the data stored at the specified index as an unsigned long.
Implemented in TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void SetUserData | ( | UserDataIndex | index, | |
ULONG_PTR | data | |||
) | [pure virtual, inherited] |
Update the data stored at the specified index as an unsigned long.
Implemented in TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
CSmartBuffer Allocate | ( | ) | [override, pure virtual, inherited] |
Allocate an instance of IBuffer, remember to call Release() on it when you're done with it.
Implements IAllocateBuffer.
Implemented in CNullBufferPool, TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >, and TWebSocketBase< JetByteTools::WebSocket::HyBi::IWebSocket >.
virtual CSmartBuffer Allocate | ( | IAllocateBuffer & | allocator | ) | [pure virtual, inherited] |
Implemented in CNullBufferPool, TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >, and TWebSocketBase< JetByteTools::WebSocket::HyBi::IWebSocket >.
CSmartBuffer AllocateCustomSizedBuffer | ( | IBuffer::BufferSize | bufferSize | ) | [override, pure virtual, inherited] |
virtual CSmartBuffer AllocateCustomSizedBuffer | ( | IAllocateBuffer & | allocator, | |
IBuffer::BufferSize | bufferSize | |||
) | [pure virtual, inherited] |
Implemented in CNullBufferPool.
virtual void AddBufferToPool | ( | IBuffer & | buffer | ) | [pure virtual, inherited] |
Implemented in CNullBufferPool.
virtual CAddress GetLocalAddress | ( | ) | const [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual CAddress GetRemoteAddress | ( | ) | const [pure virtual, inherited] |
Implemented in TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
virtual void OnError | ( | DWORD | lastError | ) | [pure virtual, inherited] |
Called when an error has occurred before the operation can be handled.
Implemented in TDatagramSocketServer.
virtual void HandleOperation | ( | IBuffer * | pBuffer, | |
DWORD | ioSize, | |||
DWORD | lastError | |||
) | [pure virtual, inherited] |
Called when a buffer has an operation that needs to be handled.
virtual DWORD GetError | ( | const OVERLAPPED & | overlapped | ) | [pure virtual, inherited] |
Implemented in TDatagramSocketServer, TAsyncSocket< JetByteTools::Socket::IPoolableStreamSocket, JetByteTools::Socket::IStreamSocketConnectionManager, JetByteTools::Socket::IStreamSocketCallback >, TAsyncSocket< JetByteTools::Socket::TMulticastDatagramHelper< JetByteTools::Socket::IPoolableDatagramSocket >, JetByteTools::Socket::IDatagramSocketConnectionManager, JetByteTools::Socket::IDatagramSocketCallback >, and TAsyncSocket< JetByteTools::Socket::IPoolableDatagramServerSocket, JetByteTools::Socket::IDatagramServerSocketConnectionManager, JetByteTools::Socket::IDatagramServerSocketCallback >.
DWORD GetError | ( | HANDLE | handle, | |
const OVERLAPPED & | overlapped | |||
) | [static, protected, inherited] |
JETBYTE_CONSTEXPR UserDataIndex InvalidUserDataIndex = 0xFFFF [static, inherited] |
JETBYTE_CONSTEXPR UserDataIndex InvalidUserDataIndex = 0xFFFF [static, inherited] |