25#ifndef SRC_XRDEC_XRDECSTRMWRITER_HH_
26#define SRC_XRDEC_XRDECSTRMWRITER_HH_
136 std::unique_lock<std::recursive_mutex> lck(
mtx );
167 std::unique_lock<std::recursive_mutex> lck(
mtx );
188 std::unique_lock<std::recursive_mutex> lck(
mtx );
194 std::unique_lock<std::recursive_mutex> lck(
mtx );
204 mutable std::recursive_mutex
mtx;
225 std::unique_ptr<WrtBuff> ptr(
wrtbuff );
227 return ptr.release();
240 std::unique_ptr<WrtBuff> result( ftr.get() );
260 catch(
const buff_queue::wait_interrupted& ){ }
286 std::vector<std::shared_ptr<XrdCl::ZipArchive>>
dataarchs;
Handle an async response.
Definition XrdClXRootDResponses.hh:1126
Request status.
Definition XrdClXRootDResponses.hh:219
Definition XrdEcStrmWriter.hh:53
std::vector< std::vector< char > > cdbuffs
Definition XrdEcStrmWriter.hh:288
static void writer_routine(StrmWriter *me)
Definition XrdEcStrmWriter.hh:249
StrmWriter(const ObjCfg &objcfg)
Constructor.
Definition XrdEcStrmWriter.hh:64
void Open(XrdCl::ResponseHandler *handler, uint16_t timeout=0)
buff_queue buffers
Definition XrdEcStrmWriter.hh:289
void WriteBuff(std::unique_ptr< WrtBuff > buff)
std::atomic< bool > writer_thread_stop
Definition XrdEcStrmWriter.hh:291
virtual ~StrmWriter()
Destructor.
Definition XrdEcStrmWriter.hh:75
void EnqueueBuff(std::unique_ptr< WrtBuff > wrtbuff)
Definition XrdEcStrmWriter.hh:218
sync_queue< std::future< WrtBuff * > > buff_queue
Definition XrdEcStrmWriter.hh:57
void Write(uint32_t size, const void *buff, XrdCl::ResponseHandler *handler)
uint64_t GetSize()
Definition XrdEcStrmWriter.hh:108
size_t next_blknb
Definition XrdEcStrmWriter.hh:294
std::unique_ptr< WrtBuff > DequeueBuff()
Definition XrdEcStrmWriter.hh:237
const ObjCfg & objcfg
Definition XrdEcStrmWriter.hh:284
std::vector< std::shared_ptr< XrdCl::ZipArchive > > dataarchs
Definition XrdEcStrmWriter.hh:286
std::vector< std::shared_ptr< XrdCl::File > > metadataarchs
Definition XrdEcStrmWriter.hh:287
void Close(XrdCl::ResponseHandler *handler, uint16_t timeout=0)
global_status_t global_status
Definition XrdEcStrmWriter.hh:295
std::vector< char > GetMetadataBuffer()
void CloseImpl(XrdCl::ResponseHandler *handler, uint16_t timeout=0)
std::thread writer_thread
Definition XrdEcStrmWriter.hh:293
std::unique_ptr< WrtBuff > wrtbuff
Definition XrdEcStrmWriter.hh:285
static ThreadPool & Instance()
Singleton access.
Definition XrdEcThreadPool.hh:150
Definition XrdEcWrtBuff.hh:133
Definition XrdClZipArchive.hh:45
bool IsOK() const
We're fine.
Definition XrdClStatus.hh:124
Definition XrdEcObjCfg.hh:34
Definition XrdEcStrmWriter.hh:119
uint64_t btsleft
Definition XrdEcStrmWriter.hh:206
void issue_write(uint64_t wrtsize)
Definition XrdEcStrmWriter.hh:192
XrdCl::XRootDStatus status
Definition XrdEcStrmWriter.hh:209
std::recursive_mutex mtx
Definition XrdEcStrmWriter.hh:204
global_status_t(StrmWriter *writer)
Definition XrdEcStrmWriter.hh:123
void report_wrt(const XrdCl::XRootDStatus &st, uint64_t wrtsize)
Definition XrdEcStrmWriter.hh:134
void issue_close(XrdCl::ResponseHandler *handler, uint16_t timeout)
Definition XrdEcStrmWriter.hh:165
uint64_t btswritten
Definition XrdEcStrmWriter.hh:207
void report_open(const XrdCl::XRootDStatus &st)
Definition XrdEcStrmWriter.hh:157
uint64_t get_btswritten()
Definition XrdEcStrmWriter.hh:198
XrdCl::ResponseHandler * closeHandler
Definition XrdEcStrmWriter.hh:210
StrmWriter * writer
Definition XrdEcStrmWriter.hh:205
const XrdCl::XRootDStatus & get() const
Definition XrdEcStrmWriter.hh:186
bool stopped_writing
Definition XrdEcStrmWriter.hh:208
Definition XrdEcUtilities.hh:169
void enqueue(Element &&element)
Definition XrdEcUtilities.hh:185
Element dequeue()
Definition XrdEcUtilities.hh:196
void interrupt()
Definition XrdEcUtilities.hh:234