Pigweed
C/C++ API Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
Public Member Functions | List of all members
pw::transfer::AtomicFileTransferHandler Class Reference
Inheritance diagram for pw::transfer::AtomicFileTransferHandler:

Public Member Functions

 AtomicFileTransferHandler (uint32_t resource_id, std::string_view file_path)
 
 AtomicFileTransferHandler (const AtomicFileTransferHandler &rhs)=delete
 
AtomicFileTransferHandleroperator= (const AtomicFileTransferHandler &)=delete
 
Status PrepareRead () override
 
void FinalizeRead (Status) override
 
Status PrepareWrite () override
 
Status FinalizeWrite (Status) override
 

Detailed Description

AtomicFileTransferHandler is intended to be used as a transfer handler for files. It ensures that the target file of the transfer is always in a correct state. In particular, the transfer is first done to a temporary file and once complete, the original targeted file is updated.

Constructor & Destructor Documentation

◆ AtomicFileTransferHandler()

pw::transfer::AtomicFileTransferHandler::AtomicFileTransferHandler ( uint32_t  resource_id,
std::string_view  file_path 
)
inline
Parameters
[in]resource_idAn ID for the resource that's being transferred.
[in]file_pathThe target file to update.

Member Function Documentation

◆ FinalizeRead()

void pw::transfer::AtomicFileTransferHandler::FinalizeRead ( Status  )
override

Handler function that is called by the transfer thread after a read transfer completes.

Parameters
[in]StatusA pw::Status object provided by the transfer thread indicating whether the transfer succeeded.
Precondition
The read transfer is done before the call to this method.

◆ FinalizeWrite()

Status pw::transfer::AtomicFileTransferHandler::FinalizeWrite ( Status  )
override

Indicates whether the write transfer was successful.

Precondition
The write transfer is done.
Returns
embed:rst:leading-asterisk
 
* 
*  .. pw-status-codes::
* 
*     OK: The transfer data was successfully written.
* 
*  

◆ PrepareRead()

Status pw::transfer::AtomicFileTransferHandler::PrepareRead ( )
override

Prepares AtomicFileTransferHandler for a read transfer.

Precondition
The read transfer has not been initialized before the call to this method.
Returns
embed:rst:leading-asterisk
 
* 
*  .. pw-status-codes::
* 
*     OK: ``AtomicFileTransferHandler`` is ready for the transfer.
* 
*  

◆ PrepareWrite()

Status pw::transfer::AtomicFileTransferHandler::PrepareWrite ( )
override

Prepares AtomicFileTransferHandler for a write transfer.

Precondition
The write transfer has not been initialized before the call to this method.
Returns
embed:rst:leading-asterisk
 
* 
*  .. pw-status-codes::
* 
*     OK: ``AtomicFileTransferHandler`` is ready for the transfer.
* 
*  

The documentation for this class was generated from the following file: