25 #ifndef SRC_XRDEC_XRDECSTRMWRITER_HH_ 26 #define SRC_XRDEC_XRDECSTRMWRITER_HH_ 127 std::unique_lock<std::recursive_mutex> lck(
mtx );
157 std::unique_lock<std::recursive_mutex> lck(
mtx );
178 std::unique_lock<std::recursive_mutex> lck(
mtx );
184 std::unique_lock<std::recursive_mutex> lck(
mtx );
189 mutable std::recursive_mutex
mtx;
209 std::unique_ptr<WrtBuff> ptr(
wrtbuff );
211 return ptr.release();
224 std::unique_ptr<WrtBuff> result( ftr.get() );
225 return std::move( result );
252 void WriteBuff( std::unique_ptr<WrtBuff> buff );
270 std::vector<std::shared_ptr<XrdCl::ZipArchive>>
dataarchs;
std::vector< std::shared_ptr< XrdCl::File > > metadataarchs
Definition: XrdEcStrmWriter.hh:271
global_status_t global_status
Definition: XrdEcStrmWriter.hh:279
void CloseImpl(XrdCl::ResponseHandler *handler)
void report_wrt(const XrdCl::XRootDStatus &st, uint64_t wrtsize)
Definition: XrdEcStrmWriter.hh:125
sync_queue< std::future< WrtBuff * > > buff_queue
Definition: XrdEcStrmWriter.hh:57
void EnqueueBuff(std::unique_ptr< WrtBuff > wrtbuff)
Definition: XrdEcStrmWriter.hh:202
bool stopped_writing
Definition: XrdEcStrmWriter.hh:192
buff_queue buffers
Definition: XrdEcStrmWriter.hh:273
StrmWriter * writer
Definition: XrdEcStrmWriter.hh:190
void WriteBuff(std::unique_ptr< WrtBuff > buff)
void report_open(const XrdCl::XRootDStatus &st)
Definition: XrdEcStrmWriter.hh:147
virtual ~StrmWriter()
Destructor.
Definition: XrdEcStrmWriter.hh:75
static ThreadPool & Instance()
Singleton access.
Definition: XrdEcThreadPool.hh:150
std::atomic< bool > writer_thread_stop
Definition: XrdEcStrmWriter.hh:275
void Open(XrdCl::ResponseHandler *handler)
bool IsOK() const
We're fine.
Definition: XrdClStatus.hh:122
void Write(uint32_t size, const void *buff, XrdCl::ResponseHandler *handler)
Definition: XrdEcStrmWriter.hh:52
void Close(XrdCl::ResponseHandler *handler)
Definition: XrdEcUtilities.hh:175
std::unique_ptr< WrtBuff > DequeueBuff()
Definition: XrdEcStrmWriter.hh:221
std::thread writer_thread
Definition: XrdEcStrmWriter.hh:277
uint64_t bytesleft
Definition: XrdEcStrmWriter.hh:191
void enqueue(Element &&element)
Definition: XrdEcUtilities.hh:187
std::recursive_mutex mtx
Definition: XrdEcStrmWriter.hh:189
Element dequeue()
Definition: XrdEcUtilities.hh:198
std::vector< std::vector< char > > cdbuffs
Definition: XrdEcStrmWriter.hh:272
Request status.
Definition: XrdClXRootDResponses.hh:218
size_t next_blknb
Definition: XrdEcStrmWriter.hh:278
Definition: XrdEcUtilities.hh:170
Definition: XrdEcStrmWriter.hh:110
XrdCl::XRootDStatus status
Definition: XrdEcStrmWriter.hh:193
static void writer_routine(StrmWriter *me)
Definition: XrdEcStrmWriter.hh:233
Handle an async response.
Definition: XrdClXRootDResponses.hh:1040
const ObjCfg & objcfg
Definition: XrdEcStrmWriter.hh:268
void issue_write(uint64_t wrtsize)
Definition: XrdEcStrmWriter.hh:182
global_status_t(StrmWriter *writer)
Definition: XrdEcStrmWriter.hh:115
Definition: XrdEcWrtBuff.hh:132
StrmWriter(const ObjCfg &objcfg)
Constructor.
Definition: XrdEcStrmWriter.hh:64
Definition: XrdEcObjCfg.hh:19
void interrupt()
Definition: XrdEcUtilities.hh:236
XrdCl::ResponseHandler * closeHandler
Definition: XrdEcStrmWriter.hh:194
void issue_close(XrdCl::ResponseHandler *handler)
Definition: XrdEcStrmWriter.hh:155
Definition: XrdClZipArchive.hh:45
std::vector< char > GetMetadataBuffer()
std::unique_ptr< WrtBuff > wrtbuff
Definition: XrdEcStrmWriter.hh:269
std::vector< std::shared_ptr< XrdCl::ZipArchive > > dataarchs
Definition: XrdEcStrmWriter.hh:270