1#ifndef INC_GLOTALLSET_H
2#define INC_GLOTALLSET_H
224 TAllSet(
Base & rBase,
bool bWithSubClasses =
true );
245 TAllSet(
Base & rBase,
const std::string & rsFullIndexName );
266 TAllSet(
Base & rBase,
const char * pszFullIndexName );
546 int get( std::shared_ptr<T> & rRetVal,
const glo::ObjID & rObjID );
563 virtual int getPersistent( std::shared_ptr<BasePersistent> & rRetVal,
728 const std::string & rsIndexSearchValue,
731 const std::string & rsIndexSearchValue,
775 const std::string & rsFullIndexName,
776 const std::string & rsIndexSearchValue,
779 const std::string & rsFullIndexName,
780 const std::string & rsIndexSearchValue,
829 const std::string & rsIndexName,
830 unsigned long ulIndexClassID,
831 const std::string & rsIndexSearchValue,
834 const std::string & rsIndexName,
835 unsigned long ulIndexClassID,
836 const std::string & rsIndexSearchValue,
882 const std::string & rsIndexSearchValue,
885 const std::string & rsIndexSearchValue,
936 const std::string & rsFullIndexName,
937 const std::string & rsIndexSearchValue,
940 const std::string & rsFullIndexName,
941 const std::string & rsIndexSearchValue,
997 const std::string & rsIndexName,
998 unsigned long ulIndexClassID,
999 const std::string & rsIndexSearchValue,
1002 const std::string & rsIndexName,
1003 unsigned long ulIndexClassID,
1004 const std::string & rsIndexSearchValue,
1042 const std::string & rsRangeStartIndex,
1043 const std::string & rsRangeEndIndex );
1045 const std::string & rsRangeStartIndex,
1046 const std::string & rsRangeEndIndex );
1091 const std::string & rsFullIndexName,
1092 const std::string & rsRangeStartIndexSearchValue,
1093 const std::string & rsRangeEndIndexSearchValue );
1095 const std::string & rsFullIndexName,
1096 const std::string & rsRangeStartIndexSearchValue,
1097 const std::string & rsRangeEndIndexSearchValue );
1148 const std::string & rsIndexName,
1149 unsigned long ulIndexClassID,
1150 const std::string & rsRangeStartIndexSearchValue,
1151 const std::string & rsRangeEndIndexSearchValue );
1153 const std::string & rsIndexName,
1154 unsigned long ulIndexClassID,
1155 const std::string & rsRangeStartIndexSearchValue,
1156 const std::string & rsRangeEndIndexSearchValue );
1302 #define SUPER BaseAllSet
1304 template <
class T >
1311 SUPER::setClassIDFromTemplate( T::getStaticGloClassID() );
1314 template <
class T >
1316 :
SUPER( rBase, 0, bWithSubClasses )
1321 SUPER::setClassIDFromTemplate( T::getStaticGloClassID() );
1324 template <
class T >
1331 SUPER::setClassIDFromTemplate( T::getStaticGloClassID() );
1332 int t_iErr = SUPER::setFullIndexName( rsFullIndexName );
1335 throw eut::ErrorNException(
"TAllSet::setBase(Base * pBase, unsigned long ulClassID, const std::string & rsFullIndexName)", t_iErr, __FILE__, __LINE__ );
1339 template <
class T >
1346 SUPER::setClassIDFromTemplate( T::getStaticGloClassID() );
1347 int t_iErr = SUPER::setFullIndexName( pszFullIndexName );
1350 throw eut::ErrorNException(
"TAllSet::setBase(Base * pBase, unsigned long ulClassID, const std::string & rsFullIndexName)", t_iErr, __FILE__, __LINE__ );
1354 template <
class T >
1359 template <
class T >
1363 return this->
get( t_TempObjID, prRetVal, eMode );
1366 template <
class T >
1370 return this->
get( t_TempObjID, rRetVal, eMode );
1373 template <
class T >
1379 t_iErr = this->
open();
1384 t_iErr = this->
getBase()->getObjectFromAllSet( rObjID, t_pGetObj, *
this, eMode );
1389 prRetVal =
dynamic_cast<T*
>( t_pGetObj );
1396 t_iErr = this->
getBase()->getObjectFromAllSet( rObjID, t_pGetObj, *
this,
glo::NEXT );
1407 }
while ( ! t_iErr );
1413 template <
class T >
1416 T * t_pPersistent =
nullptr;
1417 int t_iErr = this->
get( rObjID, t_pPersistent, eMode );
1419 if ( t_pPersistent )
1421 rRetVal = std::shared_ptr<T>( t_pPersistent,
Forgetter<T>() );
1430 template <
class T >
1439 t_iErr = this->
getBase()->getAnObject( prRetVal, rObjID );
1448 template <
class T >
1454 t_iErr = this->
open();
1460 t_iErr = this->
getBase()->getAnObject( t_pReceivedObject, rObjID );
1463 prRetVal =
dynamic_cast<T*
>( t_pReceivedObject );
1466 t_pReceivedObject->
forget();
1479 template <
class T >
1482 T * t_pPersistent =
nullptr;
1483 int t_iErr = this->
get( t_pPersistent, rObjID );
1485 if ( t_pPersistent )
1487 rRetVal = std::shared_ptr<T>( t_pPersistent,
Forgetter<T>() );
1496 template <
class T >
1498 const ObjID & rObjID )
1500 return SUPER::getPersistent( rRetVal, rObjID );
1503 template <
class T >
1508 t_iErr = this->
open();
1513 t_iErr = this->
getBase()->getObjIdFromAllSet( t_ObjID, *
this, eMode );
1517 bool t_bIsKnownClassID =
false;
1519 t_iErr = this->
getBase()->isKnownClassID( t_bIsKnownClassID, t_ObjID.
getClassID() );
1522 if ( ! t_bIsKnownClassID )
1544 template <
class T >
1548 int t_iErr = this->
getOndemand( t_pTempGloTOndemand, eMode );
1550 if ( t_pTempGloTOndemand )
1552 rRetVal = std::shared_ptr<T>( t_pTempGloTOndemand );
1561 template <
class T >
1565 int t_iErr = this->
getOndemand( t_pTempGloTOndemand, eMode );
1567 if ( t_pTempGloTOndemand )
1569 rRetVal = * t_pTempGloTOndemand;
1570 delete t_pTempGloTOndemand;
1575 template <
class T >
1577 const std::string & rsIndexSearchValue,
1581 std::vector< ObjID > t_ObjIDContainer;
1593 template <
class T >
1595 const std::string & rsIndexSearchValue,
1599 std::vector< ObjID > t_ObjIDContainer;
1611 template <
class T >
1613 const std::string & rsFullIndexName,
1614 const std::string & rsIndexSearchValue,
1618 std::vector< ObjID > t_ObjIDContainer;
1631 template <
class T >
1633 const std::string & rsFullIndexName,
1634 const std::string & rsIndexSearchValue,
1638 std::vector< ObjID > t_ObjIDContainer;
1651 template <
class T >
1653 const std::string & rsIndexName,
1654 unsigned long ulIndexClassID,
1655 const std::string & rsIndexSearchValue,
1659 std::vector< ObjID > t_ObjIDContainer;
1673 template <
class T >
1675 const std::string & rsIndexName,
1676 unsigned long ulIndexClassID,
1677 const std::string & rsIndexSearchValue,
1681 std::vector< ObjID > t_ObjIDContainer;
1695 template <
class T >
1697 const std::string & rsIndexSearchValue,
1701 std::vector< ObjID > t_ObjIDContainer;
1714 template <
class T >
1716 const std::string & rsIndexSearchValue,
1720 std::vector< ObjID > t_ObjIDContainer;
1733 template <
class T >
1735 const std::string & rsFullIndexName,
1736 const std::string & rsIndexSearchValue,
1740 std::vector< ObjID > t_ObjIDContainer;
1754 template <
class T >
1756 const std::string & rsFullIndexName,
1757 const std::string & rsIndexSearchValue,
1761 std::vector< ObjID > t_ObjIDContainer;
1775 template <
class T >
1777 const std::string & rsIndexName,
1778 unsigned long ulIndexClassID,
1779 const std::string & rsIndexSearchValue,
1783 std::vector< ObjID > t_ObjIDContainer;
1798 template <
class T >
1800 const std::string & rsIndexName,
1801 unsigned long ulIndexClassID,
1802 const std::string & rsIndexSearchValue,
1806 std::vector< ObjID > t_ObjIDContainer;
1821 template <
class T >
1823 const std::string & rsRangeStartIndex,
1824 const std::string & rsRangeEndIndex )
1827 std::vector< ObjID > t_ObjIDContainer;
1840 template <
class T >
1842 const std::string & rsRangeStartIndex,
1843 const std::string & rsRangeEndIndex )
1846 std::vector< ObjID > t_ObjIDContainer;
1859 template <
class T >
1861 const std::string & rsFullIndexName,
1862 const std::string & rsRangeStartIndexSearchValue,
1863 const std::string & rsRangeEndIndexSearchValue )
1866 std::vector< ObjID > t_ObjIDContainer;
1870 rsRangeStartIndexSearchValue,
1871 rsRangeEndIndexSearchValue );
1880 template <
class T >
1882 const std::string & rsFullIndexName,
1883 const std::string & rsRangeStartIndexSearchValue,
1884 const std::string & rsRangeEndIndexSearchValue )
1887 std::vector< ObjID > t_ObjIDContainer;
1891 rsRangeStartIndexSearchValue,
1892 rsRangeEndIndexSearchValue );
1901 template <
class T >
1903 const std::string & rsIndexName,
1904 unsigned long ulIndexClassID,
1905 const std::string & rsRangeStartIndexSearchValue,
1906 const std::string & rsRangeEndIndexSearchValue )
1909 std::vector< ObjID > t_ObjIDContainer;
1914 rsRangeStartIndexSearchValue,
1915 rsRangeEndIndexSearchValue );
1924 template <
class T >
1926 const std::string & rsIndexName,
1927 unsigned long ulIndexClassID,
1928 const std::string & rsRangeStartIndexSearchValue,
1929 const std::string & rsRangeEndIndexSearchValue )
1932 std::vector< ObjID > t_ObjIDContainer;
1937 rsRangeStartIndexSearchValue,
1938 rsRangeEndIndexSearchValue );
1947 template <
class T >
1950 int t_iErr = this->
open();
1961 pCallBack = t_pConstCastThis;
1971 template <
class T >
1981 pCallBack = t_pConstCastThis;
1984 ulWatchMode, pCallBack );
1987 template <
class T >
1991 for ( std::vector<ObjID>::const_iterator t_Iterator = rSourceContainer.begin();
1992 t_Iterator != rSourceContainer.end();
1997 int t_iErr = t_odTemp.
set( * t_Iterator );
2000 throw eut::ErrorNException(
"TAllSet< T >::transferObjIListIntoOndemandContainer(...)", t_iErr, __FILE__, __LINE__ );
2002 rTargetContainer.push_back( t_odTemp );
2006 template <
class T >
2010 for ( std::vector<ObjID>::const_iterator t_Iterator = rSourceContainer.begin();
2011 t_Iterator != rSourceContainer.end();
2016 int t_iErr = t_odTemp.
set( * t_Iterator );
2019 throw eut::ErrorNException(
"TAllSet< T >::transferObjIListIntoOndemandContainer(...)", t_iErr, __FILE__, __LINE__ );
Header for BasePersistent
#define SUPER
Definition GloTAllSet.h:1302
For each library, here 'GlobalObjects' there is a type file.
This exception class has an integer attribute for an error number in addition to the message.
Definition EuException.h:90
int getIndexedObjIds(std::vector< glo::ObjID > &rObjIDContainer, const std::string &rsIndexSearchValue, EnQueryType eQuerryType)
friend class Base
Definition GloBaseAllSet.h:212
virtual Base * getBase() const override
unsigned long getClassID() const
Abstract base class for Persistent and the generic GenericPersistent.
Definition GloBasePersistent.h:124
virtual unsigned int forget()
Superclass for the classes that are 'connected' to a Base.
Definition GloCallBack.h:81
std::string m_strDebugInfo
Definition GloCallBack.h:111
Especially for GenericPersistent or derived classes of Persistent the Forget method for std::shared_p...
Definition GloTypes.h:1253
An object ID consists of the class ID, a database ID and the actual unique object number (all unsigne...
Definition GloObjID.h:84
unsigned long getClassID() const
virtual int appendOndemand(const Reference &rNewOndemand)
int getIndexedOndemands(std::vector< glo::TOndemand< T > > &rOndemandContainer, const std::string &rsIndexSearchValue, EnQueryType eQuerryType)
Returns a container of glo::TOndemand's from AllSet in relation to the passed parameters.
Definition GloTAllSet.h:1576
void transferObjIListIntoOndemandContainer(const std::vector< glo::ObjID > &rSourceContainer, std::vector< glo::TOndemand< T > > &rTargetConteiner)
Transfers the glo::ObjID's from the transferred rSourceContainer as glo::TOndemand's into the transfe...
Definition GloTAllSet.h:1988
virtual int getPersistent(BasePersistent *&prRetVal, const glo::ObjID &rObjID)
Returns an object from the AllSet of the database with passed object ID.
Definition GloTAllSet.h:1431
int get(T *&prRetVal, EnSeekMode eMode)
Definition GloTAllSet.h:1360
TAllSet()
Definition GloTAllSet.h:1305
virtual int setWatch(TdWatchNotifyMode ulWatchMode, CallBack *pCallBack=0)
Definition GloTAllSet.h:1948
static unsigned long getStaticGloClassID()
Definition GloTAllSet.h:309
virtual ~TAllSet()
Definition GloTAllSet.h:1355
virtual int unsetWatch(TdWatchNotifyMode ulWatchMode, CallBack *pCallBack=0)
Definition GloTAllSet.h:1972
TAllSet< T > & operator=(const TAllSet &)
int getOndemand(glo::TOndemand< T > *&prRetVal, EnSeekMode eMode)
Definition GloTAllSet.h:1504
Definition GloTOndemand.h:209
int set(const T *rObj)
Adopts the object ID of the passed object as reference.
Definition GloTOndemand.h:535
A type-safe list of references to persistent objects in the database (intended as an attribute for pe...
Definition GloTOndemandList.h:95
Definition GloAbstractBaseLot.h:49
@ ERR_NO_BASE
Definition GloErrors.h:584
@ ERR_BASE_NOT_OPEN
Definition GloErrors.h:617
@ ERR_WRONG_TYPE
Definition GloErrors.h:551
EnComparisionOp
Definition GloTypes.h:1586
EnSeekMode
Definition GloTypes.h:192
@ END
Definition GloTypes.h:214
@ START
Definition GloTypes.h:203
@ PREVIOUS
Definition GloTypes.h:247
@ NEXT
Definition GloTypes.h:236
EnQueryType
Definition GloTypes.h:1183
unsigned long TdWatchNotifyMode
Definition GloTypes.h:577