XRootD
XrdCl::ArgBase< T > Class Template Reference

Base class for Arg. More...

#include <XrdClArg.hh>

+ Inheritance diagram for XrdCl::ArgBase< T >:
+ Collaboration diagram for XrdCl::ArgBase< T >:

Classes

struct  FutureValue
 A helper class for holding future value. More...
 
struct  FwdValue
 A helper class for holding forwarded value. More...
 
struct  PlainValue
 A helper class for holding plain value. More...
 
struct  ValueHolder
 Abstract class for holding a value. More...
 

Public Member Functions

 ArgBase ()
 Default Constructor. More...
 
 ArgBase (ArgBase &&arg)
 Get Constructor. More...
 
 ArgBase (const Fwd< T > &fwd)
 
 ArgBase (std::future< T > &&ftr)
 
 ArgBase (T value)
 
virtual ~ArgBase ()
 Destructor. More...
 
T & Get () const
 
 operator T () const
 

Protected Attributes

std::unique_ptr< ValueHolderholder
 Holds the value of the argument. More...
 

Detailed Description

template<typename T>
class XrdCl::ArgBase< T >

Base class for Arg.

Definition at line 44 of file XrdClArg.hh.

Constructor & Destructor Documentation

◆ ArgBase() [1/5]

template<typename T >
XrdCl::ArgBase< T >::ArgBase ( )
inline

Default Constructor.

Definition at line 51 of file XrdClArg.hh.

52  {
53  }

◆ ~ArgBase()

template<typename T >
virtual XrdCl::ArgBase< T >::~ArgBase ( )
inlinevirtual

Destructor.

Definition at line 58 of file XrdClArg.hh.

59  {
60  }

◆ ArgBase() [2/5]

template<typename T >
XrdCl::ArgBase< T >::ArgBase ( value)
inline

Constructor

Parameters
value: the value of the argument

Definition at line 67 of file XrdClArg.hh.

67  : holder( new PlainValue( std::move( value ) ) )
68  {
69  }
std::unique_ptr< ValueHolder > holder
Holds the value of the argument.
Definition: XrdClArg.hh:223

◆ ArgBase() [3/5]

template<typename T >
XrdCl::ArgBase< T >::ArgBase ( std::future< T > &&  ftr)
inline

Constructor.

Parameters
ftr: future value of the argument

Definition at line 76 of file XrdClArg.hh.

76  : holder( new FutureValue( std::move( ftr ) ) )
77  {
78  }

◆ ArgBase() [4/5]

template<typename T >
XrdCl::ArgBase< T >::ArgBase ( const Fwd< T > &  fwd)
inline

Constructor.

Parameters
fwd: forwarded value of the argument

Definition at line 85 of file XrdClArg.hh.

85  : holder( new FwdValue( fwd ) )
86  {
87  }

◆ ArgBase() [5/5]

template<typename T >
XrdCl::ArgBase< T >::ArgBase ( ArgBase< T > &&  arg)
inline

Get Constructor.

Definition at line 92 of file XrdClArg.hh.

92  : holder( std::move( arg.holder ) )
93  {
94  }

Member Function Documentation

◆ Get()

template<typename T >
T& XrdCl::ArgBase< T >::Get ( ) const
inline
Returns
: value of the argument

Definition at line 99 of file XrdClArg.hh.

100  {
101  if( !holder ) throw std::logic_error( "XrdCl::ArgBase::Get(): value not set." );
102  return holder->Get();
103  }

References XrdCl::ArgBase< T >::holder.

Referenced by XrdCl::ArgBase< std::string >::operator std::string().

+ Here is the caller graph for this function:

◆ operator T()

template<typename T >
XrdCl::ArgBase< T >::operator T ( ) const
inline

Definition at line 105 of file XrdClArg.hh.

106  {
107  return Get();
108  }
T & Get() const
Definition: XrdClArg.hh:99

Member Data Documentation

◆ holder

template<typename T >
std::unique_ptr<ValueHolder> XrdCl::ArgBase< T >::holder
protected

Holds the value of the argument.

Definition at line 223 of file XrdClArg.hh.

Referenced by XrdCl::ArgBase< T >::Get(), XrdCl::Arg< T >::operator=(), and XrdCl::Arg< std::string >::operator=().


The documentation for this class was generated from the following file: