26#ifndef SRC_XRDCL_XRDCLCTX_HH_
27#define SRC_XRDCL_XRDCLCTX_HH_
38 struct Ctx :
protected std::shared_ptr<T*>
43 Ctx() :
std::shared_ptr<T*>(
std::make_shared<T*>() )
50 Ctx( T *ctx ) :
std::shared_ptr<T*>(
std::make_shared<T*>( ctx ) )
57 Ctx( T &ctx ) :
std::shared_ptr<T*>(
std::make_shared<T*>( &ctx ) )
102 if( !
bool( *this->get() ) )
throw std::logic_error(
"XrdCl::Ctx contains no value!" );
103 return **this->get();
115 if( !
bool( *this->get() ) )
throw std::logic_error(
"XrdCl::Ctx contains no value!" );
Definition XrdClAction.hh:34
Definition XrdOucJson.hh:4517
Utility class for storing a pointer to operation context.
Definition XrdClCtx.hh:39
Ctx & operator=(T *ctx)
Assignment operator (from pointer)
Definition XrdClCtx.hh:78
Ctx(T &ctx)
Constructor (from reference)
Definition XrdClCtx.hh:57
T * operator->() const
Definition XrdClCtx.hh:113
Ctx(T *ctx)
Constructor (from pointer)
Definition XrdClCtx.hh:50
Ctx & operator=(T &ctx)
Assignment operator (from reference)
Definition XrdClCtx.hh:87
Ctx(const Ctx &ctx)
Copy constructor.
Definition XrdClCtx.hh:64
Ctx()
Default constructor.
Definition XrdClCtx.hh:43
T & operator*() const
Definition XrdClCtx.hh:100
Ctx(Ctx &&ctx)
Move constructor.
Definition XrdClCtx.hh:71