NCBI C++ ToolKit
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
SNetStorageObjectRPC::SIState Struct Reference

Search Toolkit Book for SNetStorageObjectRPC::SIState

+ Inheritance diagram for SNetStorageObjectRPC::SIState:
+ Collaboration diagram for SNetStorageObjectRPC::SIState:

Public Member Functions

ERW_Result Read (void *buf, size_t count, size_t *read) override
 Read as many as "count" bytes into a buffer pointed to by the "buf" argument. More...
ERW_Result PendingCount (size_t *count) override
 Via parameter "count" (which is guaranteed to be supplied non-NULL) return the number of bytes that are ready to be read from the input device without blocking. More...
bool Eof () override
void Close () override
void Abort () override
string GetLoc () const override
void StartReading ()
- Public Member Functions inherited from SNetStorageObjectIState
ERW_Result Write (const void *buf, size_t count, size_t *written) final
 Write up to "count" bytes from the buffer pointed to by the "buf" argument onto the output device. More...
ERW_Result Flush () final
 Flush pending data (if any) down to the output device. More...
- Public Member Functions inherited from SNetStorageObjectIoState
Uint8 GetSize () final
list< stringGetAttributeList () const final
string GetAttribute (const string &name) const final
void SetAttribute (const string &name, const string &value) final
CNetStorageObjectInfo GetInfo () final
void SetExpiration (const CTimeout &ttl) final
string FileTrack_Path () final
string Relocate (TNetStorageFlags flags, TNetStorageProgressCb cb) final
bool Exists () final
ENetStorageRemoveResult Remove () final
- Public Member Functions inherited from INetStorageObjectState
virtual pair< string, stringGetUserInfo ()
virtual CNetStorageObjectLocLocator ()
virtual void CancelRelocate ()
- Public Member Functions inherited from IReader
virtual ERW_Result Pushback (const void *buf, size_t count, void *del_ptr=0)
 This method gets called by RStream buffer destructor to return buffered yet still unread (from the stream) portion of data back to the device. More...
virtual ~IReader ()
- Public Member Functions inherited from IWriter
virtual ~IWriter ()

Protected Member Functions

 SIState (SContext &context)
- Protected Member Functions inherited from INetStorageObjectState
void EnterState (INetStorageObjectState *state)
void ExitState ()

Private Member Functions

void ReadConfirmation ()
void ReadSocket ()

Private Attributes

vector< char > m_ReadBuffer
CUTTPReader m_UTTPReader
const char * m_CurrentChunk
size_t m_CurrentChunkSize
bool m_EOF

Detailed Description

Definition at line 535 of file netstorage_rpc.cpp.

Constructor & Destructor Documentation

◆ SIState()

SNetStorageObjectRPC::SIState::SIState ( SContext context)

Definition at line 549 of file netstorage_rpc.cpp.

Member Function Documentation

◆ Abort()

void SNetStorageObjectRPC::SIState::Abort ( void  )

◆ Close()

void SNetStorageObjectRPC::SIState::Close ( void  )

◆ Eof()

bool SNetStorageObjectRPC::SIState::Eof ( void  )

Implements INetStorageObjectState.

Definition at line 1150 of file netstorage_rpc.cpp.

◆ GetLoc()

string SNetStorageObjectRPC::SIState::GetLoc ( void  ) const

Implements INetStorageObjectState.

Definition at line 544 of file netstorage_rpc.cpp.

References SNetStorageObjectRPC::SContext::locator, and m_Context.

◆ PendingCount()

ERW_Result SNetStorageObjectRPC::SIState::PendingCount ( size_t *  count)

Via parameter "count" (which is guaranteed to be supplied non-NULL) return the number of bytes that are ready to be read from the input device without blocking.

Return eRW_Success if the number of pending bytes has been stored at the location pointed to by "count". Return eRW_NotImplemented if the number cannot be determined. Otherwise, return other eRW_... condition to reflect the problem ("*count" does not need to be updated in the case of non-eRW_Success). Note that if reporting 0 bytes ready, the method may return either both eRW_Success and zero "*count", or return eRW_NotImplemented alone.

Implements IReader.

Definition at line 1285 of file netstorage_rpc.cpp.

References eRW_Success.

◆ Read()

ERW_Result SNetStorageObjectRPC::SIState::Read ( void *  buf,
size_t  count,
size_t *  bytes_read 

Read as many as "count" bytes into a buffer pointed to by the "buf" argument.

Always store the number of bytes actually read (0 if read none) via the pointer "bytes_read", if provided non-NULL. Return non-eRW_Success code if EOF / error condition has been encountered during the operation (some data may have been read, nevertheless, and reflected in "*bytes_read"). Special case: if "count" is passed as 0, then the value of "buf" must be ignored, and no change should be made to the state of the input device (but may return non-eRW_Success to indicate that the input device has already been in an error condition).

Apparently, may not return eRW_Success if hasn't been able to read "count" bytes as requested, and "bytes_read" was provided as NULL.
When returning "*bytes_read" as zero for a non-zero "count" requested, the return status should not indicate eRW_Success.
"*bytes_read" may never be returned greater than "count".
It is implementation-dependent whether the call blocks until the entire buffer is read or the call returns when at least some data are available. In general, it is advised that this call is made within a loop that checks for EOF condition and proceeds with the reading until the required amount of data has been retrieved.

Implements IReader.

Definition at line 1097 of file netstorage_rpc.cpp.

References SNetStorageObjectRPC::Abort(), CUTTPReader::eChunk, CUTTPReader::eChunkPart, CUTTPReader::eControlSymbol, CUTTPReader::eEndOfBuffer, eRW_Eof, eRW_Success, SNetStorageObjectRPC::SContext::locator, SNetStorageObjectRPC::m_Context, min(), and NCBI_THROW_FMT.

◆ ReadConfirmation()

void SNetStorageObjectRPC::SIState::ReadConfirmation ( )

◆ ReadSocket()

void SNetStorageObjectRPC::SIState::ReadSocket ( )

◆ StartReading()

void SNetStorageObjectRPC::SIState::StartReading ( )

Member Data Documentation

◆ m_Context

SContext& SNetStorageObjectRPC::SIState::m_Context

Definition at line 555 of file netstorage_rpc.cpp.

Referenced by GetLoc(), ReadConfirmation(), and ReadSocket().

◆ m_CurrentChunk

const char* SNetStorageObjectRPC::SIState::m_CurrentChunk

Definition at line 558 of file netstorage_rpc.cpp.

◆ m_CurrentChunkSize

size_t SNetStorageObjectRPC::SIState::m_CurrentChunkSize

Definition at line 559 of file netstorage_rpc.cpp.

◆ m_EOF

bool SNetStorageObjectRPC::SIState::m_EOF

Definition at line 560 of file netstorage_rpc.cpp.

Referenced by ReadConfirmation().

◆ m_ReadBuffer

vector<char> SNetStorageObjectRPC::SIState::m_ReadBuffer

Definition at line 556 of file netstorage_rpc.cpp.

Referenced by ReadSocket().

◆ m_UTTPReader

CUTTPReader SNetStorageObjectRPC::SIState::m_UTTPReader

Definition at line 557 of file netstorage_rpc.cpp.

Referenced by ReadConfirmation(), and ReadSocket().

The documentation for this struct was generated from the following file:
Modified on Sun Apr 14 05:27:26 2024 by rev. 669887