26 #ifndef __XRD_CL_OPERATION_HANDLERS_HH__
27 #define __XRD_CL_OPERATION_HANDLERS_HH__
60 std::vector<XAttrStatus> *bulk =
nullptr;
61 response->
Get( bulk );
62 *status = bulk->front().
status;
91 std::vector<XAttr> *bulk =
nullptr;
92 response->
Get( bulk );
93 *status = bulk->front().
status;
94 std::string *rsp =
new std::string( std::move( bulk->front().value ) );
111 template<
typename Response>
120 template<
typename Response>
129 template<
typename Response>
132 Response *ret =
nullptr;
144 template<
typename Response>
148 return GetResponse<Response>( rsp );
156 template<
typename Response>
167 std::function<
void(
XRootDStatus&, Response& )> handleFunction ) :
168 fun( handleFunction )
177 Response *res = GetResponse<Response>( status, response );
178 fun( *status, *res );
188 std::function<void( XRootDStatus&, Response& )>
fun;
208 fun( handleFunction )
227 std::function<void( XRootDStatus& )>
fun;
236 template<
typename Response,
typename Return>
256 Response *resp = GetResponse<Response>( status, response );
257 task( *status, *resp );
268 std::packaged_task<Return( XRootDStatus&, Response& )>
task;
278 template<
typename Return>
309 std::packaged_task<Return( XRootDStatus& )>
task;
327 f( f ),
fun( handleFunction )
341 fun( *status, *info );
353 std::function<void( XRootDStatus&, StatInfo& )>
fun;
391 const char*
what() const noexcept
417 template<
typename Response>
430 ftr =
prms.get_future();
443 prms.set_exception( ex );
457 template<
typename Response>
479 Response *resp = GetResponse<Response>( response );
483 this->
prms.set_value( std::move( *resp ) );
603 template<
typename Response>
646 template<
typename Response>
667 template<
typename Return>
705 template<
typename Return>
718 #endif // __XRD_CL_OPERATIONS_HANDLERS_HH__
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:296
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:215
TaskWrapper(std::packaged_task< Return(XRootDStatus &, Response &)> &&task)
Constructor.
Definition: XrdClOperationHandlers.hh:246
Definition: XrdClAnyObject.hh:32
static ResponseHandler * Create(ResponseHandler &hdlr)
Definition: XrdClOperationHandlers.hh:623
File & f
Definition: XrdClOperationHandlers.hh:349
const char * what() const noexcept
inherited from std::exception
Definition: XrdClOperationHandlers.hh:391
void Get(Type &object)
Retrieve the object being held.
Definition: XrdClAnyObject.hh:78
Object stat info.
Definition: XrdClXRootDResponses.hh:395
Definition: XrdClOperationHandlers.hh:418
static ResponseHandler * Create(std::future< Response > &ftr)
Definition: XrdClOperationHandlers.hh:634
std::promise< Response > prms
promise that corresponds to the future
Definition: XrdClOperationHandlers.hh:449
Definition: XrdClOperationHandlers.hh:537
Definition: XrdClOperationHandlers.hh:112
std::function< void(XRootDStatus &, StatInfo &)> fun
user defined function, functor or lambda
Definition: XrdClOperationHandlers.hh:353
static ResponseHandler * Create(std::packaged_task< Return(XRootDStatus &, Response &)> &task)
Definition: XrdClOperationHandlers.hh:668
static Response value
Definition: XrdClOperationHandlers.hh:114
Definition: XrdClOperationHandlers.hh:197
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:51
PipelineException(const PipelineException &ex)
Copy constructor.
Definition: XrdClOperationHandlers.hh:374
virtual void HandleResponseWithHosts(XRootDStatus *status, AnyObject *response, HostList *hostList)
Definition: XrdClOperationHandlers.hh:567
const XRootDStatus & GetError() const
Definition: XrdClOperationHandlers.hh:399
uint16_t status
Status of the execution.
Definition: XrdClStatus.hh:137
FinalizeHandler(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:546
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:254
Definition: XrdClOperationHandlers.hh:237
FunctionWrapper(std::function< void(XRootDStatus &)> handleFunction)
Constructor.
Definition: XrdClOperationHandlers.hh:206
Definition: XrdClOperationHandlers.hh:647
std::function< void(XRootDStatus &, Response &)> fun
user defined function, functor or lambda
Definition: XrdClOperationHandlers.hh:188
Definition: XrdClOperationHandlers.hh:279
TaskWrapper(std::packaged_task< Return(XRootDStatus &)> &&task)
Constructor.
Definition: XrdClOperationHandlers.hh:288
FutureWrapper(std::future< Response > &ftr)
Definition: XrdClOperationHandlers.hh:467
void SetException(const XRootDStatus &err)
Definition: XrdClOperationHandlers.hh:440
Pipeline exception, wrapps an XRootDStatus.
Definition: XrdClOperationHandlers.hh:359
A file.
Definition: XrdClFile.hh:44
std::vector< HostInfo > HostList
Definition: XrdClXRootDResponses.hh:969
Helper class for unpacking single XAttr from bulk response.
Definition: XrdClOperationHandlers.hh:76
Definition: XrdClOperationHandlers.hh:458
void Set(Type object, bool own=true)
Definition: XrdClAnyObject.hh:59
std::string ToString() const
Create a string representation.
const uint16_t stError
An error occurred that could potentially be retried.
Definition: XrdClStatus.hh:32
PipelineException & operator=(const PipelineException &ex)
Assigment operator.
Definition: XrdClOperationHandlers.hh:382
Request status.
Definition: XrdClXRootDResponses.hh:214
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:175
static ResponseHandler * Create(std::function< void(XRootDStatus &, Response &)> func)
Definition: XrdClOperationHandlers.hh:655
std::packaged_task< Return(XRootDStatus &, Response &)> task
user defined task
Definition: XrdClOperationHandlers.hh:268
const uint16_t errPipelineFailed
Pipeline failed and operation couldn't be executed.
Definition: XrdClStatus.hh:65
std::packaged_task< Return(XRootDStatus &)> task
user defined task
Definition: XrdClOperationHandlers.hh:309
Definition: XrdClOperationHandlers.hh:604
virtual ~FinalizeHandler()
Destructor.
Definition: XrdClOperationHandlers.hh:554
Lambda wrapper.
Definition: XrdClOperationHandlers.hh:316
static ResponseHandler * Create(std::packaged_task< Return(XRootDStatus &)> &task)
Definition: XrdClOperationHandlers.hh:706
ExOpenFuncWrapper(File &f, std::function< void(XRootDStatus &, StatInfo &)> handleFunction)
Constructor.
Definition: XrdClOperationHandlers.hh:325
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:87
UnpackXAttrStatus(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:44
Handle an async response.
Definition: XrdClXRootDResponses.hh:974
Helper class for unpacking single XAttrStatus from bulk response.
Definition: XrdClOperationHandlers.hh:40
virtual void HandleResponse(XRootDStatus *status, AnyObject *response)
Definition: XrdClXRootDResponses.hh:1004
ResponseHandler * handler
Definition: XrdClOperationHandlers.hh:103
std::atomic< ResponseHandler * > handler
The actual operation handler.
Definition: XrdClOperationHandlers.hh:581
FinalizeHandler * make_finalized(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:591
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
virtual void HandleResponseWithHosts(XRootDStatus *status, AnyObject *response, HostList *hostList)
Definition: XrdClXRootDResponses.hh:988
Response * GetResponse(AnyObject *rsp)
Definition: XrdClOperationHandlers.hh:130
static ResponseHandler * Create(ResponseHandler *hdlr)
Definition: XrdClOperationHandlers.hh:612
const uint16_t errInternal
Internal error.
Definition: XrdClStatus.hh:55
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:515
XRootDStatus error
the XRootDStatus associated with this exception
Definition: XrdClOperationHandlers.hh:409
ResponseHandler * handler
Definition: XrdClOperationHandlers.hh:70
std::function< void(XRootDStatus &)> fun
user defined function, functor or lambda
Definition: XrdClOperationHandlers.hh:227
FunctionWrapper(std::function< void(XRootDStatus &, Response &)> handleFunction)
Constructor.
Definition: XrdClOperationHandlers.hh:166
FutureWrapperBase(std::future< Response > &ftr)
Definition: XrdClOperationHandlers.hh:428
Definition: XrdClOperationHandlers.hh:157
PipelineException(const XRootDStatus &error)
Constructor from XRootDStatus.
Definition: XrdClOperationHandlers.hh:366
UnpackXAttr(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:80
bool IsOK() const
We're fine.
Definition: XrdClStatus.hh:120
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:334
FutureWrapper(std::future< void > &ftr)
Definition: XrdClOperationHandlers.hh:507
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:475
static ResponseHandler * Create(std::function< void(XRootDStatus &)> func)
Definition: XrdClOperationHandlers.hh:694