rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWTFunctorR1< SR, S1 > Class Template Reference
[Functors]

Represents the group of functors that are invoked with one argument, and whose invocation returns a value. More...

#include <rw/functor/RWTFunctorR1.h>

Inheritance diagram for RWTFunctorR1< SR, S1 >:
RWHandleBase

List of all members.

Public Types

typedef SR(* CallerSignature )(S1)
typedef SR SRType
typedef S1 S1Type

Public Member Functions

 ~RWTFunctorR1 (void)
 RWTFunctorR1 (void)
 RWTFunctorR1 (RWStaticCtor)
 RWTFunctorR1 (RWTFunctorR1Imp< SR, S1 > *functorImp)
 RWTFunctorR1 (const RWTFunctorR1< SR, S1 > &second)
RWTFunctorR1< SR, S1 > & operator= (const RWTFunctorR1< SR, S1 > &second)
SR operator() (S1 s1) const
RWTFunctorR1Imp< SR, S1 > & body (void) const

Detailed Description

template<class SR, class S1>
class RWTFunctorR1< SR, S1 >

RWTFunctorR1<SR,S1> represents the group of functors that are invoked with one argument, and whose invocation returns a value.

A function object, or a functor, encapsulates a call to an associated global or member function. When a functor is invoked, it calls the associated function.

Instances of RWTFunctorR1 act as handles to functor implementations or bodies. Such implementations are created by using either the rwtMakeFunctorR1() global functions or macros. Each of these methods creates a new body instance, and returns the handle to that instance. See the example below.

Note that although an instance of this class is invoked with one argument, the encapsulated function may have more arguments.

The additional arguments to be passed to the encapsulated function are provided to the functor at the time of creation. They are stored within the functor object, and are retrieved at the time of invocation.

Examples

 #include <rw/functor/functorR1.h
 // A function to be encapsulated in a functor.
 int flag=0;
 int setFlag(short f){ return flag=f;  }
 
 int main () {
 
    // Create a new handle (functor) and assign a new body to it.
    RWTFunctorR1 functor = rwtMakeFunctorR1((int(*short))0,
    setFlag);
 
    // Invoking the functor with '32' will set the global flag to
    // 32 and return the value '32'
    int new_value = functor(32);
 
    return 0;
 }
See also:
rwtMakeFunctorR1()

Member Typedef Documentation

template<class SR, class S1>
typedef SR(* RWTFunctorR1< SR, S1 >::CallerSignature)(S1)

The signature of the functor invocation.

template<class SR, class S1>
typedef S1 RWTFunctorR1< SR, S1 >::S1Type

The type of the first caller argument.

template<class SR, class S1>
typedef SR RWTFunctorR1< SR, S1 >::SRType

The type of the functor's return value.


Constructor & Destructor Documentation

template<class SR, class S1>
RWTFunctorR1< SR, S1 >::~RWTFunctorR1 ( void   ) 

Destructor.

template<class SR, class S1>
RWTFunctorR1< SR, S1 >::RWTFunctorR1 ( void   ) 

Constructs an empty, invalid, handle instance. To create a viable handle, use the rwtMakeFunctor1() global functions or macros.

template<class SR, class S1>
RWTFunctorR1< SR, S1 >::RWTFunctorR1 ( RWStaticCtor   ) 

Constructs a global static handle instance. The constructor does not reset any values that may have been set in invocations prior to the constructor call.

template<class SR, class S1>
RWTFunctorR1< SR, S1 >::RWTFunctorR1 ( RWTFunctorR1Imp< SR, S1 > *  functorImp  ) 

Body constructor. Binds a new handle instance to an existing functor body instance.

template<class SR, class S1>
RWTFunctorR1< SR, S1 >::RWTFunctorR1 ( const RWTFunctorR1< SR, S1 > &  second  ) 

Copy constructor. Binds a new handle instance to the functor body instance, if any, associated with the second handle instance.


Member Function Documentation

template<class SR , class S1 >
RWTFunctorR1Imp< SR, S1 > & RWTFunctorR1< SR, S1 >::body ( void   )  const [inline]

Gets a reference for the body instance, if any; otherwise throws an exception.

Exceptions:
RWTHRInvalidPointer Thrown if the handle has no associated body.

Reimplemented from RWHandleBase.

Reimplemented in RWTFunctorMapR1< SR, Key >, RWTFunctorMapR1< RWMimeHeader, RWCString >, and RWTFunctorMapR1< RWHttpClient, RWCString >.

template<class SR, class S1>
SR RWTFunctorR1< SR, S1 >::operator() ( S1  s1  )  const

Invokes the functor, calling the encapsulated function.

Exceptions:
RWTHRInvalidPointer Thrown if the handle has no associated body.

Reimplemented in RWTFunctorMapR1< SR, Key >.

template<class SR, class S1>
RWTFunctorR1<SR,S1>& RWTFunctorR1< SR, S1 >::operator= ( const RWTFunctorR1< SR, S1 > &  second  ) 

Assignment operator. Detaches this handle instance from any functor body instance it currently references, and binds it to the functor body instance, if any, associated with the second handle instance.

 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.