GlobalObjects
Loading...
Searching...
No Matches
GloWatchNotifyManager.h
Go to the documentation of this file.
1#ifndef INC_GLOWATCHNOTIFYMANAGER_H
2#define INC_GLOWATCHNOTIFYMANAGER_H
3//-----------------------------------------------------------------------------
58//-----------------------------------------------------------------------------
59#include <list>
60#include <map>
61#include <unordered_map>
62#include <queue>
63#include "GloTypes.h"
64#include "GloManager.h"
65#include "GloObjID.h"
67#if defined (__PTHREADS)
68 #include <EuEndlessPThread.h>
69 #include <semaphore.h>
70#else
71 #include "EuRepeatingThread.h"
72#endif
73//-----------------------------------------------------------------------------
74namespace glo
75{
76 //---------------------------------------------------------------------------
77 /* Forwards */
78 class OrderMsg;
79 class Communicator;
80 class Record;
81 //---------------------------------------------------------------------------
82 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
83 // Is a reference to the GlobalObjects documentation.
84 //---------------------------------------------------------------------------
347 #if defined (__PTHREADS)
348 class WatchNotifyManager : public EuEndlessPThread
349 #else
351 #endif
352 {
353 public:
354 //-----------------------------------------------------------------------
355 // >>>>>>>>>>>>>>>>>>>>>>>> NotifyInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
356 //-----------------------------------------------------------------------
372 {
373 public:
374 //============== Attribute
375 //-------------------------------------------------------------------
386 //-------------------------------------------------------------------
387
388 //============= De- und Konstruktoren
389 //-------------------------------------------------------------------
400 //-------------------------------------------------------------------
413 //-------------------------------------------------------------------
425 NotifyInfo (const NotifyInfo & rT);
426 //-------------------------------------------------------------------
436 virtual ~NotifyInfo ();
437 //-------------------------------------------------------------------
438
439 //============== Operatoren
440 //-------------------------------------------------------------------
453 //-------------------------------------------------------------------
454 };
455 //-----------------------------------------------------------------------
456 // <<<<<<<<<<<<<<<<<<<<<<<<<<< NotifyInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
457 //-----------------------------------------------------------------------
458
459
460 //-----------------------------------------------------------------------
461 // >>>>>>>>>>>>>>>>>>>>>>> NotifyObjInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
462 //-----------------------------------------------------------------------
478 {
479 public:
480 //============== Attribute
481 //-------------------------------------------------------------------
495 //-------------------------------------------------------------------
496
497 //============= De- und Konstruktoren
498 //-------------------------------------------------------------------
509 //-------------------------------------------------------------------
522 //-------------------------------------------------------------------
538 NotifyObjInfo( TdWatchNotifyMode ulNotifyMode, const ObjID & rObjID );
539 //-------------------------------------------------------------------
552 //-------------------------------------------------------------------
562 virtual ~NotifyObjInfo();
563 //-------------------------------------------------------------------
564
565 //============== Operatoren
566 //-------------------------------------------------------------------
579 //-------------------------------------------------------------------
580 };
581 //-----------------------------------------------------------------------
582 // <<<<<<<<<<<<<<<<<<<<<<<< NotifyObjInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
583 //-----------------------------------------------------------------------
584
585 //-----------------------------------------------------------------------
586 // >>>>>>>>>>>>>>>>>>>>>> NotifyClientInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
587 //-----------------------------------------------------------------------
602 {
603 public:
604 //============== Attribute
605 //-------------------------------------------------------------------
615 SOCKET m_nSocket;
616 //-------------------------------------------------------------------
626 unsigned int m_uiClientID;
627 //-------------------------------------------------------------------
637 std::string m_strClientName;
638 //-------------------------------------------------------------------
648 std::string m_strIPAdress;
649 //-------------------------------------------------------------------
659 std::string m_strBaseName;
660 //-------------------------------------------------------------------
661
662 //============= De- und Konstruktoren
663 //-------------------------------------------------------------------
674 //-------------------------------------------------------------------
687 //-------------------------------------------------------------------
712 SOCKET nSocket,
713 unsigned int uiClientID,
714 const std::string & rstrClientName,
715 const std::string & rstrIPAdress,
716 const std::string & rstrBaseName );
717 //-------------------------------------------------------------------
730 //-------------------------------------------------------------------
741 //-------------------------------------------------------------------
742
743 //============== Operatoren
744 //-------------------------------------------------------------------
757 //-------------------------------------------------------------------
758 };
759 //-----------------------------------------------------------------------
760 // <<<<<<<<<<<<<<<<<<<<<< NotifyClientInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
761 //-----------------------------------------------------------------------
762
763 //-----------------------------------------------------------------------
764 // >>>>>>>>>>>>>>>>> NotifyIndexReadWriteInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>
765 //-----------------------------------------------------------------------
782 {
783 public:
784 //============== Attribute
785 //-------------------------------------------------------------------
795 std::string m_sSchemaName;
796 //-------------------------------------------------------------------
809 //-------------------------------------------------------------------
820 //-------------------------------------------------------------------
831 //-------------------------------------------------------------------
832
833 //============= De- und Konstruktoren
834 //-------------------------------------------------------------------
845 //-------------------------------------------------------------------
858 //-------------------------------------------------------------------
883 const std::string & rsSchemaName,
884 const ObjID & rObjID,
885 int iFraction,
886 int iActions );
887 //-------------------------------------------------------------------
900 //-------------------------------------------------------------------
911 //-------------------------------------------------------------------
912
913 //============== Operatoren
914 //-------------------------------------------------------------------
927 //-------------------------------------------------------------------
928 };
929 //-----------------------------------------------------------------------
930 // <<<<<<<<<<<<<<<<< NotifyIndexReadWriteInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<
931 //-----------------------------------------------------------------------
932
933 private:
934 //-----------------------------------------------------------------------
935 // >>>>>>>>>>>>>>>>> CommunicatorCallBackIndex >>>>>>>>>>>>>>>>>>>>>>>>>>
936 //-----------------------------------------------------------------------
952 {
953 private:
954 //============== Attribute
955 //-------------------------------------------------------------------
966 //-------------------------------------------------------------------
979 //-------------------------------------------------------------------
980
981 protected:
982 //============= Konstruktor
983 //-------------------------------------------------------------------
994 //-------------------------------------------------------------------
995
996 public:
997 //============= De- und Konstruktoren
998 //-------------------------------------------------------------------
1015 NUM_PTR ipCallBack );
1016 //-------------------------------------------------------------------
1029 //-------------------------------------------------------------------
1040 //-------------------------------------------------------------------
1041
1042 //============== Methoden
1043 //-------------------------------------------------------------------
1056 //-------------------------------------------------------------------
1070 //-------------------------------------------------------------------
1071
1072 //============== Operatoren
1073 //-------------------------------------------------------------------
1075
1086 bool operator== ( const CommunicatorCallBackIndex & rT ) const;
1087 bool operator!= ( const CommunicatorCallBackIndex & rT ) const;
1088 bool operator> ( const CommunicatorCallBackIndex & rT ) const;
1089 bool operator>= ( const CommunicatorCallBackIndex & rT ) const;
1090 bool operator< ( const CommunicatorCallBackIndex & rT ) const;
1091 bool operator<= ( const CommunicatorCallBackIndex & rT ) const;
1093 //-------------------------------------------------------------------
1106 //-------------------------------------------------------------------
1107
1108 //-------------------------------------------------------------------
1127 {
1128 size_t operator()( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex) const;
1129 };
1130 //-------------------------------------------------------------------
1131 };
1132 //-----------------------------------------------------------------------
1133 // <<<<<<<<<<<<<<<<<<< CommunicatorCallBackIndex <<<<<<<<<<<<<<<<<<<<<<<<
1134 //-----------------------------------------------------------------------
1135
1136 //-----------------------------------------------------------------------
1137 // >>>>>>>>>>>>>>>> CommunicatorCallBackClassIndex >>>>>>>>>>>>>>>>>>>>>>
1138 //-----------------------------------------------------------------------
1154 {
1155 private:
1156 //============== Attribute
1157 //-------------------------------------------------------------------
1167 unsigned long m_ulClassID;
1168 //-------------------------------------------------------------------
1169
1170 protected:
1171 //============= Konstruktor
1172 //-------------------------------------------------------------------
1183 //-------------------------------------------------------------------
1184
1185 public:
1186 //============= De- und Konstruktoren
1187 //-------------------------------------------------------------------
1204 NUM_PTR ipCallBack );
1205 //-------------------------------------------------------------------
1224 NUM_PTR ipCallBack,
1225 unsigned long ulClassID );
1226 //-------------------------------------------------------------------
1239 //-------------------------------------------------------------------
1250 //-------------------------------------------------------------------
1251
1252 //============== Methoden
1253 //-------------------------------------------------------------------
1265 unsigned long getClassID();
1266 //-------------------------------------------------------------------
1267
1268 //============== Operatoren
1269 //-------------------------------------------------------------------
1271
1289 //-------------------------------------------------------------------
1302 //-------------------------------------------------------------------
1303 };
1304 //-----------------------------------------------------------------------
1305 // <<<<<<<<<<<<<<< CommunicatorCallBackClassIndex <<<<<<<<<<<<<<<<<<<<<<<
1306 //-----------------------------------------------------------------------
1307
1308 //-----------------------------------------------------------------------
1309 // >>>>>>>>>>>>>>> CommunicatorCallBackObjIndex >>>>>>>>>>>>>>>>>>>>>>>>>
1310 //-----------------------------------------------------------------------
1326 {
1327 private:
1328 //============== Attribute
1329 //-------------------------------------------------------------------
1340 //-------------------------------------------------------------------
1341
1342 protected:
1343 //============= Konstruktor
1344 //-------------------------------------------------------------------
1355 //-------------------------------------------------------------------
1356
1357 public:
1358 //============= De- und Konstruktoren
1359 //-------------------------------------------------------------------
1376 NUM_PTR ipCallBack );
1377 //-------------------------------------------------------------------
1396 NUM_PTR ipCallBack,
1397 const ObjID & rObjID );
1398 //-------------------------------------------------------------------
1411 //-------------------------------------------------------------------
1422 //-------------------------------------------------------------------
1423
1424 //============== Methoden
1425 //-------------------------------------------------------------------
1438 //-------------------------------------------------------------------
1439
1440 //============== Operatoren
1441 //-------------------------------------------------------------------
1443
1461 //-------------------------------------------------------------------
1474 //-------------------------------------------------------------------
1475 };
1476 //-----------------------------------------------------------------------
1477 // <<<<<<<<<<<<<<< CommunicatorCallBackObjIndex <<<<<<<<<<<<<<<<<<<<<<<<<
1478 //-----------------------------------------------------------------------
1479
1480 //-----------------------------------------------------------------------
1481 // >>>>>>>>>>>>> CommunicatorCallBackClientIndex >>>>>>>>>>>>>>>>>>>>>>>>
1482 //-----------------------------------------------------------------------
1498 {
1499 protected:
1500 //============= Konstruktor
1501 //-------------------------------------------------------------------
1512 //-------------------------------------------------------------------
1513
1514 public:
1515 //============= De- und Konstruktoren
1516 //-------------------------------------------------------------------
1533 NUM_PTR ipCallBack );
1534 //-------------------------------------------------------------------
1547 //-------------------------------------------------------------------
1558 //-------------------------------------------------------------------
1559
1560 //============== Operatoren
1561 //-------------------------------------------------------------------
1563
1581 //-------------------------------------------------------------------
1594 //-------------------------------------------------------------------
1595 };
1596 //-----------------------------------------------------------------------
1597 // <<<<<<<<<<<<<<<< CommunicatorCallBackClientIndex <<<<<<<<<<<<<<<<<<<<<
1598 //-----------------------------------------------------------------------
1599
1600 //-----------------------------------------------------------------------
1601 // >>>>>>>>>>>>>> CommunicatorCallBackIndexReadWriteIndex >>>>>>>>>>>>>>>
1602 //-----------------------------------------------------------------------
1618 {
1619 protected:
1620 //============= Konstruktor
1621 //-------------------------------------------------------------------
1632 //-------------------------------------------------------------------
1633
1634 public:
1635 //============= De- und Konstruktoren
1636 //-------------------------------------------------------------------
1653 NUM_PTR ipCallBack );
1654 //-------------------------------------------------------------------
1667 //-------------------------------------------------------------------
1678 //-------------------------------------------------------------------
1679
1680 //============== Operatoren
1681 //-------------------------------------------------------------------
1683
1701 //-------------------------------------------------------------------
1714 //-------------------------------------------------------------------
1715 };
1716 //-----------------------------------------------------------------------
1717 // <<<<<<<<<<<<< CommunicatorCallBackIndexReadWriteIndex <<<<<<<<<<<<<<<<
1718 //-----------------------------------------------------------------------
1719
1720 //-----------------------------------------------------------------------
1721 // >>>>>>>>>>>>>>>>>> CommunicatorNotifyModes >>>>>>>>>>>>>>>>>>>>>>>>>>>
1722 //-----------------------------------------------------------------------
1736 {
1737 private:
1738 //============== Attribute
1739 //-------------------------------------------------------------------
1750 //-------------------------------------------------------------------
1751
1752 protected:
1753 //============= Konstruktor
1754 //-------------------------------------------------------------------
1765 //-------------------------------------------------------------------
1766
1767 public:
1768 //============= De- und Konstruktoren
1769 //-------------------------------------------------------------------
1781 CommunicatorNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
1782 //-------------------------------------------------------------------
1793 //-------------------------------------------------------------------
1794
1795 //============== Methoden
1796 //-------------------------------------------------------------------
1808 virtual bool hasWatches() const = 0;
1809 //-------------------------------------------------------------------
1823 //-------------------------------------------------------------------
1839 //-------------------------------------------------------------------
1852 //-------------------------------------------------------------------
1853 };
1854 //-----------------------------------------------------------------------
1855 // <<<<<<<<<<<<<<<<<<< CommunicatorNotifyModes <<<<<<<<<<<<<<<<<<<<<<<<<<
1856 //-----------------------------------------------------------------------
1857
1858 //-----------------------------------------------------------------------
1859 // >>>>>>>>>>>>>>>>> CommunicatorClassNotifyModes >>>>>>>>>>>>>>>>>>>>>>>
1860 //-----------------------------------------------------------------------
1874 {
1875 private:
1876 //============== Attribute
1877 //-------------------------------------------------------------------
1888 //-------------------------------------------------------------------
1899 //-------------------------------------------------------------------
1910 //-------------------------------------------------------------------
1921 //-------------------------------------------------------------------
1932 //-------------------------------------------------------------------
1933
1934 protected:
1935 //============= Konstruktor
1936 //-------------------------------------------------------------------
1947 //-------------------------------------------------------------------
1948
1949 public:
1950 //============= De- und Konstruktoren
1951 //-------------------------------------------------------------------
1963 CommunicatorClassNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
1964 //-------------------------------------------------------------------
1975 //-------------------------------------------------------------------
1976
1977 //============== Methoden
1978 //-------------------------------------------------------------------
1990 virtual bool hasWatches() const;
1991 //-------------------------------------------------------------------
2007 void setWatch( TdWatchNotifyMode tdWatchNotifyMode,
2008 unsigned long ulClassID );
2009 //-------------------------------------------------------------------
2041 int unsetWatch( TdWatchNotifyMode tdWatchNotifyMode,
2042 unsigned long ulClassID,
2043 bool bSimulate = false );
2044 //-------------------------------------------------------------------
2045 };
2046 //-----------------------------------------------------------------------
2047 // <<<<<<<<<<<<<<<<<<< CommunicatorClassNotifyModes <<<<<<<<<<<<<<<<<<<<<
2048 //-----------------------------------------------------------------------
2049
2050 //-----------------------------------------------------------------------
2051 // >>>>>>>>>>>>>>>>>>>> CommunicatorObjNotifyModes >>>>>>>>>>>>>>>>>>>>>>
2052 //-----------------------------------------------------------------------
2053 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2054 // Is a reference to the GlobalObjects documentation.
2055 //-----------------------------------------------------------------------
2073 {
2074 private:
2075 //============== Attribute
2076 //-------------------------------------------------------------------
2077 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2078 // Is a reference to the GlobalObjects documentation.
2090 std::list<DependentObjsWithDeepMode *> m_WNM_WRITE;
2091 //-------------------------------------------------------------------
2092 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2093 // Is a reference to the GlobalObjects documentation.
2094 //-------------------------------------------------------------------
2106 std::list<DependentObjsWithDeepMode *> m_WNM_DELETE;
2107 //-------------------------------------------------------------------
2108 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2109 // Is a reference to the GlobalObjects documentation.
2110 //-------------------------------------------------------------------
2122 std::list<DependentObjsWithDeepMode *> m_WNM_LOCK;
2123 //-------------------------------------------------------------------
2124 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2125 // Is a reference to the GlobalObjects documentation.
2126 //-------------------------------------------------------------------
2138 std::list<DependentObjsWithDeepMode *> m_WNM_UNLOCK;
2139 //-------------------------------------------------------------------
2150 //-------------------------------------------------------------------
2151
2152 protected:
2153 //============= Konstruktor
2154 //-------------------------------------------------------------------
2165 //-------------------------------------------------------------------
2166
2167 public:
2168 //============= De- und Konstruktoren
2169 //-------------------------------------------------------------------
2181 CommunicatorObjNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
2182 //-------------------------------------------------------------------
2193 //-------------------------------------------------------------------
2194
2195 //============== Methoden
2196 //-------------------------------------------------------------------
2208 virtual bool hasWatches() const;
2209 //-------------------------------------------------------------------
2210 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2211 // Is a reference to the GlobalObjects documentation.
2212 //-------------------------------------------------------------------
2234 void setWatch( std::stack< ObjID > * pDependObjIdStack,
2235 TdWatchNotifyMode tdWatchNotifyMode,
2236 EnDeepMode eDeepMode,
2237 const ObjID & rObjID );
2238 //-------------------------------------------------------------------
2239 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2240 // Is a reference to the GlobalObjects documentation.
2241 //-------------------------------------------------------------------
2300 int unsetWatch( std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
2301 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
2302 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
2303 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
2304 TdWatchNotifyMode tdWatchNotifyMode,
2305 EnDeepMode eDeepMode,
2306 const ObjID & rObjID,
2307 bool bSimulate = false );
2308 //-------------------------------------------------------------------
2309
2310 protected:
2311 //============== Methoden
2312 //-------------------------------------------------------------------
2313 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2314 // Is a reference to the GlobalObjects documentation.
2315 //-------------------------------------------------------------------
2388 int setUnsetWatch( TdWatchNotifyMode tdWatchNotifyMode,
2389 EnDeepMode eDeepMode,
2390 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
2391 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
2392 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
2393 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
2394 std::stack< ObjID > * pDependObjIdStack,
2395 const ObjID & rObjID,
2396 bool bSimulate = false );
2397 //-------------------------------------------------------------------
2398 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2399 // Is a reference to the GlobalObjects documentation.
2400 //-------------------------------------------------------------------
2444 int setWatchCount( std::list< DependentObjsWithDeepMode * > & rWatchCountList,
2445 std::stack< ObjID > *& prDependObjIdStack,
2446 std::stack< ObjID > * pDependObjIdStack,
2447 EnDeepMode eDeepMode,
2448 const ObjID & rObjID,
2449 std::list< CommunicatorCallBackIndex * > & rActionList,
2450 bool bSimulate = false );
2451 //-------------------------------------------------------------------
2452
2453 private:
2454 //============== Methoden
2455 //-------------------------------------------------------------------
2471 void clearList( std::list< DependentObjsWithDeepMode * > * pList );
2472 //-------------------------------------------------------------------
2473 };
2474 //-----------------------------------------------------------------------
2475 // <<<<<<<<<<<<<<<<<<< CommunicatorObjNotifyModes <<<<<<<<<<<<<<<<<<<<<<<
2476 //-----------------------------------------------------------------------
2477
2478 //-----------------------------------------------------------------------
2479 // >>>>>>>>>>>>>>>>> CommunicatorClientNotifyModes >>>>>>>>>>>>>>>>>>>>>>
2480 //-----------------------------------------------------------------------
2495 {
2496 private:
2497 //============== Attribute
2498 //-------------------------------------------------------------------
2509 //-------------------------------------------------------------------
2520 //-------------------------------------------------------------------
2531 //-------------------------------------------------------------------
2542 //-------------------------------------------------------------------
2543
2544 protected:
2545 //============= Konstruktor
2546 //-------------------------------------------------------------------
2557 //-------------------------------------------------------------------
2558
2559 public:
2560 //============= De- und Konstruktoren
2561 //-------------------------------------------------------------------
2573 CommunicatorClientNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
2574 //-------------------------------------------------------------------
2585 //-------------------------------------------------------------------
2586
2587 //============== Methoden
2588 //-------------------------------------------------------------------
2600 virtual bool hasWatches() const;
2601 //-------------------------------------------------------------------
2615 void setWatch( TdWatchNotifyMode tdWatchNotifyMode );
2616 //-------------------------------------------------------------------
2646 int unsetWatch( TdWatchNotifyMode tdWatchNotifyMode,
2647 bool bSimulate = false );
2648 //-------------------------------------------------------------------
2649 };
2650 //-----------------------------------------------------------------------
2651 // <<<<<<<<<<<<<<<<<<<< CommunicatorClientNotifyModes <<<<<<<<<<<<<<<<<<<
2652 //-----------------------------------------------------------------------
2653
2654 //-----------------------------------------------------------------------
2655 // >>>>>>>>>>>>>>> CommunicatorIndexReadWriteNotifyModes >>>>>>>>>>>>>>>>
2656 //-----------------------------------------------------------------------
2672 {
2673 private:
2674 //============== Attribute
2675 //-------------------------------------------------------------------
2686 //-------------------------------------------------------------------
2697 //-------------------------------------------------------------------
2708 //-------------------------------------------------------------------
2709
2710 protected:
2711 //============= Konstruktor
2712 //-------------------------------------------------------------------
2723 //-------------------------------------------------------------------
2724
2725 public:
2726 //============= De- und Konstruktoren
2727 //-------------------------------------------------------------------
2740 //-------------------------------------------------------------------
2751 //-------------------------------------------------------------------
2752
2753 //============== Methoden
2754 //-------------------------------------------------------------------
2766 virtual bool hasWatches() const;
2767 //-------------------------------------------------------------------
2780 void setWatch( TdWatchNotifyMode tdWatchNotifyMode );
2781 //-------------------------------------------------------------------
2811 int unsetWatch( TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate = false );
2812 //-------------------------------------------------------------------
2813 };
2814 //-----------------------------------------------------------------------
2815 // <<<<<<<<<<<<<< CommunicatorIndexReadWriteNotifyModes <<<<<<<<<<<<<<<<<
2816 //-----------------------------------------------------------------------
2817
2818 //-----------------------------------------------------------------------
2819 // >>>>>>>>>>>>>>>>>>>>>>>> ObjectWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2820 //-----------------------------------------------------------------------
2834 {
2835 private:
2836 //============== Attribute
2837 //-------------------------------------------------------------------
2848 //-------------------------------------------------------------------
2860 std::unordered_map< CommunicatorCallBackIndex, CommunicatorObjNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction >
2862 //-------------------------------------------------------------------
2863
2864 protected:
2865 //============= Konstruktor
2866 //-------------------------------------------------------------------
2877 //-------------------------------------------------------------------
2878
2879 public:
2880 //============= De- und Konstruktoren
2881 //-------------------------------------------------------------------
2893 ObjectWatch( const ObjID & rObjID );
2894 //-------------------------------------------------------------------
2905 //-------------------------------------------------------------------
2906
2907 //============== Methoden
2908 //-------------------------------------------------------------------
2921 //-------------------------------------------------------------------
2933 bool hasWatches() const;
2934 //-------------------------------------------------------------------
2935 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2936 // Is a reference to the GlobalObjects documentation.
2937 //-------------------------------------------------------------------
2961 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
2962 std::stack< ObjID > * pDependObjIdStack,
2963 TdWatchNotifyMode tdWatchNotifyMode,
2964 EnDeepMode eDeepMode );
2965 //-------------------------------------------------------------------
2966 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2967 // Is a reference to the GlobalObjects documentation.
2968 //-------------------------------------------------------------------
3031 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3032 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
3033 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
3034 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
3035 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
3036 TdWatchNotifyMode tdWatchNotifyMode,
3037 EnDeepMode eDeepMode,
3038 bool bSimulate = false );
3039 //-------------------------------------------------------------------
3051 void deleteAllWatches( Communicator * pCommunicator );
3052 //-------------------------------------------------------------------
3053
3054 private:
3055 //============== Methoden
3056 //-------------------------------------------------------------------
3067 };
3068 //-----------------------------------------------------------------------
3069 // <<<<<<<<<<<<<<<<<<<<<<<<<< ObjectWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3070 //-----------------------------------------------------------------------
3071
3072 //-----------------------------------------------------------------------
3073 // >>>>>>>>>>>>>>>>>>>>>>>>>> ClassWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3074 //-----------------------------------------------------------------------
3088 {
3089 private:
3090 //============== Attribute
3091 //-------------------------------------------------------------------
3101 unsigned long m_ulClassID;
3102 //-------------------------------------------------------------------
3114 std::unordered_map< CommunicatorCallBackIndex, CommunicatorClassNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction >
3116 //-------------------------------------------------------------------
3126 std::unordered_map< ObjID, ObjectWatch *, glo::ObjID::HashFunction > m_ObjectWatchMap;
3127 //-------------------------------------------------------------------
3128
3129 protected:
3130 //============= Konstruktor
3131 //-------------------------------------------------------------------
3142 //-------------------------------------------------------------------
3143
3144 public:
3145 //============= De- und Konstruktoren
3146 //-------------------------------------------------------------------
3158 ClassWatch( unsigned long ulClassID );
3159 //-------------------------------------------------------------------
3170 //-------------------------------------------------------------------
3171
3172 //============== Methoden
3173 //-------------------------------------------------------------------
3185 unsigned long getClassID() const;
3186 //-------------------------------------------------------------------
3199 //-------------------------------------------------------------------
3211 std::size_t getObjectWatchMapCount() const;
3212 //-------------------------------------------------------------------
3224 bool hasWatches() const;
3225 //-------------------------------------------------------------------
3241 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3242 TdWatchNotifyMode tdWatchNotifyMode );
3243 //-------------------------------------------------------------------
3275 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3276 TdWatchNotifyMode tdWatchNotifyMode,
3277 bool bSimulate = false );
3278 //-------------------------------------------------------------------
3279 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
3280 // Is a reference to the GlobalObjects documentation.
3281 //-------------------------------------------------------------------
3311 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3312 const ObjID & rObjID,
3313 std::stack< ObjID > * pDependObjIdStack,
3314 TdWatchNotifyMode tdWatchNotifyMode,
3315 EnDeepMode eDeepMode);
3316 //-------------------------------------------------------------------
3317 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
3318 // Is a reference to the GlobalObjects documentation.
3319 //-------------------------------------------------------------------
3383 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3384 const ObjID & rObjID,
3385 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
3386 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
3387 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
3388 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
3389 TdWatchNotifyMode tdWatchNotifyMode,
3390 EnDeepMode eDeepMode,
3391 bool bSimulate = false );
3392 //-------------------------------------------------------------------
3404 void deleteAllWatches( Communicator * pCommunicator );
3405 //-------------------------------------------------------------------
3406
3407 protected:
3408 //-------------------------------------------------------------------
3419 //-------------------------------------------------------------------
3430 //-------------------------------------------------------------------
3431 };
3432 //-----------------------------------------------------------------------
3433 // <<<<<<<<<<<<<<<<<<<<<<<<<<< ClassWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3434 //-----------------------------------------------------------------------
3435
3436 //-----------------------------------------------------------------------
3437 // >>>>>>>>>>>>>>>>>>>>>>>>>> ClientWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3438 //-----------------------------------------------------------------------
3452
3453 {
3454 private:
3455 //============== Attribute
3456 //-------------------------------------------------------------------
3468 std::unordered_map< CommunicatorCallBackIndex, CommunicatorClientNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction >
3470 //-------------------------------------------------------------------
3471
3472 public:
3473 //============= Konstruktor
3474 //-------------------------------------------------------------------
3485 //-------------------------------------------------------------------
3496 //-------------------------------------------------------------------
3497
3498 //============== Methoden
3499 //-------------------------------------------------------------------
3512 //-------------------------------------------------------------------
3524 bool hasWatches() const;
3525 //-------------------------------------------------------------------
3541 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3542 TdWatchNotifyMode tdWatchNotifyMode );
3543 //-------------------------------------------------------------------
3576 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3577 TdWatchNotifyMode tdWatchNotifyMode,
3578 bool bSimulate = false);
3579 //-------------------------------------------------------------------
3591 void deleteAllWatches( Communicator * pCommunicator );
3592 //-------------------------------------------------------------------
3593
3594 protected:
3595 //-------------------------------------------------------------------
3606 //-------------------------------------------------------------------
3607 };
3608 //-----------------------------------------------------------------------
3609 // <<<<<<<<<<<<<<<<<<<<<<<<< ClientWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3610 //-----------------------------------------------------------------------
3611
3612 //-----------------------------------------------------------------------
3613 // >>>>>>>>>>>>>>>>>>>> IndexReadWriteWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3614 //-----------------------------------------------------------------------
3630 {
3631 private:
3632 //============== Attribute
3633 //-------------------------------------------------------------------
3647 std::unordered_map< CommunicatorCallBackIndex, CommunicatorIndexReadWriteNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction >
3649 //-------------------------------------------------------------------
3650
3651 public:
3652 //============= Konstruktor
3653 //-------------------------------------------------------------------
3664 //-------------------------------------------------------------------
3675 //-------------------------------------------------------------------
3676
3677 //============== Methoden
3678 //-------------------------------------------------------------------
3691 //-------------------------------------------------------------------
3704 bool hasWatches() const;
3705 //-------------------------------------------------------------------
3721 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3722 TdWatchNotifyMode tdWatchNotifyMode );
3723 //-------------------------------------------------------------------
3756 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3757 TdWatchNotifyMode tdWatchNotifyMode,
3758 bool bSimulate = false );
3759 //-------------------------------------------------------------------
3771 void deleteAllWatches( Communicator * pCommunicator );
3772 //-------------------------------------------------------------------
3773
3774 protected:
3775 //-------------------------------------------------------------------
3786 //-------------------------------------------------------------------
3787 };
3788 //-----------------------------------------------------------------------
3789 // <<<<<<<<<<<<<<<<<<<<<< IndexReadWriteWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<
3790 //-----------------------------------------------------------------------
3791
3792 //-------------------------------------------------------------------------
3793 // <<<<<<<<<<<<<<<<<<<<<<<<< WatchNotifyManager >>>>>>>>>>>>>>>>>>>>>>>>>>>
3794 //-------------------------------------------------------------------------
3795 protected:
3796 //============== Static-Attribute
3797 //-----------------------------------------------------------------------
3810 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_WRITE_List;
3811 //-----------------------------------------------------------------------
3824 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_DELETE_List;
3825 //-----------------------------------------------------------------------
3838 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_LOCK_List;
3839 //-----------------------------------------------------------------------
3852 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_UNLOCK_List;
3853 //-----------------------------------------------------------------------
3866 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INSERT_List;
3867 //-----------------------------------------------------------------------
3880 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_CONNECTSERVER_List;
3881 //-----------------------------------------------------------------------
3894 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_DISCONNECTSERVER_List;
3895 //-----------------------------------------------------------------------
3908 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_OPENBASE_List;
3909 //-----------------------------------------------------------------------
3922 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_CLOSEBASE_List;
3923 //-----------------------------------------------------------------------
3936 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INDEX_READ_List;
3937 //-----------------------------------------------------------------------
3950 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INDEX_WRITE_List;
3951 //-----------------------------------------------------------------------
3964 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INDEX_REINDEX_List;
3965 //-----------------------------------------------------------------------
3966
3967 private:
3968 //============== Attribute
3969 //-----------------------------------------------------------------------
3983 #if defined (__PTHREADS)
3985 #else
3987 #endif
3988 //-----------------------------------------------------------------------
3999 //-----------------------------------------------------------------------
4009 std::unordered_map< unsigned long, ClassWatch * > m_ClassWatchMap;
4010 //-----------------------------------------------------------------------
4021 //-----------------------------------------------------------------------
4033 //-----------------------------------------------------------------------
4043 std::queue< OrderMsg * > m_MsgQueue;
4044 //-----------------------------------------------------------------------
4046
4065 //-----------------------------------------------------------------------
4066
4067 protected:
4068 //============= Konstruktoren
4069 //-----------------------------------------------------------------------
4080 //-----------------------------------------------------------------------
4081
4082 public:
4083 //============= Konstruktoren
4084 //-----------------------------------------------------------------------
4099 WatchNotifyManager( Manager * pMyDBManager );
4100 //-----------------------------------------------------------------------
4111 //-----------------------------------------------------------------------
4112
4113 private:
4114 //============== Konstruktoren
4115 //-----------------------------------------------------------------------
4126 //-----------------------------------------------------------------------
4127
4128 protected:
4129 //============== Methoden
4130 //-----------------------------------------------------------------------
4131 #if defined (__PTHREADS)
4147 virtual void cleanUp();
4148 //-----------------------------------------------------------------------
4149 #else
4150
4151 public:
4152 //============== Methoden
4153 //-------------------------------------------------------------------------
4169 virtual void cancel() override;
4170 //-----------------------------------------------------------------------
4171 #endif
4172
4173 public:
4174 //============== Methoden
4175 //-----------------------------------------------------------------------
4187 void takeOrder( OrderMsg * pOrderMsg );
4188 //-----------------------------------------------------------------------
4215 //-----------------------------------------------------------------------
4230 bool hasObjectWatching( TdWatchNotifyMode tdWatchNotifyMode ) const;
4231 //-----------------------------------------------------------------------
4232
4233 protected:
4234 //============== interne Watch-Methoden
4235 //-----------------------------------------------------------------------
4257 int setInternWatch( Communicator * pCommunicator,
4258 NUM_PTR ipCallBack,
4259 unsigned long ulClassID,
4260 TdWatchNotifyMode tdWatchNotifyMode );
4261 //-----------------------------------------------------------------------
4262 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
4263 // Is a reference to the GlobalObjects documentation.
4264 //-----------------------------------------------------------------------
4296 int setInternWatch( Communicator * pCommunicator,
4297 NUM_PTR ipCallBack,
4298 const ObjID & rObjID,
4299 std::map< ObjID, Record *, std::less<ObjID> > & rDependObjectsMap,
4300 TdWatchNotifyMode tdWatchNotifyMode,
4301 EnDeepMode eDeepMode );
4302 //-----------------------------------------------------------------------
4324 int setInternWatch( Communicator * pCommunicator,
4325 NUM_PTR ipCallBack,
4326 TdWatchNotifyMode tdWatchNotifyMode );
4327 //-----------------------------------------------------------------------
4365 int unsetInternWatch( Communicator * pCommunicator,
4366 NUM_PTR ipCallBack,
4367 unsigned long ulClassID,
4368 TdWatchNotifyMode tdWatchNotifyMode,
4369 bool bSimulate = false );
4370 //-----------------------------------------------------------------------
4371 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
4372 // Is a reference to the GlobalObjects documentation.
4373 //-----------------------------------------------------------------------
4416 int unsetInternWatch( Communicator * pCommunicator,
4417 NUM_PTR ipCallBack,
4418 const ObjID & rObjID,
4419 TdWatchNotifyMode tdWatchNotifyMode,
4420 EnDeepMode eDeepMode,
4421 bool bSimulate = false );
4422 //-----------------------------------------------------------------------
4459 int unsetInternWatch( Communicator * pCommunicator,
4460 NUM_PTR ipCallBack,
4461 TdWatchNotifyMode tdWatchNotifyMode,
4462 bool bSimulate = false);
4463 //-----------------------------------------------------------------------
4464
4465 //============== statische Hilfs-Methoden
4466 //-----------------------------------------------------------------------
4480 static void insertAction( CommunicatorCallBackIndex * pCommunicatorCallBackIndex,
4481 std::list< CommunicatorCallBackIndex * > & rActionList );
4482 //-----------------------------------------------------------------------
4496 static void removeAction( CommunicatorCallBackIndex * pCommunicatorCallBackIndex,
4497 std::list< CommunicatorCallBackIndex * > & rActionList );
4498 //-----------------------------------------------------------------------
4499
4500 //============== Methoden
4501 //-----------------------------------------------------------------------
4522 const WatchSpecification & rWatchSpecification,
4523 std::list< Manager::ObjIdWithDepends * > & rInputList );
4524 //-----------------------------------------------------------------------
4547 const WatchSpecification & rWatchSpecification,
4548 std::list< ObjID > & rInputList );
4549 //-----------------------------------------------------------------------
4578 int processWatch( const std::string & rsSchemaName,
4579 Communicator * pCommunicator,
4580 OrderMsg::EnOrderType eOrderType,
4581 void * pOrderObject,
4582 void * pAdditionalInfo );
4583 //-----------------------------------------------------------------------
4603 void processWatch( OrderMsg * pOrderMsg );
4604 //-----------------------------------------------------------------------
4634 void processNotify( OrderMsg * pOrderMsg ) const;
4635 //-----------------------------------------------------------------------
4671 void processNotify( OrderMsg * pOrderMsg,
4672 std::list< CommunicatorCallBackIndex * > & rActionList ) const;
4673 //-----------------------------------------------------------------------
4704 //-----------------------------------------------------------------------
4739 void deleteAllAction( Communicator * pCommunicator,
4740 std::list< CommunicatorCallBackIndex * > & rActionList );
4741 //-----------------------------------------------------------------------
4775 bool getClassWatch( ClassWatch *& prClassWatch,
4776 unsigned long ulClassID,
4777 bool bAlsoGenerate );
4778 //-----------------------------------------------------------------------
4792 void removeClassWatch( unsigned long ulClassID );
4793 //-----------------------------------------------------------------------
4794 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
4795 // Is a reference to the GlobalObjects documentation.
4796 //-----------------------------------------------------------------------
4839 NUM_PTR ipCallBack,
4840 std::stack< ObjID > & rDependObjIdStack,
4841 TdWatchNotifyMode tdWatchNotifyMode,
4842 bool bSimulate );
4843 //-----------------------------------------------------------------------
4844
4845 //========== Die Thread-Methoden ========
4846 //-----------------------------------------------------------------------
4861 virtual void work() override;
4862 //-----------------------------------------------------------------------
4863
4864 private:
4865 //============== Operatoren
4866 //-----------------------------------------------------------------------
4877 //-----------------------------------------------------------------------
4878 };
4879 //---------------------------------------------------------------------------
4880} // namespace glo
4881#endif
Header for EuEndlessPThread
Header for RepeatingThread
Header for Manager Manager::Receiver Manager::ObjIdWithDepends Manager::SchemaMapItem
Header for ObjID
For each library, here 'GlobalObjects' there is a type file.
#define __glo_export_dll
Definition GloTypes.h:70
Header for WatchSpecification
Base class for a thread that executes its work endlessly until aborted.
Definition EuEndlessPThread.h:84
Is a mutex which can be queried via its lock mode. See isLocked().
Definition EuPCriticalSection.h:104
Is a mutex which can be queried via its lock mode. See isLocked().
Definition EuCriticalSection.h:109
Base class for a thread that executes its work endlessly until aborted.
Definition EuRepeatingThread.h:93
Superclass of LocalThread, ClientThread and ServerThread, because they can act as senders and receive...
Definition GloCommunicator.h:93
The object of this class is the central point of contact for actions that deal with GlobalObjects dat...
Definition GloManager.h:193
An object ID consists of the class ID, a database ID and the actual unique object number (all unsigne...
Definition GloObjID.h:84
This class is used to handle the communication between the application that uses GlobalObjects and Gl...
Definition GloOrderMsg.h:84
EnOrderType
Definition GloOrderMsg.h:105
Objects of this class transport the data from the tables into the persistent object and from these ag...
Definition GloRecord.h:108
Monitoring class for AllSets.
Definition GloWatchNotifyManager.h:3088
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode)
unsigned long getClassID() const
std::unordered_map< CommunicatorCallBackIndex, CommunicatorClassNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction > m_CommunicatorClassNotifyModesMap
Definition GloWatchNotifyManager.h:3115
ClassWatch(unsigned long ulClassID)
unsigned long m_ulClassID
Definition GloWatchNotifyManager.h:3101
std::size_t getObjectWatchMapCount() const
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, const ObjID &rObjID, std::stack< ObjID > *&prWNM_WriteDependObjIdStack, std::stack< ObjID > *&prWNM_DeleteDependObjIdStack, std::stack< ObjID > *&prWNM_LockDependObjIdStack, std::stack< ObjID > *&prWNM_UnlockDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, bool bSimulate=false)
std::unordered_map< ObjID, ObjectWatch *, glo::ObjID::HashFunction > m_ObjectWatchMap
Definition GloWatchNotifyManager.h:3126
void deleteAllWatches(Communicator *pCommunicator)
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, const ObjID &rObjID, std::stack< ObjID > *pDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode)
std::size_t getCommunicatorClassNotifyModesMapCount() const
Monitoring class for client logins and logouts.
Definition GloWatchNotifyManager.h:3453
std::unordered_map< CommunicatorCallBackIndex, CommunicatorClientNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction > m_CommunicatorClientNotifyModesMap
Definition GloWatchNotifyManager.h:3469
void deleteAllWatches(Communicator *pCommunicator)
std::size_t getCommunicatorClientNotifyModesMapCount() const
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode)
Is a unique index for maps of CommunicatorClassNotifyModes and as index for the static action lists.
Definition GloWatchNotifyManager.h:1154
bool operator>(const CommunicatorCallBackClassIndex &rT) const
Comparison operator.
CommunicatorCallBackClassIndex(Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID)
bool operator==(const CommunicatorCallBackClassIndex &rT) const
Comparison operator.
bool operator<=(const CommunicatorCallBackClassIndex &rT) const
Comparison operator.
bool operator!=(const CommunicatorCallBackClassIndex &rT) const
Comparison operator.
bool operator>=(const CommunicatorCallBackClassIndex &rT) const
Comparison operator.
unsigned long m_ulClassID
Definition GloWatchNotifyManager.h:1167
CommunicatorCallBackClassIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
bool operator<(const CommunicatorCallBackClassIndex &rT) const
Comparison operator.
WatchNotifyManager::CommunicatorCallBackClassIndex & operator=(const CommunicatorCallBackClassIndex &rT)
CommunicatorCallBackClassIndex(const CommunicatorCallBackClassIndex &rT)
Is a unique index for maps of CommunicatorClientNotifyModes and as index for the static action lists.
Definition GloWatchNotifyManager.h:1498
CommunicatorCallBackClientIndex(const CommunicatorCallBackClientIndex &rT)
bool operator>=(const CommunicatorCallBackClientIndex &rT) const
Comparison operator.
WatchNotifyManager::CommunicatorCallBackClientIndex & operator=(const CommunicatorCallBackClientIndex &rT)
CommunicatorCallBackClientIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
bool operator<=(const CommunicatorCallBackClientIndex &rT) const
Comparison operator.
bool operator!=(const CommunicatorCallBackClientIndex &rT) const
Comparison operator.
bool operator==(const CommunicatorCallBackClientIndex &rT) const
Comparison operator.
bool operator<(const CommunicatorCallBackClientIndex &rT) const
Comparison operator.
bool operator>(const CommunicatorCallBackClientIndex &rT) const
Comparison operator.
Base class of a unique index for maps of derived classes of CommunicatorNotifyModes and as index for ...
Definition GloWatchNotifyManager.h:952
WatchNotifyManager::CommunicatorCallBackIndex & operator=(const CommunicatorCallBackIndex &rT)
bool operator<(const CommunicatorCallBackIndex &rT) const
Comparison operator.
CommunicatorCallBackIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
bool operator>(const CommunicatorCallBackIndex &rT) const
Comparison operator.
bool operator!=(const CommunicatorCallBackIndex &rT) const
Comparison operator.
NUM_PTR m_npCallBack
Definition GloWatchNotifyManager.h:978
bool operator>=(const CommunicatorCallBackIndex &rT) const
Comparison operator.
bool operator<=(const CommunicatorCallBackIndex &rT) const
Comparison operator.
Communicator * m_pCommunicator
Definition GloWatchNotifyManager.h:965
CommunicatorCallBackIndex(const CommunicatorCallBackIndex &rT)
bool operator==(const CommunicatorCallBackIndex &rT) const
Comparison operator.
Is a unique index for maps from CommunicatorCallBackIndexReadWriteIndex and as index for the static a...
Definition GloWatchNotifyManager.h:1618
bool operator<(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Comparison operator.
bool operator!=(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Comparison operator.
CommunicatorCallBackIndexReadWriteIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
CommunicatorCallBackIndexReadWriteIndex(const CommunicatorCallBackIndexReadWriteIndex &rT)
bool operator==(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Comparison operator.
WatchNotifyManager::CommunicatorCallBackIndexReadWriteIndex & operator=(const CommunicatorCallBackIndexReadWriteIndex &rT)
bool operator>=(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Comparison operator.
bool operator<=(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Comparison operator.
bool operator>(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Comparison operator.
Is a unique index for maps of CommunicatorObjNotifyModes and as index for the static action lists.
Definition GloWatchNotifyManager.h:1326
bool operator>=(const CommunicatorCallBackObjIndex &rT) const
Comparison operator.
bool operator!=(const CommunicatorCallBackObjIndex &rT) const
Comparison operator.
ObjID m_ObjID
Definition GloWatchNotifyManager.h:1339
bool operator<(const CommunicatorCallBackObjIndex &rT) const
Comparison operator.
CommunicatorCallBackObjIndex(Communicator *pCommunicator, NUM_PTR ipCallBack, const ObjID &rObjID)
CommunicatorCallBackObjIndex(const CommunicatorCallBackObjIndex &rT)
WatchNotifyManager::CommunicatorCallBackObjIndex & operator=(const CommunicatorCallBackObjIndex &rT)
bool operator>(const CommunicatorCallBackObjIndex &rT) const
Comparison operator.
bool operator==(const CommunicatorCallBackObjIndex &rT) const
Comparison operator.
bool operator<=(const CommunicatorCallBackObjIndex &rT) const
Comparison operator.
CommunicatorCallBackObjIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
Monitoring or notification mode of AllSets.
Definition GloWatchNotifyManager.h:1874
int unsetWatch(TdWatchNotifyMode tdWatchNotifyMode, unsigned long ulClassID, bool bSimulate=false)
int m_iWNM_LOCK
Definition GloWatchNotifyManager.h:1909
CommunicatorClassNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int m_iWNM_INSERT
Definition GloWatchNotifyManager.h:1931
void setWatch(TdWatchNotifyMode tdWatchNotifyMode, unsigned long ulClassID)
int m_iWNM_WRITE
Definition GloWatchNotifyManager.h:1887
int m_iWNM_DELETE
Definition GloWatchNotifyManager.h:1898
int m_iWNM_UNLOCK
Definition GloWatchNotifyManager.h:1920
Monitoring or notification mode of client logins and logouts.
Definition GloWatchNotifyManager.h:2495
int unsetWatch(TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
int m_iWNM_CLIENT_CLOSE_BASE
Definition GloWatchNotifyManager.h:2541
int m_iWNM_CLIENT_CONNECT_SERVER
Definition GloWatchNotifyManager.h:2508
CommunicatorClientNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int m_iWNM_CLIENT_DISCONNECT_SERVER
Definition GloWatchNotifyManager.h:2519
int m_iWNM_CLIENT_OPEN_BASE
Definition GloWatchNotifyManager.h:2530
void setWatch(TdWatchNotifyMode tdWatchNotifyMode)
Monitoring or notification mode for read index, write index and reindex actions of the database
Definition GloWatchNotifyManager.h:2672
int m_iWNM_INDEX_REINDEX
Definition GloWatchNotifyManager.h:2707
void setWatch(TdWatchNotifyMode tdWatchNotifyMode)
CommunicatorIndexReadWriteNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int unsetWatch(TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
int m_iWNM_INDEX_WRITE
Definition GloWatchNotifyManager.h:2696
int m_iWNM_INDEX_READ
Definition GloWatchNotifyManager.h:2685
Basic class of the individual monitoring or notification modes.
Definition GloWatchNotifyManager.h:1736
CommunicatorCallBackIndex m_CommunicatorCallBackIndex
Definition GloWatchNotifyManager.h:1749
WatchNotifyManager::CommunicatorCallBackIndex & getCommunicatorCallBackIndex()
CommunicatorNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
Monitoring or notification mode of objects with their dependent objects. Dependent objects are the em...
Definition GloWatchNotifyManager.h:2073
void setWatch(std::stack< ObjID > *pDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, const ObjID &rObjID)
std::list< DependentObjsWithDeepMode * > m_WNM_LOCK
Definition GloWatchNotifyManager.h:2122
std::list< DependentObjsWithDeepMode * > m_WNM_UNLOCK
Definition GloWatchNotifyManager.h:2138
bool m_bCopyDependObjIdStack
Definition GloWatchNotifyManager.h:2149
int setUnsetWatch(TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, std::stack< ObjID > *&prWNM_WriteDependObjIdStack, std::stack< ObjID > *&prWNM_DeleteDependObjIdStack, std::stack< ObjID > *&prWNM_LockDependObjIdStack, std::stack< ObjID > *&prWNM_UnlockDependObjIdStack, std::stack< ObjID > *pDependObjIdStack, const ObjID &rObjID, bool bSimulate=false)
std::list< DependentObjsWithDeepMode * > m_WNM_WRITE
Definition GloWatchNotifyManager.h:2090
std::list< DependentObjsWithDeepMode * > m_WNM_DELETE
Definition GloWatchNotifyManager.h:2106
CommunicatorObjNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int unsetWatch(std::stack< ObjID > *&prWNM_WriteDependObjIdStack, std::stack< ObjID > *&prWNM_DeleteDependObjIdStack, std::stack< ObjID > *&prWNM_LockDependObjIdStack, std::stack< ObjID > *&prWNM_UnlockDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, const ObjID &rObjID, bool bSimulate=false)
void clearList(std::list< DependentObjsWithDeepMode * > *pList)
int setWatchCount(std::list< DependentObjsWithDeepMode * > &rWatchCountList, std::stack< ObjID > *&prDependObjIdStack, std::stack< ObjID > *pDependObjIdStack, EnDeepMode eDeepMode, const ObjID &rObjID, std::list< CommunicatorCallBackIndex * > &rActionList, bool bSimulate=false)
Monitoring class for read-index, write-index and reindex actions of the database.
Definition GloWatchNotifyManager.h:3630
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode)
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
std::size_t getCommunicatorIndexReadWriteNotifyModesMapCount() const
void deleteAllWatches(Communicator *pCommunicator)
std::unordered_map< CommunicatorCallBackIndex, CommunicatorIndexReadWriteNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction > m_CommunicatorIndexReadWriteNotifyModesMap
Definition GloWatchNotifyManager.h:3648
Is used for notifying information about clients in a job to the WatchNotifyManager.
Definition GloWatchNotifyManager.h:602
std::string m_strIPAdress
Definition GloWatchNotifyManager.h:648
WatchNotifyManager::NotifyClientInfo & operator=(const NotifyClientInfo &rT)
unsigned int m_uiClientID
Definition GloWatchNotifyManager.h:626
SOCKET m_nSocket
Definition GloWatchNotifyManager.h:615
NotifyClientInfo(TdWatchNotifyMode ulNotifyMode, SOCKET nSocket, unsigned int uiClientID, const std::string &rstrClientName, const std::string &rstrIPAdress, const std::string &rstrBaseName)
std::string m_strClientName
Definition GloWatchNotifyManager.h:637
NotifyClientInfo(const NotifyClientInfo &rT)
std::string m_strBaseName
Definition GloWatchNotifyManager.h:659
NotifyClientInfo(TdWatchNotifyMode ulNotifyMode)
Is used for Notify-Infos to monitor the reading, writing and reindexing of the indexes in an order to...
Definition GloWatchNotifyManager.h:782
int m_iFraction
Definition GloWatchNotifyManager.h:819
std::string m_sSchemaName
Definition GloWatchNotifyManager.h:795
WatchNotifyManager::NotifyIndexReadWriteInfo & operator=(const NotifyIndexReadWriteInfo &rT)
int m_iActions
Definition GloWatchNotifyManager.h:830
NotifyIndexReadWriteInfo(TdWatchNotifyMode ulNotifyMode)
NotifyIndexReadWriteInfo(TdWatchNotifyMode ulNotifyMode, const std::string &rsSchemaName, const ObjID &rObjID, int iFraction, int iActions)
ObjID m_ObjID
Definition GloWatchNotifyManager.h:808
NotifyIndexReadWriteInfo(const NotifyIndexReadWriteInfo &rT)
Base class for different Notify-Infos, which are used in a order to the WatchNotifyManager.
Definition GloWatchNotifyManager.h:372
NotifyInfo(TdWatchNotifyMode ulNotifyMode)
WatchNotifyManager::NotifyInfo & operator=(const NotifyInfo &rT)
NotifyInfo(const NotifyInfo &rT)
TdWatchNotifyMode m_ulNotifyMode
Definition GloWatchNotifyManager.h:385
Is used for notifying information about objects in an order to the WatchNotifyManager.
Definition GloWatchNotifyManager.h:478
NotifyObjInfo(const NotifyObjInfo &rT)
ObjID m_ObjID
Definition GloWatchNotifyManager.h:494
NotifyObjInfo(TdWatchNotifyMode ulNotifyMode)
NotifyObjInfo(TdWatchNotifyMode ulNotifyMode, const ObjID &rObjID)
WatchNotifyManager::NotifyObjInfo & operator=(const NotifyObjInfo &rT)
Monitoring class for objects.
Definition GloWatchNotifyManager.h:2834
ObjID m_ObjID
Definition GloWatchNotifyManager.h:2847
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, std::stack< ObjID > *pDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode)
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, std::stack< ObjID > *&prWNM_WriteDependObjIdStack, std::stack< ObjID > *&prWNM_DeleteDependObjIdStack, std::stack< ObjID > *&prWNM_LockDependObjIdStack, std::stack< ObjID > *&prWNM_UnlockDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, bool bSimulate=false)
void deleteAllWatches(Communicator *pCommunicator)
std::unordered_map< CommunicatorCallBackIndex, CommunicatorObjNotifyModes *, glo::WatchNotifyManager::CommunicatorCallBackIndex::HashFunction > m_CommunicatorObjNotifyModesMap
Definition GloWatchNotifyManager.h:2861
Classes to monitor persistent objects and to notify the respective clients of changes.
Definition GloWatchNotifyManager.h:352
IndexReadWriteWatch m_IndexReadWriteWatch
Definition GloWatchNotifyManager.h:4032
int m_iWNM_INSERT
To increase performance, the individual monitorings are counted.
Definition GloWatchNotifyManager.h:4063
int setInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID, TdWatchNotifyMode tdWatchNotifyMode)
void deleteCommunicatorWatches(Communicator *pCommunicator)
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_DELETE_List
Definition GloWatchNotifyManager.h:3824
bool hasObjectWatching(TdWatchNotifyMode tdWatchNotifyMode) const
WatchNotifyManager(const WatchNotifyManager &)
int m_iWNM_DELETE
To increase performance, the individual monitorings are counted.
Definition GloWatchNotifyManager.h:4060
int setInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, const ObjID &rObjID, std::map< ObjID, Record *, std::less< ObjID > > &rDependObjectsMap, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode)
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_INDEX_WRITE_List
Definition GloWatchNotifyManager.h:3950
int m_iWNM_WRITE
To increase performance, the individual monitorings are counted.
Definition GloWatchNotifyManager.h:4059
static void insertAction(CommunicatorCallBackIndex *pCommunicatorCallBackIndex, std::list< CommunicatorCallBackIndex * > &rActionList)
int processWatch(const std::string &rsSchemaName, Communicator *pCommunicator, OrderMsg::EnOrderType eOrderType, void *pOrderObject, void *pAdditionalInfo)
void processWatch(OrderMsg *pOrderMsg)
std::queue< OrderMsg * > m_MsgQueue
Definition GloWatchNotifyManager.h:4043
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_LOCK_List
Definition GloWatchNotifyManager.h:3838
void deleteCommunicatorWatches(OrderMsg *pOrderMsg)
int unsetInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, const ObjID &rObjID, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, bool bSimulate=false)
eut::CriticalSection m_ExclusiveProcessingSection
Definition GloWatchNotifyManager.h:3986
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_WRITE_List
Definition GloWatchNotifyManager.h:3810
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_CLOSEBASE_List
Definition GloWatchNotifyManager.h:3922
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_INDEX_REINDEX_List
Definition GloWatchNotifyManager.h:3964
int unsetInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
int processObjectSetWatch(Communicator *pCommunicator, const WatchSpecification &rWatchSpecification, std::list< Manager::ObjIdWithDepends * > &rInputList)
int setInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, TdWatchNotifyMode tdWatchNotifyMode)
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_INDEX_READ_List
Definition GloWatchNotifyManager.h:3936
void processNotify(OrderMsg *pOrderMsg, std::list< CommunicatorCallBackIndex * > &rActionList) const
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_DISCONNECTSERVER_List
Definition GloWatchNotifyManager.h:3894
ClientWatch m_ClientWatch
Definition GloWatchNotifyManager.h:4020
void takeOrder(OrderMsg *pOrderMsg)
void removeClassWatch(unsigned long ulClassID)
WatchNotifyManager & operator=(const WatchNotifyManager &)
WatchNotifyManager(Manager *pMyDBManager)
static void removeAction(CommunicatorCallBackIndex *pCommunicatorCallBackIndex, std::list< CommunicatorCallBackIndex * > &rActionList)
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_CONNECTSERVER_List
Definition GloWatchNotifyManager.h:3880
int unsetInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
int m_iWNM_LOCK
To increase performance, the individual monitorings are counted.
Definition GloWatchNotifyManager.h:4061
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_OPENBASE_List
Definition GloWatchNotifyManager.h:3908
Manager * m_pMyDBManager
Definition GloWatchNotifyManager.h:3998
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_UNLOCK_List
Definition GloWatchNotifyManager.h:3852
virtual void cancel() override
int processObjectUnsetWatch(Communicator *pCommunicator, const WatchSpecification &rWatchSpecification, std::list< ObjID > &rInputList)
void processNotify(OrderMsg *pOrderMsg) const
int m_iWNM_UNLOCK
To increase performance, the individual monitorings are counted.
Definition GloWatchNotifyManager.h:4062
void deleteAllAction(Communicator *pCommunicator, std::list< CommunicatorCallBackIndex * > &rActionList)
bool getClassWatch(ClassWatch *&prClassWatch, unsigned long ulClassID, bool bAlsoGenerate)
int unsetWatchDependObjects(Communicator *pCommunicator, NUM_PTR ipCallBack, std::stack< ObjID > &rDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate)
virtual void work() override
std::unordered_map< unsigned long, ClassWatch * > m_ClassWatchMap
Definition GloWatchNotifyManager.h:4009
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_INSERT_List
Definition GloWatchNotifyManager.h:3866
To be able to watch objects, the 'watching mode', the 'watching depth' and the 'notification object' ...
Definition GloWatchSpecification.h:67
Definition GloAbstractBaseLot.h:49
EnDeepMode
Definition GloTypes.h:254
unsigned long TdWatchNotifyMode
Definition GloTypes.h:558
size_t operator()(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex) const