GlobalObjects
Loading...
Searching...
No Matches
GloTypes.h
Go to the documentation of this file.
1#ifndef INC_GLOTYPES_H
2#define INC_GLOTYPES_H
3//-----------------------------------------------------------------------------
41//-----------------------------------------------------------------------------
42#ifdef _MSC_VER
43 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
44 #pragma warning( disable : 4251 )
45#endif
46//-----------------------------------------------------------------------------
47#include "GloErrors.h"
48#include "EuDef_NULL_PTR.h"
50#include <stack>
51#include <vector>
52#include <string>
53#include <climits>
54//=============================================================================
55// DLL-Export, -Import definitions
56#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
57 #ifdef __GLO_EXPORT_DLL
58 #define __glo_export_dll __declspec(dllexport)
59 #if defined(_MSC_VER)
60 #pragma message ( "Benutze Export defines fuer __glo_export_dll" )
61 #endif
62 #else
63 #define __glo_export_dll //__declspec(dllimport)
64 #if defined(_MSC_VER)
65 #pragma message ( "Benutze Import defines fuer __glo_export_dll" )
66 #endif
67 #endif
68#elif defined(__GNUC__)
69 #ifdef __GLO_EXPORT_DLL
70 #define __glo_export_dll //__attribute__ ((visibility("default")))
71 #else
72 #define __glo_export_dll //__attribute__ ((visibility ("hidden")))
73 #endif
74#endif
75//-----------------------------------------------------------------------------
76namespace glo
77{
78 //===========================================================================
79 /* Forwards */
80 class CallBack;
81 class ObjID;
82 class BaseAllSet;
83 //===========================================================================
93 const char g_cIndexDelimiter = '|';
94 //===========================================================================
115 //const char g_cTableColumnDelimiter = '|';
116 const char g_cTableColumnDelimiter = '\a';
117 //===========================================================================
146 #if defined ( _MSC_VER ) || defined ( __MINGW32__ ) || defined ( __MINGW64__ )
147 const std::string g_sEOL = "\r\n";
148 #elif defined ( __GNUC__ )
149 const std::string g_sEOL = "\n";
150 #endif
151 //===========================================================================
152
153 //===========================================================================
166 {
167 //---------------------------------------------------------------------------
178 //---------------------------------------------------------------------------
189 //---------------------------------------------------------------------------
200 //---------------------------------------------------------------------------
211 //---------------------------------------------------------------------------
222 //---------------------------------------------------------------------------
223 };
224 //===========================================================================
225
226 //===========================================================================
227 //-----------------------------------------------------------------------------
228 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_REFERENCES' for \ref command
229 // doxygen -> warning: unable to resolve reference to 'GLO_INTRODUCTION' for \ref command
230 // Is a reference to the GlobalObjects documentation.
231 //-----------------------------------------------------------------------------
247 {
248 //---------------------------------------------------------------------------
259 //---------------------------------------------------------------------------
270 //---------------------------------------------------------------------------
271 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
272 // Is a reference to the GlobalObjects documentation.
273 //---------------------------------------------------------------------------
284 //---------------------------------------------------------------------------
296 //---------------------------------------------------------------------------
297 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
298 // Is a reference to the GlobalObjects documentation.
299 //---------------------------------------------------------------------------
314 DM_DEEP = 4
315 //---------------------------------------------------------------------------
316 };
317 //===========================================================================
318
319 //===========================================================================
320 //-----------------------------------------------------------------------------
321 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_WATCH_NOTIFY' for \ref command
322 // doxygen -> warning: unable to resolve reference to 'GLO_INTRODUCTION' for \ref command
323 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
324 // Is a reference to the GlobalObjects documentation.
325 //-----------------------------------------------------------------------------
543 typedef unsigned long TdWatchNotifyMode;
544 //---------------------------------------------------------------------------
555 //---------------------------------------------------------------------------
574 //---------------------------------------------------------------------------
585 //---------------------------------------------------------------------------
602 //---------------------------------------------------------------------------
613 //---------------------------------------------------------------------------
630 //---------------------------------------------------------------------------
641 //---------------------------------------------------------------------------
658 //---------------------------------------------------------------------------
675 //---------------------------------------------------------------------------
688 //---------------------------------------------------------------------------
699 //---------------------------------------------------------------------------
711 //---------------------------------------------------------------------------
724 //---------------------------------------------------------------------------
736 //---------------------------------------------------------------------------
748 //---------------------------------------------------------------------------
759 //---------------------------------------------------------------------------
770 //---------------------------------------------------------------------------
781 //---------------------------------------------------------------------------
792 //---------------------------------------------------------------------------
803 //---------------------------------------------------------------------------
814 //---------------------------------------------------------------------------
825 //---------------------------------------------------------------------------
826 //===========================================================================
827
828 //===========================================================================
829 //-----------------------------------------------------------------------------
830 // doxygen -> warning: unable to resolve reference to 'GLO_SERVER_SL' for \ref command
831 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_SERVER' for \ref command
832 // Is a reference to the GlobalObjects documentation.
833 //-----------------------------------------------------------------------------
854 typedef unsigned long ShowLevel;
855 //---------------------------------------------------------------------------
875 const ShowLevel SHOW_TCP = 1;
956 //===========================================================================
957
958 //===========================================================================
959 //---------------------------------------------------------------------------
960 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_LOCKING' for \ref command
961 // doxygen -> warning: unable to resolve reference to 'GLO_INTRODUCTION' for \ref command
962 // Is a reference to the GlobalObjects documentation.
963 //---------------------------------------------------------------------------
1053 // |==============================================================================|
1054 // | Obj1 | Obj2 |
1055 // |------------------------------------------------------------------------------|
1056 // |LOCK | Guarantee | Protection | Allowed LOCKs | Possibilities | Restrictions |
1057 // |==============================================================================|
1058 // | NN | none | none | all | all | none |
1059 // | RD | R | D | RD, RW, WW, TW | R, W | D |
1060 // | RW | R | D, W | RD, RW | R | D, W |
1061 // | WW | R, W | D, W | RD | R | D, W |
1062 // | DW | R, W, D | D, W | none | R | D, W |
1063 // | DR | R, W, D | D, W, R | none | none | D, W, R |
1064 // | EX | R, W, D | D, W, R | none | none | D, W, R |
1065 // | TW | R, W | D, W | RD | R | D, W |
1066 // | TD | R, W, D | D, W | none | R | D, W |
1067 // |==============================================================================|
1068
1166 //===========================================================================
1167
1168 //===========================================================================
1201 //===========================================================================
1202
1203 //===========================================================================
1248 template <typename T> class Forgeter
1249 {
1250 public:
1251 void operator()(T * ptr )
1252 {
1253 ptr->forget();
1254 }
1255 };
1256 //===========================================================================
1257
1258 //===========================================================================
1271 {
1272 public:
1273 //============== Attribute
1274 //-----------------------------------------------------------------------
1285 //-----------------------------------------------------------------------
1296 //-----------------------------------------------------------------------
1307 //-----------------------------------------------------------------------
1308
1309 //============== Konstruktoren
1310 //-----------------------------------------------------------------------
1321 : m_bRead(false),
1322 m_bWrite(false),
1323 m_bDelete(false)
1324 {};
1325 //-----------------------------------------------------------------------
1345 LockPossibleSpecification( unsigned long ulValue )
1346 : m_bRead(false),
1347 m_bWrite(false),
1348 m_bDelete(false)
1349 {
1350 this->set( ulValue );
1351 };
1352 //-----------------------------------------------------------------------
1363 {};
1364 //-----------------------------------------------------------------------
1377 : m_bRead( rT.m_bRead ),
1378 m_bWrite( rT.m_bWrite ),
1379 m_bDelete( rT.m_bDelete )
1380 {
1381 };
1382 //-----------------------------------------------------------------------
1383
1384 //============== Methoden
1385 //-----------------------------------------------------------------------
1401 unsigned long getAsUL()
1402 {
1403 unsigned long t_ulRetVal(0);
1404
1405 if ( m_bRead ) t_ulRetVal |= 1;
1406 if ( m_bWrite ) t_ulRetVal |= 2;
1407 if ( m_bDelete ) t_ulRetVal |= 4;
1408 return t_ulRetVal;
1409 };
1410 //-----------------------------------------------------------------------
1428 void set( unsigned long ulValue )
1429 {
1430 m_bRead = false;
1431 m_bWrite = false;
1432 m_bDelete = false;
1433 if ( ulValue & 1 ) m_bRead = true;
1434 if ( ulValue & 2 ) m_bWrite = true;
1435 if ( ulValue & 4 ) m_bDelete = true;
1436 };
1437 //-----------------------------------------------------------------------
1438
1439 //============== Operatoren
1440 //-----------------------------------------------------------------------
1453 {
1454 if( this != & rT )
1455 {
1456 m_bRead = rT.m_bRead;
1457 m_bWrite = rT.m_bWrite;
1458 m_bDelete = rT.m_bDelete;
1459 }
1460 return *this;
1461 };
1462 //-----------------------------------------------------------------------
1464
1475 inline bool operator== ( const LockPossibleSpecification & rT ) const
1476 {
1477 if ( m_bRead == rT.m_bRead
1478 &&
1479 m_bWrite == rT.m_bWrite
1480 &&
1481 m_bDelete == rT.m_bDelete )
1482 {
1483 return true;
1484 }
1485 return false;
1486 };
1487 //-----------------------------------------------------------------------
1488 inline bool operator!= ( const LockPossibleSpecification & rT ) const
1489 {
1490 if ( *this == rT )
1491 {
1492 return false;
1493 }
1494 return true;
1495 };
1497 //-----------------------------------------------------------------------
1498 };
1499 //===========================================================================
1500
1501 //===========================================================================
1512 {
1513 public:
1514 //============== Attribute
1515 //-----------------------------------------------------------------------
1525 unsigned long m_ulVersion;
1526 //-----------------------------------------------------------------------
1527 };
1528 //===========================================================================
1529
1530 //===========================================================================
1542 {
1543 public:
1544 //============== Attribute
1545 //-----------------------------------------------------------------------
1555 std::stack< ObjID > * m_pDependObjIdStack;
1556 //-----------------------------------------------------------------------
1567 //-----------------------------------------------------------------------
1568 };
1569 //===========================================================================
1570
1571
1572 //===========================================================================
1645 //===========================================================================
1646} // namespace glo
1647//-----------------------------------------------------------------------------
1648#ifdef _MSC_VER
1649 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
1650 #pragma warning( default : 4251 )
1651#endif
1652//-----------------------------------------------------------------------------
1653#endif
This file exists so that the definition of NULL_PTR is centrally available.
For each library, here 'GlobalObjects' there is an error file.
Header of the GlobalObjects record attributetypes.
Especially for GenericPersistent or derived classes of Persistent the Forget method for std::shared_p...
Definition GloTypes.h:1249
void operator()(T *ptr)
Definition GloTypes.h:1251
Definition GloAbstractBaseLot.h:42
const TdWatchNotifyMode WNM_DELETE_TRANSACTION
Definition GloTypes.h:640
const TdWatchNotifyMode WNM_SERVER_WSAECONNRESET
Definition GloTypes.h:824
EnDeepMode
Definition GloTypes.h:247
@ DM_NOONDEMAND
Definition GloTypes.h:295
@ DM_FLAT
Definition GloTypes.h:269
@ DM_SHALLOW
Definition GloTypes.h:283
@ DM_DEEP
Definition GloTypes.h:314
@ DM_NONE
Definition GloTypes.h:258
const ShowLevel SHOW_CHECK_BASE_ACTION
Definition GloTypes.h:945
EnComparisionOp
Definition GloTypes.h:1583
@ LESS_EQUAL
Definition GloTypes.h:1633
@ LESS
Definition GloTypes.h:1623
@ NOT_EQUAL
Definition GloTypes.h:1643
@ GREATER_EQUAL
Definition GloTypes.h:1613
@ EQUAL
Definition GloTypes.h:1593
@ GREATER
Definition GloTypes.h:1603
const TdWatchNotifyMode WNM_CLIENT_CONNECTSERVER
Definition GloTypes.h:710
const ShowLevel SHOW_REINDEX_ACTION
Definition GloTypes.h:905
const ShowLevel SHOW_ORDER_ACTION
Definition GloTypes.h:895
EnLockMode
Definition GloTypes.h:1070
@ LK_READvWRITE
Definition GloTypes.h:1100
@ LK_TRANSACTION_WRITE
Definition GloTypes.h:1152
@ LK_NONE
Definition GloTypes.h:1080
@ LK_READvDELETE
Definition GloTypes.h:1090
@ LK_DELETEvREAD
Definition GloTypes.h:1130
@ LK_EXCLUSIVE
Definition GloTypes.h:1140
@ LK_WRITEvWRITE
Definition GloTypes.h:1110
@ LK_DELETEvWRITE
Definition GloTypes.h:1120
@ LK_TRANSACTION_DELETE
Definition GloTypes.h:1164
const TdWatchNotifyMode WNM_UNLOCK
Definition GloTypes.h:674
const char g_cIndexDelimiter
Definition GloTypes.h:93
const ShowLevel SHOW_REPAIR_BASE_ACTION
Definition GloTypes.h:955
const TdWatchNotifyMode WNM_DATABASE_REPAIR
Definition GloTypes.h:802
unsigned long ShowLevel
Definition GloTypes.h:854
const TdWatchNotifyMode WNM_INSERT_TRANSACTION
Definition GloTypes.h:698
const ShowLevel SHOW_COMPRESS_ACTION
Definition GloTypes.h:935
const ShowLevel SHOW_NONE
Definition GloTypes.h:865
const TdWatchNotifyMode WNM_INDEX_READ
Definition GloTypes.h:758
const TdWatchNotifyMode WNM_LOCK
Definition GloTypes.h:657
const TdWatchNotifyMode WNM_WRITE_TRANSACTION
Definition GloTypes.h:612
const TdWatchNotifyMode WNM_READ_TRANSACTION
Definition GloTypes.h:584
const ShowLevel SHOW_WRITEINDEX_ACTION
Definition GloTypes.h:925
const std::string g_sEOL
Definition GloTypes.h:147
const TdWatchNotifyMode WNM_CLIENT_DISCONNECTSERVER
Definition GloTypes.h:723
const TdWatchNotifyMode WNM_DATABASE_COMPRESS
Definition GloTypes.h:791
EnSeekMode
Definition GloTypes.h:166
@ END
Definition GloTypes.h:188
@ CURRENT
Definition GloTypes.h:199
@ START
Definition GloTypes.h:177
@ PREVIOUS
Definition GloTypes.h:221
@ NEXT
Definition GloTypes.h:210
const TdWatchNotifyMode WNM_INDEX_REINDEX
Definition GloTypes.h:780
EnQueryType
Definition GloTypes.h:1179
@ eQUERY_DIRECT
Definition GloTypes.h:1189
@ eQUERY_OQL
Definition GloTypes.h:1199
const char g_cTableColumnDelimiter
Definition GloTypes.h:116
const ShowLevel SHOW_READINDEX_ACTION
Definition GloTypes.h:915
const TdWatchNotifyMode WNM_INSERT
Definition GloTypes.h:687
const TdWatchNotifyMode WNM_INDEX_WRITE
Definition GloTypes.h:769
const TdWatchNotifyMode WNM_WRITE
Definition GloTypes.h:601
const TdWatchNotifyMode WNM_DELETE
Definition GloTypes.h:629
const ShowLevel SHOW_TCP
Definition GloTypes.h:875
const ShowLevel SHOW_READ_WRITE
Definition GloTypes.h:885
const TdWatchNotifyMode WNM_NONE
Definition GloTypes.h:554
const TdWatchNotifyMode WNM_READ
Definition GloTypes.h:573
const TdWatchNotifyMode WNM_CLIENT_CLOSEBASE
Definition GloTypes.h:747
unsigned long TdWatchNotifyMode
Definition GloTypes.h:543
const TdWatchNotifyMode WNM_CLIENT_OPENBASE
Definition GloTypes.h:735
const TdWatchNotifyMode WNM_DATABASE_CHECK
Definition GloTypes.h:813
A structure to transport multiple object IDs with a 'depth mode'.
Definition GloTypes.h:1542
std::stack< ObjID > * m_pDependObjIdStack
Definition GloTypes.h:1555
EnDeepMode m_eDeepMode
Definition GloTypes.h:1566
Permitted actions in the database such as read, write and delete can be queried for an object....
Definition GloTypes.h:1271
bool m_bRead
Definition GloTypes.h:1284
LockPossibleSpecification()
Definition GloTypes.h:1320
LockPossibleSpecification(const LockPossibleSpecification &rT)
Definition GloTypes.h:1376
bool m_bWrite
Definition GloTypes.h:1295
LockPossibleSpecification & operator=(const LockPossibleSpecification &rT)
Definition GloTypes.h:1452
bool m_bDelete
Definition GloTypes.h:1306
virtual ~LockPossibleSpecification()
Definition GloTypes.h:1362
bool operator!=(const LockPossibleSpecification &rT) const
Comparison operator.
Definition GloTypes.h:1488
unsigned long getAsUL()
Definition GloTypes.h:1401
bool operator==(const LockPossibleSpecification &rT) const
Comparison operator.
Definition GloTypes.h:1475
void set(unsigned long ulValue)
Definition GloTypes.h:1428
LockPossibleSpecification(unsigned long ulValue)
Definition GloTypes.h:1345
To open a database this info is inserted into OrderMsg.
Definition GloTypes.h:1512
unsigned long m_ulVersion
Definition GloTypes.h:1525