Jpp  master_rocky
the software that should make you happy
Public Types | Public Member Functions | Protected Attributes | List of all members
JLANG::JSTDObjectOutput< JOutputIterator_t > Class Template Referenceabstract

Implementation of object output for STD compatible output iterator. More...

#include <JSTDObjectOutput.hh>

Inheritance diagram for JLANG::JSTDObjectOutput< JOutputIterator_t >:
JLANG::JObjectOutput< JOutputIterator_t::container_type::value_type > JLANG::JObject< JSTDObjectOutput< JOutputIterator_t > >

Public Types

typedef JOutputIterator_t::container_type::value_type value_type
 
typedef JSTDObjectOutput< JOutputIterator_t > data_type
 

Public Member Functions

 JSTDObjectOutput (const JOutputIterator_t &out)
 Constructor. More...
 
virtual bool put (const value_type &object) override
 Object output. More...
 
virtual bool put (const JOutputIterator_t::container_type::value_type &object)=0
 Object output. More...
 
data_typegetInstance ()
 Get static instance from temporary object. More...
 
data_typeclone () const
 Get clone from temporary object. More...
 

Protected Attributes

JOutputIterator_t out
 

Detailed Description

template<class JOutputIterator_t>
class JLANG::JSTDObjectOutput< JOutputIterator_t >

Implementation of object output for STD compatible output iterator.

This class implements the JLANG::JObjectOutput interface for the corresponding data type.

Definition at line 26 of file JSTDObjectOutput.hh.

Member Typedef Documentation

◆ value_type

template<class JOutputIterator_t >
typedef JOutputIterator_t::container_type::value_type JLANG::JSTDObjectOutput< JOutputIterator_t >::value_type

Definition at line 33 of file JSTDObjectOutput.hh.

◆ data_type

typedef JSTDObjectOutput< JOutputIterator_t > JLANG::JObject< JSTDObjectOutput< JOutputIterator_t > >::data_type
inherited

Definition at line 20 of file JObject.hh.

Constructor & Destructor Documentation

◆ JSTDObjectOutput()

template<class JOutputIterator_t >
JLANG::JSTDObjectOutput< JOutputIterator_t >::JSTDObjectOutput ( const JOutputIterator_t &  out)
inline

Constructor.

Parameters
outoutput iterator

Definition at line 41 of file JSTDObjectOutput.hh.

41  :
42  out(out)
43  {}

Member Function Documentation

◆ put() [1/2]

template<class JOutputIterator_t >
virtual bool JLANG::JSTDObjectOutput< JOutputIterator_t >::put ( const value_type object)
inlineoverridevirtual

Object output.

Parameters
objectobject
Returns
true

Definition at line 52 of file JSTDObjectOutput.hh.

53  {
54  *out = object;
55  ++out;
56 
57  return true;
58  }

◆ put() [2/2]

virtual bool JLANG::JObjectOutput< JOutputIterator_t::container_type::value_type >::put ( const JOutputIterator_t::container_type::value_type &  object)
pure virtualinherited

Object output.

Parameters
objectobject
Returns
true if OK; else false

◆ getInstance()

data_type& JLANG::JObject< JSTDObjectOutput< JOutputIterator_t > >::getInstance ( )
inlineinherited

Get static instance from temporary object.

Returns
reference to static object

Definition at line 27 of file JObject.hh.

28  {
29  static char buffer[sizeof(T)];
30 
31  new (buffer) T(static_cast<const T&>(*this));
32 
33  T* p = reinterpret_cast<data_type*>(buffer);
34 
35  return *p;
36  }
JSTDObjectOutput< JOutputIterator_t > data_type
Definition: JObject.hh:20

◆ clone()

data_type* JLANG::JObject< JSTDObjectOutput< JOutputIterator_t > >::clone ( ) const
inlineinherited

Get clone from temporary object.

Returns
pointer to newly created object

Definition at line 44 of file JObject.hh.

45  {
46  return new T(static_cast<const T&>(*this));
47  }

Member Data Documentation

◆ out

template<class JOutputIterator_t >
JOutputIterator_t JLANG::JSTDObjectOutput< JOutputIterator_t >::out
protected

Definition at line 61 of file JSTDObjectOutput.hh.


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