|
xrootd
|
#include <XrdEcStrmWriter.hh>

Classes | |
| struct | global_status_t |
Public Member Functions | |
| StrmWriter (const ObjCfg &objcfg) | |
| Constructor. More... | |
| virtual | ~StrmWriter () |
| Destructor. More... | |
| void | Open (XrdCl::ResponseHandler *handler, uint16_t timeout=0) |
| void | Write (uint32_t size, const void *buff, XrdCl::ResponseHandler *handler) |
| void | Close (XrdCl::ResponseHandler *handler, uint16_t timeout=0) |
| uint64_t | GetSize () |
Private Types | |
| typedef sync_queue < std::future< WrtBuff * > > | buff_queue |
Private Member Functions | |
| void | EnqueueBuff (std::unique_ptr< WrtBuff > wrtbuff) |
| std::unique_ptr< WrtBuff > | DequeueBuff () |
| void | WriteBuff (std::unique_ptr< WrtBuff > buff) |
| std::vector< char > | GetMetadataBuffer () |
| void | CloseImpl (XrdCl::ResponseHandler *handler, uint16_t timeout=0) |
Static Private Member Functions | |
| static void | writer_routine (StrmWriter *me) |
Private Attributes | |
| const ObjCfg & | objcfg |
| std::unique_ptr< WrtBuff > | wrtbuff |
| std::vector< std::shared_ptr < XrdCl::ZipArchive > > | dataarchs |
| std::vector< std::shared_ptr < XrdCl::File > > | metadataarchs |
| std::vector< std::vector< char > > | cdbuffs |
| buff_queue | buffers |
| std::atomic< bool > | writer_thread_stop |
| std::thread | writer_thread |
| size_t | next_blknb |
| global_status_t | global_status |
The Stream Writer objects, responsible for writing erasure coded data into selected placement group.
|
private |
|
inline |
Constructor.
|
inlinevirtual |
Destructor.
References buffers, XrdEc::sync_queue< Element >::interrupt(), writer_thread, and writer_thread_stop.
| void XrdEc::StrmWriter::Close | ( | XrdCl::ResponseHandler * | handler, |
| uint16_t | timeout = 0 |
||
| ) |
Close the data object
| handler | : user callback |
|
private |
Close the data object (implementation)
| handler | : user callback |
Referenced by XrdEc::StrmWriter::global_status_t::issue_close(), and XrdEc::StrmWriter::global_status_t::report_wrt().
|
inlineprivate |
Dequeue a write buffer after it has been erasure coded and checksumed
References buffers, and XrdEc::sync_queue< Element >::dequeue().
Referenced by writer_routine().
|
inlineprivate |
Enqueue the write buffer for calculating parity and crc32c
| wrtbuff | : the write buffer |
References buffers, XrdEc::sync_queue< Element >::enqueue(), XrdEc::ThreadPool::Instance(), and wrtbuff.
|
private |
Get a buffer with metadata (CDFH and EOCD records)
|
inline |
References XrdEc::StrmWriter::global_status_t::get_btswritten(), and global_status.
| void XrdEc::StrmWriter::Open | ( | XrdCl::ResponseHandler * | handler, |
| uint16_t | timeout = 0 |
||
| ) |
Open the data object for writting
| handler | : user callback |
| void XrdEc::StrmWriter::Write | ( | uint32_t | size, |
| const void * | buff, | ||
| XrdCl::ResponseHandler * | handler | ||
| ) |
Write data to the data object
| size | : number of bytes to be written |
| buff | : buffer with data to be written |
| handler | : user callback |
|
private |
Issue the write requests for the given write buffer
| buff | : the buffer to be written |
Referenced by writer_routine().
|
inlinestaticprivate |
The writing routine running in a dedicated thread.
| me | : the StrmWriter object |
References DequeueBuff(), WriteBuff(), writer_thread_stop, and wrtbuff.
|
private |
Referenced by DequeueBuff(), EnqueueBuff(), and ~StrmWriter().
|
private |
|
private |
|
private |
Referenced by GetSize().
|
private |
|
private |
|
private |
|
private |
Referenced by ~StrmWriter().
|
private |
Referenced by writer_routine(), and ~StrmWriter().
|
private |
Referenced by EnqueueBuff(), and writer_routine().
1.8.5