Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
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.
 
virtual bool put (const value_type &object) override
 Object output.
 
virtual bool put (const JOutputIterator_t::container_type::value_type &object)=0
 Object output.
 
data_typegetInstance ()
 Get static instance from temporary object.
 
data_typeclone () const
 Get clone from temporary object.
 

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 >
JOutputIterator_t::container_type::value_type JLANG::JSTDObjectOutput< JOutputIterator_t >::value_type

Definition at line 33 of file JSTDObjectOutput.hh.

◆ data_type

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: