TerraLib 4.1
PluginsParametersContainer< PluginsParametersContainerKeyT > Class Template Reference

A container class to store multiple types os object copies. More...

#include <PluginsParametersContainer.h>

List of all members.

Public Types

typedef TeSharedPtr
< PluginsParametersContainer
< PluginsParametersContainerKeyT > > 
pointer
typedef const TeSharedPtr
< PluginsParametersContainer
< PluginsParametersContainerKeyT > > 
const_pointer

Public Member Functions

 PluginsParametersContainer ()
 Default Constructor.
 PluginsParametersContainer (const PluginsParametersContainer< PluginsParametersContainerKeyT > &external)
 Alternative Constructor.
 ~PluginsParametersContainer ()
 Default Destructor.
bool operator== (const PluginsParametersContainer< PluginsParametersContainerKeyT > &ext_instance) const
 Operator == overload.
bool operator!= (const PluginsParametersContainer< PluginsParametersContainerKeyT > &ext_instance) const
 Operator != overload.
const
PluginsParametersContainer
< PluginsParametersContainerKeyT > & 
operator= (const PluginsParametersContainer< PluginsParametersContainerKeyT > &ext_instance)
 operator= overload.
void clear ()
 Clear all contents.
template<typename ObjectT >
void store (const PluginsParametersContainerKeyT &obj_key, const ObjectT &obj_reference)
 Store a object copy.
template<typename ObjectT >
bool retrive (const PluginsParametersContainerKeyT &obj_key, ObjectT &obj_reference) const
 Retrive a copy of a stored object.

Protected Types

typedef std::pair
< PluginsParametersContainerKeyT,
TeSharedPtr< PPCNodeInterface > > 
VectorKeyT
typedef std::vector< VectorKeyTVectorT

Protected Member Functions

void update_time ()
 Updates the internal last update time.

Protected Attributes

VectorT objects_vector_
 The internal vector instance.
time_t last_up_time_
 The last update time.
TeMutex this_lock_instance_
 This instance locking mutex.

Detailed Description

template<typename PluginsParametersContainerKeyT>
class PluginsParametersContainer< PluginsParametersContainerKeyT >

A container class to store multiple types os object copies.

Author:
Emiliano F. Castejon <castejon@dpi.inpe.br>
Note:
This is a thread-safe class.

Member Typedef Documentation

template<typename PluginsParametersContainerKeyT>
const TeSharedPtr< PluginsParametersContainer< PluginsParametersContainerKeyT > > PluginsParametersContainer< PluginsParametersContainerKeyT >::const_pointer

Type definition for a const instance pointer

template<typename PluginsParametersContainerKeyT>
TeSharedPtr< PluginsParametersContainer< PluginsParametersContainerKeyT > > PluginsParametersContainer< PluginsParametersContainerKeyT >::pointer

Type definition for a instance pointer

template<typename PluginsParametersContainerKeyT>
typename std::pair< PluginsParametersContainerKeyT, TeSharedPtr< PPCNodeInterface > > PluginsParametersContainer< PluginsParametersContainerKeyT >::VectorKeyT [protected]

Internal vector key type definition.

template<typename PluginsParametersContainerKeyT>
typename std::vector< VectorKeyT > PluginsParametersContainer< PluginsParametersContainerKeyT >::VectorT [protected]

Internal vector type definition.


Constructor & Destructor Documentation

template<typename PluginsParametersContainerKeyT >
PluginsParametersContainer< PluginsParametersContainerKeyT >::PluginsParametersContainer ( )

Default Constructor.

template<typename PluginsParametersContainerKeyT>
PluginsParametersContainer< PluginsParametersContainerKeyT >::PluginsParametersContainer ( const PluginsParametersContainer< PluginsParametersContainerKeyT > &  external)

Alternative Constructor.

Parameters:
externalExternal reference.
template<typename PluginsParametersContainerKeyT >
PluginsParametersContainer< PluginsParametersContainerKeyT >::~PluginsParametersContainer ( )

Default Destructor.


Member Function Documentation

template<typename PluginsParametersContainerKeyT >
void PluginsParametersContainer< PluginsParametersContainerKeyT >::clear ( )

Clear all contents.

template<typename PluginsParametersContainerKeyT>
bool PluginsParametersContainer< PluginsParametersContainerKeyT >::operator!= ( const PluginsParametersContainer< PluginsParametersContainerKeyT > &  ext_instance) const

Operator != overload.

Parameters:
ext_instanceExternal instance reference.
Returns:
true if this instance don't have the same internal update time that the external instance.
template<typename PluginsParametersContainerKeyT>
const PluginsParametersContainer< PluginsParametersContainerKeyT > & PluginsParametersContainer< PluginsParametersContainerKeyT >::operator= ( const PluginsParametersContainer< PluginsParametersContainerKeyT > &  ext_instance)

operator= overload.

Parameters:
ext_instanceExternal instance reference.
Returns:
The external instance reference.
template<typename PluginsParametersContainerKeyT>
bool PluginsParametersContainer< PluginsParametersContainerKeyT >::operator== ( const PluginsParametersContainer< PluginsParametersContainerKeyT > &  ext_instance) const

Operator == overload.

Parameters:
ext_instanceExternal instance reference.
Returns:
true if this instance have the same internal update time that the external instance.
template<typename PluginsParametersContainerKeyT>
template<typename ObjectT >
bool PluginsParametersContainer< PluginsParametersContainerKeyT >::retrive ( const PluginsParametersContainerKeyT &  obj_key,
ObjectT &  obj_reference 
) const

Retrive a copy of a stored object.

Parameters:
obj_keyObject key.
obj_referenceObject instance.
Returns:
true if OK, false if the parameter was no found or error.
template<typename PluginsParametersContainerKeyT>
template<typename ObjectT >
void PluginsParametersContainer< PluginsParametersContainerKeyT >::store ( const PluginsParametersContainerKeyT &  obj_key,
const ObjectT &  obj_reference 
)

Store a object copy.

Parameters:
obj_keyObject key.
obj_referenceObject instance.
template<typename PluginsParametersContainerKeyT >
void PluginsParametersContainer< PluginsParametersContainerKeyT >::update_time ( ) [protected]

Updates the internal last update time.

Note:
Needed by comparison between two multi containers.

Member Data Documentation

template<typename PluginsParametersContainerKeyT>
time_t PluginsParametersContainer< PluginsParametersContainerKeyT >::last_up_time_ [protected]

The last update time.

template<typename PluginsParametersContainerKeyT>
VectorT PluginsParametersContainer< PluginsParametersContainerKeyT >::objects_vector_ [protected]

The internal vector instance.

template<typename PluginsParametersContainerKeyT>
TeMutex PluginsParametersContainer< PluginsParametersContainerKeyT >::this_lock_instance_ [mutable, protected]

This instance locking mutex.


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