GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloTPointerSet.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_GLOTPOINTERSET_H
2#define INC_GLOTPOINTERSET_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include "GloTypes.h"
38#include "GloPointerSet.h"
39#include "GloBasePersistent.h"
40//-----------------------------------------------------------------------------
41namespace glo
42{
43 //---------------------------------------------------------------------------
80 template < class T > class TPointerSet : public PointerSet
81 {
82 public:
83 //============== Konstruktoren
84 //-----------------------------------------------------------------------
95 //-----------------------------------------------------------------------
107 TPointerSet( Base & rBase );
108 //-----------------------------------------------------------------------
121 virtual ~TPointerSet();
122 //-----------------------------------------------------------------------
123
124 private:
125 //============== Konstruktoren
126 //-----------------------------------------------------------------------
137 //-----------------------------------------------------------------------
138 public:
139 //============== Methoden
140 //-----------------------------------------------------------------------
156 virtual int getTypeAsString( std::string & rsTypeName ) override;
157 //-----------------------------------------------------------------------
191 virtual int insert( T * pNewObj );
192 //-----------------------------------------------------------------------
224 virtual int insert( std::shared_ptr<T> spNewObj );
225 //-----------------------------------------------------------------------
261 virtual int remove( T * pObject );
262 //-----------------------------------------------------------------------
296 virtual int remove( std::shared_ptr<T> spObject );
297 //-----------------------------------------------------------------------
335 virtual int get( T *& prRetVal, EnSeekMode eMode );
336 //-----------------------------------------------------------------------
370 virtual int get( std::shared_ptr<T> & rRetVal, EnSeekMode eMode );
371 //-----------------------------------------------------------------------
372
373 private:
374 //============== Operatoren
375 //-----------------------------------------------------------------------
386 //-----------------------------------------------------------------------
387 };
388 //---------------------------------------------------------------------------
389 #define SUPER PointerSet
390 //---------------------------------------------------------------------------
391 template < class T >
393 : SUPER()
394 {
395 #ifdef _DEBUG
396 m_strDebugInfo = "TPointerSet";
397 #endif
398 }
399 //---------------------------------------------------------------------------
400 template < class T >
402 : SUPER( rBase )
403 {
404 #ifdef _DEBUG
405 m_strDebugInfo = "TPointerSet";
406 #endif
407 }
408 //---------------------------------------------------------------------------
409 template < class T >
413 //---------------------------------------------------------------------------
414 template < class T >
415 int TPointerSet< T >::getTypeAsString( std::string & rsTypeName )
416 {
417 std::size_t t_nCount( 0 );
418
419 rsTypeName = typeid(T).name();
420 rsTypeName.replace( t_nCount, 6, "");
421 return 0;
422 }
423 //---------------------------------------------------------------------------
424 template < class T >
425 int TPointerSet< T >::insert( T * pNewObj )
426 {
427 return SUPER::insertPers( pNewObj );
428 }
429 //---------------------------------------------------------------------------
430 template < class T >
431 int TPointerSet< T >::insert( std::shared_ptr<T> spNewObj )
432 {
433 return SUPER::insertPers( spNewObj.operator->() );
434 return 0;
435 }
436 //---------------------------------------------------------------------------
437 template < class T >
438 int TPointerSet< T >::remove( T * pObject )
439 {
440 return SUPER::removePers( pObject );
441 }
442 //---------------------------------------------------------------------------
443 template < class T >
444 int TPointerSet< T >::remove( std::shared_ptr<T> spObject )
445 {
446 return SUPER::removePers( spObject.operator->() );
447 }
448 //---------------------------------------------------------------------------
449 template < class T >
450 int TPointerSet< T >::get( T *& prRetVal, EnSeekMode eMode )
451 {
452 return SUPER::getPers( (BasePersistent*&) prRetVal, eMode );
453 }
454 //---------------------------------------------------------------------------
455 template < class T >
456 int TPointerSet< T >::get( std::shared_ptr<T> & rRetVal, EnSeekMode eMode )
457 {
458 T * t_pPersObject = 0;
459 int t_iErr = this->get( t_pPersObject, eMode );
460
461 if ( t_pPersObject )
462 {
463 //rRetVal = std::shared_ptr<T>( t_pPersObject, Forgeter<T>() );
464 rRetVal.reset( t_pPersObject, Forgeter<T>() );
465 }
466 return t_iErr;
467 }
468 //---------------------------------------------------------------------------
469 #undef SUPER
470 //---------------------------------------------------------------------------
471} // namespace glo
472#endif
Header für BasePersistent
Header für PointerSet
#define SUPER
Definition GloTAllSet.h:1151
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
Diese Klasse ist die Schnittstelle zu den persistenten Objekten. Hier können "Objekte" angemeldet,...
Definition GloBase.h:250
Abstrakte Basisklasse für Persistent und die generische GenericPersistent.
Definition GloBasePersistent.h:102
std::string m_strDebugInfo
Definition GloCallBack.h:115
Speziel für GenericPersistent oder abgeleitete Klassen von Persistent die Forget-Methode für std::sha...
Definition GloTypes.h:1249
Ist die Basisklasse von einer Template-Set. Die persistenten Objekte werden in einer std::set verwalt...
Definition GloPointerSet.h:66
Ein typsicherer Set von Zeigern auf persistente Objekte in der Datenbank (gedacht als Attribut für pe...
Definition GloTPointerSet.h:81
virtual int insert(T *pNewObj)
Definition GloTPointerSet.h:425
TPointerSet(const TPointerSet &)
virtual int getTypeAsString(std::string &rsTypeName) override
Definition GloTPointerSet.h:415
TPointerSet< T > & operator=(const TPointerSet &)
virtual int remove(T *pObject)
Definition GloTPointerSet.h:438
virtual int get(T *&prRetVal, EnSeekMode eMode)
Definition GloTPointerSet.h:450
TPointerSet()
Definition GloTPointerSet.h:392
virtual ~TPointerSet()
Definition GloTPointerSet.h:410
Definition GloAbstractBaseLot.h:42
EnSeekMode
Definition GloTypes.h:166