25#ifndef SRC_XRDEC_XRDECUTILITIES_HH_
26#define SRC_XRDEC_XRDECUTILITIES_HH_
38#include <condition_variable>
114 virtual const char*
what() const noexcept
167 template<
typename Element>
187 std::unique_lock<std::mutex> lck(
mtx );
188 elements.push( std::move( element ) );
198 std::unique_lock<std::mutex> lck(
mtx );
204 Element element = std::move(
elements.front() );
215 std::unique_lock<std::mutex> lck(
mtx );
216 if(
elements.empty() )
return false;
227 std::unique_lock<std::mutex> lck(
mtx );
243 std::condition_variable
cv;
251 inline static size_t fntoblk(
const std::string &fn )
253 size_t end = fn.rfind(
'.' );
254 size_t begin = fn.rfind(
'.', end - 1 ) + 1;
255 size_t len = end - begin;
256 return std::stoul( fn.substr( begin, len ) );
Handle an async response.
Definition XrdClXRootDResponses.hh:1126
Request status.
Definition XrdClXRootDResponses.hh:219
Generic I/O exception, wraps up XrdCl::XRootDStatus (.
Definition XrdEcUtilities.hh:75
IOError(const IOError &err) noexcept
Copy constructor.
Definition XrdEcUtilities.hh:90
XrdCl::XRootDStatus st
The status object.
Definition XrdEcUtilities.hh:137
const XrdCl::XRootDStatus & Status() const
Definition XrdEcUtilities.hh:122
IOError(const XrdCl::XRootDStatus &st) noexcept
Definition XrdEcUtilities.hh:83
virtual ~IOError()
Destructor.
Definition XrdEcUtilities.hh:107
@ ioTooManyErrors
Definition XrdEcUtilities.hh:129
virtual const char * what() const noexcept
overloaded
Definition XrdEcUtilities.hh:114
IOError & operator=(const IOError &err) noexcept
Assigment operator.
Definition XrdEcUtilities.hh:97
std::string msg
The error message.
Definition XrdEcUtilities.hh:142
Definition XrdClZipArchive.hh:45
std::vector< stripe_t > stripes_t
All stripes in a block.
Definition XrdEcUtilities.hh:64
static size_t fntoblk(const std::string &fn)
Definition XrdEcUtilities.hh:251
void ScheduleHandler(uint64_t offset, uint32_t size, void *buffer, XrdCl::ResponseHandler *handler)
std::vector< char > buffer_t
a buffer type
Definition XrdEcReader.hh:49
std::string ToString() const
Create a string representation.
A buffer with stripe data and info on validity.
Definition XrdEcUtilities.hh:46
char * buffer
Definition XrdEcUtilities.hh:57
bool valid
Definition XrdEcUtilities.hh:58
stripe_t(char *buffer, bool valid)
Definition XrdEcUtilities.hh:53
Definition XrdEcUtilities.hh:173
Definition XrdEcUtilities.hh:169
std::condition_variable cv
Definition XrdEcUtilities.hh:243
bool dequeue(Element &e)
Definition XrdEcUtilities.hh:213
bool empty()
Definition XrdEcUtilities.hh:225
void enqueue(Element &&element)
Definition XrdEcUtilities.hh:185
std::queue< Element > elements
Definition XrdEcUtilities.hh:241
sync_queue()
Definition XrdEcUtilities.hh:178
Element dequeue()
Definition XrdEcUtilities.hh:196
std::mutex mtx
Definition XrdEcUtilities.hh:242
void interrupt()
Definition XrdEcUtilities.hh:234
std::atomic< bool > interrupted
Definition XrdEcUtilities.hh:244