Go to the documentation of this file.
25 #ifndef SRC_XRDEC_XRDECUTILITIES_HH_
26 #define SRC_XRDEC_XRDECUTILITIES_HH_
40 #include <condition_variable>
102 msg = err.st.ToString();
116 virtual const char*
what() const noexcept
169 template<
typename Element>
189 std::unique_lock<std::mutex> lck(
mtx );
190 elements.push( std::move( element ) );
200 std::unique_lock<std::mutex> lck(
mtx );
206 Element element = std::move(
elements.front() );
208 return std::move( element );
217 std::unique_lock<std::mutex> lck(
mtx );
218 if(
elements.empty() )
return false;
229 std::unique_lock<std::mutex> lck(
mtx );
245 std::condition_variable
cv;
std::atomic< bool > interrupted
Definition: XrdEcUtilities.hh:246
Handle an async response.
Definition: XrdClXRootDResponses.hh:1037
Definition: XrdClZipArchive.hh:45
std::mutex mtx
Definition: XrdEcUtilities.hh:244
std::string ToString() const
Create a string representation.
XrdCl::XRootDStatus st
The status object.
Definition: XrdEcUtilities.hh:139
virtual ~IOError()
Destructor.
Definition: XrdEcUtilities.hh:109
Generic I/O exception, wraps up XrdCl::XRootDStatus (.
Definition: XrdEcUtilities.hh:77
IOError(const IOError &err) noexcept
Copy constructor.
Definition: XrdEcUtilities.hh:92
virtual const char * what() const noexcept
overloaded
Definition: XrdEcUtilities.hh:116
std::condition_variable cv
Definition: XrdEcUtilities.hh:245
const XrdCl::XRootDStatus & Status() const
Definition: XrdEcUtilities.hh:124
A buffer with stripe data and info on validity.
Definition: XrdEcUtilities.hh:48
bool valid
Definition: XrdEcUtilities.hh:60
char * buffer
Definition: XrdEcUtilities.hh:59
Request status.
Definition: XrdClXRootDResponses.hh:215
std::vector< char > buffer_t
a buffer type
Definition: XrdEcReader.hh:44
IOError & operator=(const IOError &err) noexcept
Assigment operator.
Definition: XrdEcUtilities.hh:99
IOError(const XrdCl::XRootDStatus &st) noexcept
Definition: XrdEcUtilities.hh:85
void enqueue(Element &&element)
Definition: XrdEcUtilities.hh:187
std::vector< stripe_t > stripes_t
All stripes in a block.
Definition: XrdEcUtilities.hh:66
Definition: XrdEcUtilities.hh:171
sync_queue()
Definition: XrdEcUtilities.hh:180
stripe_t(char *buffer, bool valid)
Definition: XrdEcUtilities.hh:55
void interrupt()
Definition: XrdEcUtilities.hh:236
void ScheduleHandler(uint64_t offset, uint32_t size, void *buffer, XrdCl::ResponseHandler *handler)
std::queue< Element > elements
Definition: XrdEcUtilities.hh:243
@ ioTooManyErrors
Definition: XrdEcUtilities.hh:131
std::string msg
The error message.
Definition: XrdEcUtilities.hh:144
Element dequeue()
Definition: XrdEcUtilities.hh:198
Definition: XrdEcUtilities.hh:175
bool empty()
Definition: XrdEcUtilities.hh:227
bool dequeue(Element &e)
Definition: XrdEcUtilities.hh:215