XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args > Class Template Reference

#include <XrdClOperations.hh>

Inheritance diagram for XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >:
Inheritance graph
[legend]
Collaboration diagram for XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ConcreteOperation (Args &&...args)
template<bool from>
 ConcreteOperation (ConcreteOperation< Derived, from, HdlrFactory, Args...> &&op)
template<typename Hdlr >
Derived< true > operator>> (Hdlr &&hdlr)
Derived< true > operator| (Operation< true > &op)
Derived< true > operator| (Operation< true > &&op)
Derived< true > operator| (Operation< false > &op)
Derived< true > operator| (Operation< false > &&op)

Protected Member Functions

Operation< HasHndl > * Move ()
Operation< true > * ToHandled ()
template<bool to>
Derived< to > Transform ()
Derived< true > StreamImpl (ResponseHandler *handler, bool own)

Static Protected Member Functions

static Derived< true > PipeImpl (ConcreteOperation< Derived, true, HdlrFactory, Args...> &me, Operation< true > &op)
static Derived< true > PipeImpl (ConcreteOperation< Derived, true, HdlrFactory, Args...> &me, Operation< false > &op)
static Derived< true > PipeImpl (ConcreteOperation< Derived, false, HdlrFactory, Args...> &me, Operation< true > &op)
static Derived< true > PipeImpl (ConcreteOperation< Derived, false, HdlrFactory, Args...> &me, Operation< false > &op)

Protected Attributes

std::tuple< Args...> args
 Operation arguments.

Friends

class ConcreteOperation

Detailed Description

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
class XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >

Concrete Operation template Defines | and >> operator as well as operation arguments.


Constructor & Destructor Documentation

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::ConcreteOperation ( Args &&...  args  )  [inline]

Constructor

Parameters:
args : operation arguments
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
template<bool from>
XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::ConcreteOperation ( ConcreteOperation< Derived, from, HdlrFactory, Args...> &&  op  )  [inline]

Move constructor from other states

  • from : state from which the object is being converted
Parameters:
op : the object that is being converted

Member Function Documentation

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Operation<HasHndl>* XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::Move (  )  [inline, protected, virtual]

Move current object into newly allocated instance

Returns:
: the new instance

Implements XrdCl::Operation< HasHndl >.

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
template<typename Hdlr >
Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator>> ( Hdlr &&  hdlr  )  [inline]

Adds ResponseHandler/function/functor/lambda/future handler for the operation.

Note: due to reference collapsing this covers both l-value and r-value references.

Parameters:
func : function/functor/lambda

Reimplemented in XrdCl::OpenImpl< HasHndl >.

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator| ( Operation< false > &&  op  )  [inline]

Creates a pipeline of 2 or more operations

Parameters:
op : operation to add
Returns:
: handled operation
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator| ( Operation< false > &  op  )  [inline]

Creates a pipeline of 2 or more operations

Parameters:
op operation to add
Returns:
handled operation
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator| ( Operation< true > &&  op  )  [inline]

Creates a pipeline of 2 or more operations

Parameters:
op : operation to add
Returns:
: handled operation
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator| ( Operation< true > &  op  )  [inline]

Creates a pipeline of 2 or more operations

Parameters:
op : operation to add
Returns:
: handled operation
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
static Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::PipeImpl ( ConcreteOperation< Derived, false, HdlrFactory, Args...> &  me,
Operation< false > &  op 
) [inline, static, protected]

Implements operator| functionality

Parameters:
me : reference to myself (*this)
op : reference to the other operation
Returns:
: move-copy of myself
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
static Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::PipeImpl ( ConcreteOperation< Derived, false, HdlrFactory, Args...> &  me,
Operation< true > &  op 
) [inline, static, protected]

Implements operator| functionality

Parameters:
me : reference to myself (*this)
op : reference to the other operation
Returns:
: move-copy of myself
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
static Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::PipeImpl ( ConcreteOperation< Derived, true, HdlrFactory, Args...> &  me,
Operation< false > &  op 
) [inline, static, protected]

Implements operator| functionality

Parameters:
me : reference to myself (*this)
op : reference to the other operation
Returns:
: move-copy of myself
template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
static Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::PipeImpl ( ConcreteOperation< Derived, true, HdlrFactory, Args...> &  me,
Operation< true > &  op 
) [inline, static, protected]

Implements operator| functionality

Parameters:
me : reference to myself (*this)
op : reference to the other operation
Returns:
: move-copy of myself

Referenced by XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>::operator|().

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Derived<true> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::StreamImpl ( ResponseHandler handler,
bool  own 
) [inline, protected]

Implements operator>> functionality

Parameters:
h : handler to be added @
Returns:
: return an instance of Derived<true>

Referenced by XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>::operator>>().

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
Operation<true>* XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::ToHandled (  )  [inline, protected, virtual]

Transform operation to handled

Returns:
Operation<true>&

Implements XrdCl::Operation< HasHndl >.

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
template<bool to>
Derived<to> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::Transform (  )  [inline, protected]

Transform into a new instance with desired state

Returns:
: new instance in the desired state

Friends And Related Function Documentation

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
friend class ConcreteOperation [friend]

Member Data Documentation

template<template< bool > class Derived, bool HasHndl, typename HdlrFactory, typename... Args>
std::tuple<Args...> XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::args [protected]

Operation arguments.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 16 Jul 2020 for xrootd by  doxygen 1.6.1