XRootD
Loading...
Searching...
No Matches
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.
 
 ArgBase (ArgBase &&arg)
 Get Constructor.
 
 ArgBase (const Fwd< T > &fwd)
 
 ArgBase (std::future< T > &&ftr)
 
 ArgBase (T value)
 
virtual ~ArgBase ()
 Destructor.
 
T & Get () const
 
 operator T () const
 

Protected Attributes

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

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: