Go to the documentation of this file.
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 );
208 fun( handleFunction )
236 template<
typename Response,
typename Return>
256 Response *resp = GetResponse<Response>( status, response );
257 task( *status, *resp );
278 template<
typename Return>
327 f(
f ),
fun( handleFunction )
341 fun( *status, *info );
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__
Definition: XrdClOperationHandlers.hh:605
static ResponseHandler * Create(ResponseHandler &hdlr)
Definition: XrdClOperationHandlers.hh:623
static Response value
Definition: XrdClOperationHandlers.hh:114
Definition: XrdClOperationHandlers.hh:648
Handle an async response.
Definition: XrdClXRootDResponses.hh:975
Definition: XrdClOperationHandlers.hh:113
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:296
const XRootDStatus & GetError() const
Definition: XrdClOperationHandlers.hh:399
static ResponseHandler * Create(std::future< Response > &ftr)
Definition: XrdClOperationHandlers.hh:634
std::atomic< ResponseHandler * > handler
The actual operation handler.
Definition: XrdClOperationHandlers.hh:581
static ResponseHandler * Create(std::packaged_task< Return(XRootDStatus &)> &task)
Definition: XrdClOperationHandlers.hh:706
ResponseHandler * handler
Definition: XrdClOperationHandlers.hh:70
std::packaged_task< Return(XRootDStatus &, Response &)> task
user defined task
Definition: XrdClOperationHandlers.hh:268
virtual void HandleResponseWithHosts(XRootDStatus *status, AnyObject *response, HostList *hostList)
Definition: XrdClXRootDResponses.hh:988
std::promise< Response > prms
promise that corresponds to the future
Definition: XrdClOperationHandlers.hh:449
void SetException(const XRootDStatus &err)
Definition: XrdClOperationHandlers.hh:440
std::string ToString() const
Create a string representation.
UnpackXAttr(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:80
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
Definition: XrdClOperationHandlers.hh:419
void Get(Type &object)
Retrieve the object being held.
Definition: XrdClAnyObject.hh:78
UnpackXAttrStatus(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:44
void Set(Type object, bool own=true)
Definition: XrdClAnyObject.hh:59
TaskWrapper(std::packaged_task< Return(XRootDStatus &, Response &)> &&task)
Constructor.
Definition: XrdClOperationHandlers.hh:246
PipelineException & operator=(const PipelineException &ex)
Assigment operator.
Definition: XrdClOperationHandlers.hh:382
A file.
Definition: XrdClFile.hh:45
Pipeline exception, wrapps an XRootDStatus.
Definition: XrdClOperationHandlers.hh:360
virtual void HandleResponse(XRootDStatus *status, AnyObject *response)
Definition: XrdClXRootDResponses.hh:1004
const uint16_t errInternal
Internal error.
Definition: XrdClStatus.hh:55
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:515
XRootDStatus error
the XRootDStatus associated with this exception
Definition: XrdClOperationHandlers.hh:409
FunctionWrapper(std::function< void(XRootDStatus &)> handleFunction)
Constructor.
Definition: XrdClOperationHandlers.hh:206
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:51
Request status.
Definition: XrdClXRootDResponses.hh:215
TaskWrapper(std::packaged_task< Return(XRootDStatus &)> &&task)
Constructor.
Definition: XrdClOperationHandlers.hh:288
Definition: XrdClOperationHandlers.hh:238
Definition: XrdClOperationHandlers.hh:158
static ResponseHandler * Create(std::packaged_task< Return(XRootDStatus &, Response &)> &task)
Definition: XrdClOperationHandlers.hh:668
std::function< void(XRootDStatus &, StatInfo &)> fun
user defined function, functor or lambda
Definition: XrdClOperationHandlers.hh:353
FutureWrapper(std::future< Response > &ftr)
Definition: XrdClOperationHandlers.hh:467
static ResponseHandler * Create(std::function< void(XRootDStatus &)> func)
Definition: XrdClOperationHandlers.hh:694
static ResponseHandler * Create(ResponseHandler *hdlr)
Definition: XrdClOperationHandlers.hh:612
Helper class for unpacking single XAttr from bulk response.
Definition: XrdClOperationHandlers.hh:77
PipelineException(const PipelineException &ex)
Copy constructor.
Definition: XrdClOperationHandlers.hh:374
static ResponseHandler * Create(std::function< void(XRootDStatus &, Response &)> func)
Definition: XrdClOperationHandlers.hh:655
bool IsOK() const
We're fine.
Definition: XrdClStatus.hh:120
std::packaged_task< Return(XRootDStatus &)> task
user defined task
Definition: XrdClOperationHandlers.hh:309
virtual void HandleResponseWithHosts(XRootDStatus *status, AnyObject *response, HostList *hostList)
Definition: XrdClOperationHandlers.hh:567
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:475
Lambda wrapper.
Definition: XrdClOperationHandlers.hh:317
Response * GetResponse(AnyObject *rsp)
Definition: XrdClOperationHandlers.hh:130
Definition: XrdClAnyObject.hh:26
File & f
Definition: XrdClOperationHandlers.hh:349
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:175
std::vector< HostInfo > HostList
Definition: XrdClXRootDResponses.hh:969
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:215
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:334
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
FinalizeHandler * make_finalized(ResponseHandler *handler)
Definition: XrdClOperationHandlers.hh:591
FutureWrapperBase(std::future< Response > &ftr)
Definition: XrdClOperationHandlers.hh:428
FutureWrapper(std::future< void > &ftr)
Definition: XrdClOperationHandlers.hh:507
const uint16_t stError
An error occurred that could potentially be retried.
Definition: XrdClStatus.hh:32
Object stat info.
Definition: XrdClXRootDResponses.hh:396
ResponseHandler * handler
Definition: XrdClOperationHandlers.hh:103
std::function< void(XRootDStatus &, Response &)> fun
user defined function, functor or lambda
Definition: XrdClOperationHandlers.hh:188
Definition: XrdClOperationHandlers.hh:538
Definition: XrdClOperationHandlers.hh:198
PipelineException(const XRootDStatus &error)
Constructor from XRootDStatus.
Definition: XrdClOperationHandlers.hh:366
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:87
Definition: XrdClOperationHandlers.hh:280
Helper class for unpacking single XAttrStatus from bulk response.
Definition: XrdClOperationHandlers.hh:41
Definition: XrdClAnyObject.hh:33
const uint16_t errPipelineFailed
Pipeline failed and operation couldn't be executed.
Definition: XrdClStatus.hh:65
Definition: XrdClOperationHandlers.hh:459
void HandleResponse(XRootDStatus *status, AnyObject *response)
Callback method.
Definition: XrdClOperationHandlers.hh:254
const char * what() const noexcept
inherited from std::exception
Definition: XrdClOperationHandlers.hh:391
virtual ~FinalizeHandler()
Destructor.
Definition: XrdClOperationHandlers.hh:554