GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloWatchNotifyManager.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_GLOWATCHNOTIFYMANAGER_H
2#define INC_GLOWATCHNOTIFYMANAGER_H
3//-----------------------------------------------------------------------------
51//-----------------------------------------------------------------------------
52#include <list>
53#include <map>
54#include <queue>
55#include "GloTypes.h"
56#include "GloManager.h"
57#include "GloObjID.h"
59#if defined (__PTHREADS)
60 #include <EuEndlessPThread.h>
61 #include <semaphore.h>
62#else
63 #include "EuRepeatingThread.h"
64#endif
65//-----------------------------------------------------------------------------
66namespace glo
67{
68 //---------------------------------------------------------------------------
69 /* Forwards */
70 class OrderMsg;
71 class Communicator;
72 class Record;
73 //---------------------------------------------------------------------------
74 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
75 // Is a reference to the GlobalObjects documentation.
76 //---------------------------------------------------------------------------
339 #if defined (__PTHREADS)
340 class WatchNotifyManager : public EuEndlessPThread
341 #else
343 #endif
344 {
345 public:
346 //-----------------------------------------------------------------------
347 // >>>>>>>>>>>>>>>>>>>>>>>> NotifyInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
348 //-----------------------------------------------------------------------
364 {
365 public:
366 //============== Attribute
367 //-------------------------------------------------------------------
378 //-------------------------------------------------------------------
379
380 //============= De- und Konstruktoren
381 //-------------------------------------------------------------------
392 //-------------------------------------------------------------------
405 //-------------------------------------------------------------------
417 NotifyInfo (const NotifyInfo & rT);
418 //-------------------------------------------------------------------
428 virtual ~NotifyInfo ();
429 //-------------------------------------------------------------------
430
431 //============== Operatoren
432 //-------------------------------------------------------------------
445 //-------------------------------------------------------------------
446 };
447 //-----------------------------------------------------------------------
448 // <<<<<<<<<<<<<<<<<<<<<<<<<<< NotifyInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
449 //-----------------------------------------------------------------------
450
451
452 //-----------------------------------------------------------------------
453 // >>>>>>>>>>>>>>>>>>>>>>> NotifyObjInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
454 //-----------------------------------------------------------------------
470 {
471 public:
472 //============== Attribute
473 //-------------------------------------------------------------------
487 //-------------------------------------------------------------------
488
489 //============= De- und Konstruktoren
490 //-------------------------------------------------------------------
501 //-------------------------------------------------------------------
514 //-------------------------------------------------------------------
530 NotifyObjInfo( TdWatchNotifyMode ulNotifyMode, const ObjID & rObjID );
531 //-------------------------------------------------------------------
544 //-------------------------------------------------------------------
554 virtual ~NotifyObjInfo();
555 //-------------------------------------------------------------------
556
557 //============== Operatoren
558 //-------------------------------------------------------------------
571 //-------------------------------------------------------------------
572 };
573 //-----------------------------------------------------------------------
574 // <<<<<<<<<<<<<<<<<<<<<<<< NotifyObjInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
575 //-----------------------------------------------------------------------
576
577 //-----------------------------------------------------------------------
578 // >>>>>>>>>>>>>>>>>>>>>> NotifyClientInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
579 //-----------------------------------------------------------------------
594 {
595 public:
596 //============== Attribute
597 //-------------------------------------------------------------------
607 SOCKET m_nSocket;
608 //-------------------------------------------------------------------
618 unsigned int m_uiClientID;
619 //-------------------------------------------------------------------
629 std::string m_strClientName;
630 //-------------------------------------------------------------------
640 std::string m_strIPAdress;
641 //-------------------------------------------------------------------
651 std::string m_strBaseName;
652 //-------------------------------------------------------------------
653
654 //============= De- und Konstruktoren
655 //-------------------------------------------------------------------
666 //-------------------------------------------------------------------
679 //-------------------------------------------------------------------
704 SOCKET nSocket,
705 unsigned int uiClientID,
706 const std::string & rstrClientName,
707 const std::string & rstrIPAdress,
708 const std::string & rstrBaseName );
709 //-------------------------------------------------------------------
722 //-------------------------------------------------------------------
733 //-------------------------------------------------------------------
734
735 //============== Operatoren
736 //-------------------------------------------------------------------
749 //-------------------------------------------------------------------
750 };
751 //-----------------------------------------------------------------------
752 // <<<<<<<<<<<<<<<<<<<<<< NotifyClientInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
753 //-----------------------------------------------------------------------
754
755 //-----------------------------------------------------------------------
756 // >>>>>>>>>>>>>>>>> NotifyIndexReadWriteInfo >>>>>>>>>>>>>>>>>>>>>>>>>>>
757 //-----------------------------------------------------------------------
774 {
775 public:
776 //============== Attribute
777 //-------------------------------------------------------------------
787 std::string m_sSchemaName;
788 //-------------------------------------------------------------------
801 //-------------------------------------------------------------------
812 //-------------------------------------------------------------------
823 //-------------------------------------------------------------------
824
825 //============= De- und Konstruktoren
826 //-------------------------------------------------------------------
837 //-------------------------------------------------------------------
850 //-------------------------------------------------------------------
875 const std::string & rsSchemaName,
876 const ObjID & rObjID,
877 int iFraction,
878 int iActions );
879 //-------------------------------------------------------------------
892 //-------------------------------------------------------------------
903 //-------------------------------------------------------------------
904
905 //============== Operatoren
906 //-------------------------------------------------------------------
919 //-------------------------------------------------------------------
920 };
921 //-----------------------------------------------------------------------
922 // <<<<<<<<<<<<<<<<< NotifyIndexReadWriteInfo <<<<<<<<<<<<<<<<<<<<<<<<<<<
923 //-----------------------------------------------------------------------
924
925 private:
926 //-----------------------------------------------------------------------
927 // >>>>>>>>>>>>>>>>> CommunicatorCallBackIndex >>>>>>>>>>>>>>>>>>>>>>>>>>
928 //-----------------------------------------------------------------------
944 {
945 private:
946 //============== Attribute
947 //-------------------------------------------------------------------
958 //-------------------------------------------------------------------
971 //-------------------------------------------------------------------
972
973 protected:
974 //============= Konstruktor
975 //-------------------------------------------------------------------
986 //-------------------------------------------------------------------
987
988 public:
989 //============= De- und Konstruktoren
990 //-------------------------------------------------------------------
1007 NUM_PTR ipCallBack );
1008 //-------------------------------------------------------------------
1021 //-------------------------------------------------------------------
1032 //-------------------------------------------------------------------
1033
1034 //============== Methoden
1035 //-------------------------------------------------------------------
1048 //-------------------------------------------------------------------
1062 //-------------------------------------------------------------------
1063
1064 //============== Operatoren
1065 //-------------------------------------------------------------------
1067
1078 bool operator== ( const CommunicatorCallBackIndex & rT ) const;
1079 bool operator!= ( const CommunicatorCallBackIndex & rT ) const;
1080 bool operator> ( const CommunicatorCallBackIndex & rT ) const;
1081 bool operator>= ( const CommunicatorCallBackIndex & rT ) const;
1082 bool operator< ( const CommunicatorCallBackIndex & rT ) const;
1083 bool operator<= ( const CommunicatorCallBackIndex & rT ) const;
1085 //-------------------------------------------------------------------
1098 //-------------------------------------------------------------------
1099 };
1100 //-----------------------------------------------------------------------
1101 // <<<<<<<<<<<<<<<<<<< CommunicatorCallBackIndex <<<<<<<<<<<<<<<<<<<<<<<<
1102 //-----------------------------------------------------------------------
1103
1104 //-----------------------------------------------------------------------
1105 // >>>>>>>>>>>>>>>> CommunicatorCallBackClassIndex >>>>>>>>>>>>>>>>>>>>>>
1106 //-----------------------------------------------------------------------
1122 {
1123 private:
1124 //============== Attribute
1125 //-------------------------------------------------------------------
1135 unsigned long m_ulClassID;
1136 //-------------------------------------------------------------------
1137
1138 protected:
1139 //============= Konstruktor
1140 //-------------------------------------------------------------------
1151 //-------------------------------------------------------------------
1152
1153 public:
1154 //============= De- und Konstruktoren
1155 //-------------------------------------------------------------------
1172 NUM_PTR ipCallBack );
1173 //-------------------------------------------------------------------
1192 NUM_PTR ipCallBack,
1193 unsigned long ulClassID );
1194 //-------------------------------------------------------------------
1207 //-------------------------------------------------------------------
1218 //-------------------------------------------------------------------
1219
1220 //============== Methoden
1221 //-------------------------------------------------------------------
1233 unsigned long getClassID();
1234 //-------------------------------------------------------------------
1235
1236 //============== Operatoren
1237 //-------------------------------------------------------------------
1239
1257 //-------------------------------------------------------------------
1270 //-------------------------------------------------------------------
1271 };
1272 //-----------------------------------------------------------------------
1273 // <<<<<<<<<<<<<<< CommunicatorCallBackClassIndex <<<<<<<<<<<<<<<<<<<<<<<
1274 //-----------------------------------------------------------------------
1275
1276 //-----------------------------------------------------------------------
1277 // >>>>>>>>>>>>>>> CommunicatorCallBackObjIndex >>>>>>>>>>>>>>>>>>>>>>>>>
1278 //-----------------------------------------------------------------------
1294 {
1295 private:
1296 //============== Attribute
1297 //-------------------------------------------------------------------
1308 //-------------------------------------------------------------------
1309
1310 protected:
1311 //============= Konstruktor
1312 //-------------------------------------------------------------------
1323 //-------------------------------------------------------------------
1324
1325 public:
1326 //============= De- und Konstruktoren
1327 //-------------------------------------------------------------------
1344 NUM_PTR ipCallBack );
1345 //-------------------------------------------------------------------
1364 NUM_PTR ipCallBack,
1365 const ObjID & rObjID );
1366 //-------------------------------------------------------------------
1379 //-------------------------------------------------------------------
1390 //-------------------------------------------------------------------
1391
1392 //============== Methoden
1393 //-------------------------------------------------------------------
1406 //-------------------------------------------------------------------
1407
1408 //============== Operatoren
1409 //-------------------------------------------------------------------
1411
1429 //-------------------------------------------------------------------
1442 //-------------------------------------------------------------------
1443 };
1444 //-----------------------------------------------------------------------
1445 // <<<<<<<<<<<<<<< CommunicatorCallBackObjIndex <<<<<<<<<<<<<<<<<<<<<<<<<
1446 //-----------------------------------------------------------------------
1447
1448 //-----------------------------------------------------------------------
1449 // >>>>>>>>>>>>> CommunicatorCallBackClientIndex >>>>>>>>>>>>>>>>>>>>>>>>
1450 //-----------------------------------------------------------------------
1466 {
1467 protected:
1468 //============= Konstruktor
1469 //-------------------------------------------------------------------
1480 //-------------------------------------------------------------------
1481
1482 public:
1483 //============= De- und Konstruktoren
1484 //-------------------------------------------------------------------
1501 NUM_PTR ipCallBack );
1502 //-------------------------------------------------------------------
1515 //-------------------------------------------------------------------
1526 //-------------------------------------------------------------------
1527
1528 //============== Operatoren
1529 //-------------------------------------------------------------------
1531
1549 //-------------------------------------------------------------------
1562 //-------------------------------------------------------------------
1563 };
1564 //-----------------------------------------------------------------------
1565 // <<<<<<<<<<<<<<<< CommunicatorCallBackClientIndex <<<<<<<<<<<<<<<<<<<<<
1566 //-----------------------------------------------------------------------
1567
1568 //-----------------------------------------------------------------------
1569 // >>>>>>>>>>>>>> CommunicatorCallBackIndexReadWriteIndex >>>>>>>>>>>>>>>
1570 //-----------------------------------------------------------------------
1586 {
1587 protected:
1588 //============= Konstruktor
1589 //-------------------------------------------------------------------
1600 //-------------------------------------------------------------------
1601
1602 public:
1603 //============= De- und Konstruktoren
1604 //-------------------------------------------------------------------
1621 NUM_PTR ipCallBack );
1622 //-------------------------------------------------------------------
1635 //-------------------------------------------------------------------
1646 //-------------------------------------------------------------------
1647
1648 //============== Operatoren
1649 //-------------------------------------------------------------------
1651
1669 //-------------------------------------------------------------------
1682 //-------------------------------------------------------------------
1683 };
1684 //-----------------------------------------------------------------------
1685 // <<<<<<<<<<<<< CommunicatorCallBackIndexReadWriteIndex <<<<<<<<<<<<<<<<
1686 //-----------------------------------------------------------------------
1687
1688 //-----------------------------------------------------------------------
1689 // >>>>>>>>>>>>>>>>>> CommunicatorNotifyModes >>>>>>>>>>>>>>>>>>>>>>>>>>>
1690 //-----------------------------------------------------------------------
1704 {
1705 private:
1706 //============== Attribute
1707 //-------------------------------------------------------------------
1718 //-------------------------------------------------------------------
1719
1720 protected:
1721 //============= Konstruktor
1722 //-------------------------------------------------------------------
1733 //-------------------------------------------------------------------
1734
1735 public:
1736 //============= De- und Konstruktoren
1737 //-------------------------------------------------------------------
1749 CommunicatorNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
1750 //-------------------------------------------------------------------
1761 //-------------------------------------------------------------------
1762
1763 //============== Methoden
1764 //-------------------------------------------------------------------
1776 virtual bool hasWatches() const = 0;
1777 //-------------------------------------------------------------------
1791 //-------------------------------------------------------------------
1807 //-------------------------------------------------------------------
1820 //-------------------------------------------------------------------
1821 };
1822 //-----------------------------------------------------------------------
1823 // <<<<<<<<<<<<<<<<<<< CommunicatorNotifyModes <<<<<<<<<<<<<<<<<<<<<<<<<<
1824 //-----------------------------------------------------------------------
1825
1826 //-----------------------------------------------------------------------
1827 // >>>>>>>>>>>>>>>>> CommunicatorClassNotifyModes >>>>>>>>>>>>>>>>>>>>>>>
1828 //-----------------------------------------------------------------------
1842 {
1843 private:
1844 //============== Attribute
1845 //-------------------------------------------------------------------
1856 //-------------------------------------------------------------------
1867 //-------------------------------------------------------------------
1878 //-------------------------------------------------------------------
1889 //-------------------------------------------------------------------
1900 //-------------------------------------------------------------------
1911 //-------------------------------------------------------------------
1912
1913 protected:
1914 //============= Konstruktor
1915 //-------------------------------------------------------------------
1926 //-------------------------------------------------------------------
1927
1928 public:
1929 //============= De- und Konstruktoren
1930 //-------------------------------------------------------------------
1942 CommunicatorClassNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
1943 //-------------------------------------------------------------------
1954 //-------------------------------------------------------------------
1955
1956 //============== Methoden
1957 //-------------------------------------------------------------------
1969 virtual bool hasWatches() const;
1970 //-------------------------------------------------------------------
1986 void setWatch( TdWatchNotifyMode tdWatchNotifyMode,
1987 unsigned long ulClassID );
1988 //-------------------------------------------------------------------
2020 int unsetWatch( TdWatchNotifyMode tdWatchNotifyMode,
2021 unsigned long ulClassID,
2022 bool bSimulate = false );
2023 //-------------------------------------------------------------------
2024 };
2025 //-----------------------------------------------------------------------
2026 // <<<<<<<<<<<<<<<<<<< CommunicatorClassNotifyModes <<<<<<<<<<<<<<<<<<<<<
2027 //-----------------------------------------------------------------------
2028
2029 //-----------------------------------------------------------------------
2030 // >>>>>>>>>>>>>>>>>>>> CommunicatorObjNotifyModes >>>>>>>>>>>>>>>>>>>>>>
2031 //-----------------------------------------------------------------------
2032 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2033 // Is a reference to the GlobalObjects documentation.
2034 //-----------------------------------------------------------------------
2052 {
2053 private:
2054 //============== Attribute
2055 //-------------------------------------------------------------------
2056 //-------------------------------------------------------------------
2057 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2058 // Is a reference to the GlobalObjects documentation.
2070 std::list<DependentObjsWithDeepMode *> m_WNM_READ;
2071 //-------------------------------------------------------------------
2072 //-------------------------------------------------------------------
2073 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2074 // Is a reference to the GlobalObjects documentation.
2086 std::list<DependentObjsWithDeepMode *> m_WNM_WRITE;
2087 //-------------------------------------------------------------------
2088 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2089 // Is a reference to the GlobalObjects documentation.
2090 //-------------------------------------------------------------------
2102 std::list<DependentObjsWithDeepMode *> m_WNM_DELETE;
2103 //-------------------------------------------------------------------
2104 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2105 // Is a reference to the GlobalObjects documentation.
2106 //-------------------------------------------------------------------
2118 std::list<DependentObjsWithDeepMode *> m_WNM_LOCK;
2119 //-------------------------------------------------------------------
2120 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2121 // Is a reference to the GlobalObjects documentation.
2122 //-------------------------------------------------------------------
2134 std::list<DependentObjsWithDeepMode *> m_WNM_UNLOCK;
2135 //-------------------------------------------------------------------
2146 //-------------------------------------------------------------------
2147
2148 protected:
2149 //============= Konstruktor
2150 //-------------------------------------------------------------------
2161 //-------------------------------------------------------------------
2162
2163 public:
2164 //============= De- und Konstruktoren
2165 //-------------------------------------------------------------------
2177 CommunicatorObjNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
2178 //-------------------------------------------------------------------
2189 //-------------------------------------------------------------------
2190
2191 //============== Methoden
2192 //-------------------------------------------------------------------
2204 virtual bool hasWatches() const;
2205 //-------------------------------------------------------------------
2206 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2207 // Is a reference to the GlobalObjects documentation.
2208 //-------------------------------------------------------------------
2230 void setWatch( std::stack< ObjID > * pDependObjIdStack,
2231 TdWatchNotifyMode tdWatchNotifyMode,
2232 EnDeepMode eDeepMode,
2233 const ObjID & rObjID );
2234 //-------------------------------------------------------------------
2235 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2236 // Is a reference to the GlobalObjects documentation.
2237 //-------------------------------------------------------------------
2302 int unsetWatch( std::stack< ObjID > *& prWNM_ReadDependObjIdStack,
2303 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
2304 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
2305 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
2306 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
2307 TdWatchNotifyMode tdWatchNotifyMode,
2308 EnDeepMode eDeepMode,
2309 const ObjID & rObjID,
2310 bool bSimulate = false );
2311 //-------------------------------------------------------------------
2312
2313 protected:
2314 //============== Methoden
2315 //-------------------------------------------------------------------
2316 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2317 // Is a reference to the GlobalObjects documentation.
2318 //-------------------------------------------------------------------
2399 int setUnsetWatch( TdWatchNotifyMode tdWatchNotifyMode,
2400 EnDeepMode eDeepMode,
2401 std::stack< ObjID > *& prWNM_ReadDependObjIdStack,
2402 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
2403 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
2404 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
2405 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
2406 std::stack< ObjID > * pDependObjIdStack,
2407 const ObjID & rObjID,
2408 bool bSimulate = false );
2409 //-------------------------------------------------------------------
2410 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2411 // Is a reference to the GlobalObjects documentation.
2412 //-------------------------------------------------------------------
2456 int setWatchCount( std::list< DependentObjsWithDeepMode * > & rWatchCountList,
2457 std::stack< ObjID > *& prDependObjIdStack,
2458 std::stack< ObjID > * pDependObjIdStack,
2459 EnDeepMode eDeepMode,
2460 const ObjID & rObjID,
2461 std::list< CommunicatorCallBackIndex * > & rActionList,
2462 bool bSimulate = false );
2463 //-------------------------------------------------------------------
2464
2465 private:
2466 //============== Methoden
2467 //-------------------------------------------------------------------
2483 void clearList( std::list< DependentObjsWithDeepMode * > * pList );
2484 //-------------------------------------------------------------------
2485 };
2486 //-----------------------------------------------------------------------
2487 // <<<<<<<<<<<<<<<<<<< CommunicatorObjNotifyModes <<<<<<<<<<<<<<<<<<<<<<<
2488 //-----------------------------------------------------------------------
2489
2490 //-----------------------------------------------------------------------
2491 // >>>>>>>>>>>>>>>>> CommunicatorClientNotifyModes >>>>>>>>>>>>>>>>>>>>>>
2492 //-----------------------------------------------------------------------
2507 {
2508 private:
2509 //============== Attribute
2510 //-------------------------------------------------------------------
2521 //-------------------------------------------------------------------
2532 //-------------------------------------------------------------------
2543 //-------------------------------------------------------------------
2554 //-------------------------------------------------------------------
2555
2556 protected:
2557 //============= Konstruktor
2558 //-------------------------------------------------------------------
2569 //-------------------------------------------------------------------
2570
2571 public:
2572 //============= De- und Konstruktoren
2573 //-------------------------------------------------------------------
2585 CommunicatorClientNotifyModes( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex );
2586 //-------------------------------------------------------------------
2597 //-------------------------------------------------------------------
2598
2599 //============== Methoden
2600 //-------------------------------------------------------------------
2612 virtual bool hasWatches() const;
2613 //-------------------------------------------------------------------
2627 void setWatch( TdWatchNotifyMode tdWatchNotifyMode );
2628 //-------------------------------------------------------------------
2658 int unsetWatch( TdWatchNotifyMode tdWatchNotifyMode,
2659 bool bSimulate = false );
2660 //-------------------------------------------------------------------
2661 };
2662 //-----------------------------------------------------------------------
2663 // <<<<<<<<<<<<<<<<<<<< CommunicatorClientNotifyModes <<<<<<<<<<<<<<<<<<<
2664 //-----------------------------------------------------------------------
2665
2666 //-----------------------------------------------------------------------
2667 // >>>>>>>>>>>>>>> CommunicatorIndexReadWriteNotifyModes >>>>>>>>>>>>>>>>
2668 //-----------------------------------------------------------------------
2684 {
2685 private:
2686 //============== Attribute
2687 //-------------------------------------------------------------------
2698 //-------------------------------------------------------------------
2709 //-------------------------------------------------------------------
2720 //-------------------------------------------------------------------
2721
2722 protected:
2723 //============= Konstruktor
2724 //-------------------------------------------------------------------
2735 //-------------------------------------------------------------------
2736
2737 public:
2738 //============= De- und Konstruktoren
2739 //-------------------------------------------------------------------
2752 //-------------------------------------------------------------------
2763 //-------------------------------------------------------------------
2764
2765 //============== Methoden
2766 //-------------------------------------------------------------------
2778 virtual bool hasWatches() const;
2779 //-------------------------------------------------------------------
2792 void setWatch( TdWatchNotifyMode tdWatchNotifyMode );
2793 //-------------------------------------------------------------------
2823 int unsetWatch( TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate = false );
2824 //-------------------------------------------------------------------
2825 };
2826 //-----------------------------------------------------------------------
2827 // <<<<<<<<<<<<<< CommunicatorIndexReadWriteNotifyModes <<<<<<<<<<<<<<<<<
2828 //-----------------------------------------------------------------------
2829
2830 //-----------------------------------------------------------------------
2831 // >>>>>>>>>>>>>>>>>>>>>>>> ObjectWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2832 //-----------------------------------------------------------------------
2846 {
2847 private:
2848 //============== Attribute
2849 //-------------------------------------------------------------------
2860 //-------------------------------------------------------------------
2872 std::map< CommunicatorCallBackIndex, CommunicatorObjNotifyModes *, std::less<CommunicatorCallBackIndex> > m_CommunicatorObjNotifyModesMap;
2873 //-------------------------------------------------------------------
2874
2875 protected:
2876 //============= Konstruktor
2877 //-------------------------------------------------------------------
2888 //-------------------------------------------------------------------
2889
2890 public:
2891 //============= De- und Konstruktoren
2892 //-------------------------------------------------------------------
2904 ObjectWatch( const ObjID & rObjID );
2905 //-------------------------------------------------------------------
2916 //-------------------------------------------------------------------
2917
2918 //============== Methoden
2919 //-------------------------------------------------------------------
2932 //-------------------------------------------------------------------
2944 bool hasWatches() const;
2945 //-------------------------------------------------------------------
2946 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2947 // Is a reference to the GlobalObjects documentation.
2948 //-------------------------------------------------------------------
2972 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
2973 std::stack< ObjID > * pDependObjIdStack,
2974 TdWatchNotifyMode tdWatchNotifyMode,
2975 EnDeepMode eDeepMode );
2976 //-------------------------------------------------------------------
2977 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
2978 // Is a reference to the GlobalObjects documentation.
2979 //-------------------------------------------------------------------
3046 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3047 std::stack< ObjID > *& prWNM_ReadDependObjIdStack,
3048 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
3049 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
3050 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
3051 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
3052 TdWatchNotifyMode tdWatchNotifyMode,
3053 EnDeepMode eDeepMode,
3054 bool bSimulate = false );
3055 //-------------------------------------------------------------------
3067 void deleteAllWatches( Communicator * pCommunicator );
3068 //-------------------------------------------------------------------
3069
3070 private:
3071 //============== Methoden
3072 //-------------------------------------------------------------------
3083 };
3084 //-----------------------------------------------------------------------
3085 // <<<<<<<<<<<<<<<<<<<<<<<<<< ObjectWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3086 //-----------------------------------------------------------------------
3087
3088 //-----------------------------------------------------------------------
3089 // >>>>>>>>>>>>>>>>>>>>>>>>>> ClassWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3090 //-----------------------------------------------------------------------
3104 {
3105 private:
3106 //============== Attribute
3107 //-------------------------------------------------------------------
3117 unsigned long m_ulClassID;
3118 //-------------------------------------------------------------------
3130 std::map< CommunicatorCallBackIndex, CommunicatorClassNotifyModes *, std::less<CommunicatorCallBackIndex> > m_CommunicatorClassNotifyModesMap;
3131 //-------------------------------------------------------------------
3141 std::map< ObjID, ObjectWatch *, std::less<ObjID> > m_ObjectWatchMap;
3142 //-------------------------------------------------------------------
3143
3144 protected:
3145 //============= Konstruktor
3146 //-------------------------------------------------------------------
3157 //-------------------------------------------------------------------
3158
3159 public:
3160 //============= De- und Konstruktoren
3161 //-------------------------------------------------------------------
3173 ClassWatch( unsigned long ulClassID );
3174 //-------------------------------------------------------------------
3185 //-------------------------------------------------------------------
3186
3187 //============== Methoden
3188 //-------------------------------------------------------------------
3200 unsigned long getClassID() const;
3201 //-------------------------------------------------------------------
3214 //-------------------------------------------------------------------
3226 std::size_t getObjectWatchMapCount() const;
3227 //-------------------------------------------------------------------
3239 bool hasWatches() const;
3240 //-------------------------------------------------------------------
3256 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3257 TdWatchNotifyMode tdWatchNotifyMode );
3258 //-------------------------------------------------------------------
3290 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3291 TdWatchNotifyMode tdWatchNotifyMode,
3292 bool bSimulate = false );
3293 //-------------------------------------------------------------------
3294 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
3295 // Is a reference to the GlobalObjects documentation.
3296 //-------------------------------------------------------------------
3326 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3327 const ObjID & rObjID,
3328 std::stack< ObjID > * pDependObjIdStack,
3329 TdWatchNotifyMode tdWatchNotifyMode,
3330 EnDeepMode eDeepMode);
3331 //-------------------------------------------------------------------
3332 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
3333 // Is a reference to the GlobalObjects documentation.
3334 //-------------------------------------------------------------------
3404 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3405 const ObjID & rObjID,
3406 std::stack< ObjID > *& prWNM_ReadDependObjIdStack,
3407 std::stack< ObjID > *& prWNM_WriteDependObjIdStack,
3408 std::stack< ObjID > *& prWNM_DeleteDependObjIdStack,
3409 std::stack< ObjID > *& prWNM_LockDependObjIdStack,
3410 std::stack< ObjID > *& prWNM_UnlockDependObjIdStack,
3411 TdWatchNotifyMode tdWatchNotifyMode,
3412 EnDeepMode eDeepMode,
3413 bool bSimulate = false );
3414 //-------------------------------------------------------------------
3426 void deleteAllWatches( Communicator * pCommunicator );
3427 //-------------------------------------------------------------------
3428
3429 protected:
3430 //-------------------------------------------------------------------
3441 //-------------------------------------------------------------------
3452 //-------------------------------------------------------------------
3453 };
3454 //-----------------------------------------------------------------------
3455 // <<<<<<<<<<<<<<<<<<<<<<<<<<< ClassWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3456 //-----------------------------------------------------------------------
3457
3458 //-----------------------------------------------------------------------
3459 // >>>>>>>>>>>>>>>>>>>>>>>>>> ClientWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3460 //-----------------------------------------------------------------------
3474
3475 {
3476 private:
3477 //============== Attribute
3478 //-------------------------------------------------------------------
3490 std::map< CommunicatorCallBackIndex, CommunicatorClientNotifyModes *, std::less<CommunicatorCallBackIndex> > m_CommunicatorClientNotifyModesMap;
3491 //-------------------------------------------------------------------
3492
3493 public:
3494 //============= Konstruktor
3495 //-------------------------------------------------------------------
3506 //-------------------------------------------------------------------
3517 //-------------------------------------------------------------------
3518
3519 //============== Methoden
3520 //-------------------------------------------------------------------
3533 //-------------------------------------------------------------------
3545 bool hasWatches() const;
3546 //-------------------------------------------------------------------
3562 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3563 TdWatchNotifyMode tdWatchNotifyMode );
3564 //-------------------------------------------------------------------
3597 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3598 TdWatchNotifyMode tdWatchNotifyMode,
3599 bool bSimulate = false);
3600 //-------------------------------------------------------------------
3612 void deleteAllWatches( Communicator * pCommunicator );
3613 //-------------------------------------------------------------------
3614
3615 protected:
3616 //-------------------------------------------------------------------
3627 //-------------------------------------------------------------------
3628 };
3629 //-----------------------------------------------------------------------
3630 // <<<<<<<<<<<<<<<<<<<<<<<<< ClientWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3631 //-----------------------------------------------------------------------
3632
3633 //-----------------------------------------------------------------------
3634 // >>>>>>>>>>>>>>>>>>>> IndexReadWriteWatch >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3635 //-----------------------------------------------------------------------
3651 {
3652 private:
3653 //============== Attribute
3654 //-------------------------------------------------------------------
3668 std::map< CommunicatorCallBackIndex, CommunicatorIndexReadWriteNotifyModes *, std::less<CommunicatorCallBackIndex> > m_CommunicatorIndexReadWriteNotifyModesMap;
3669 //-------------------------------------------------------------------
3670
3671 public:
3672 //============= Konstruktor
3673 //-------------------------------------------------------------------
3684 //-------------------------------------------------------------------
3695 //-------------------------------------------------------------------
3696
3697 //============== Methoden
3698 //-------------------------------------------------------------------
3711 //-------------------------------------------------------------------
3724 bool hasWatches() const;
3725 //-------------------------------------------------------------------
3741 void setWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3742 TdWatchNotifyMode tdWatchNotifyMode );
3743 //-------------------------------------------------------------------
3776 int unsetWatch( const CommunicatorCallBackIndex & rCommunicatorCallBackIndex,
3777 TdWatchNotifyMode tdWatchNotifyMode,
3778 bool bSimulate = false );
3779 //-------------------------------------------------------------------
3791 void deleteAllWatches( Communicator * pCommunicator );
3792 //-------------------------------------------------------------------
3793
3794 protected:
3795 //-------------------------------------------------------------------
3806 //-------------------------------------------------------------------
3807 };
3808 //-----------------------------------------------------------------------
3809 // <<<<<<<<<<<<<<<<<<<<<< IndexReadWriteWatch <<<<<<<<<<<<<<<<<<<<<<<<<<<
3810 //-----------------------------------------------------------------------
3811
3812 //-------------------------------------------------------------------------
3813 // <<<<<<<<<<<<<<<<<<<<<<<<< WatchNotifyManager >>>>>>>>>>>>>>>>>>>>>>>>>>>
3814 //-------------------------------------------------------------------------
3815 protected:
3816 //============== Static-Attribute
3817 //-----------------------------------------------------------------------
3830 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_READ_List;
3831 //-----------------------------------------------------------------------
3844 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_WRITE_List;
3845 //-----------------------------------------------------------------------
3858 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_DELETE_List;
3859 //-----------------------------------------------------------------------
3872 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_LOCK_List;
3873 //-----------------------------------------------------------------------
3886 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_UNLOCK_List;
3887 //-----------------------------------------------------------------------
3900 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INSERT_List;
3901 //-----------------------------------------------------------------------
3914 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_CONNECTSERVER_List;
3915 //-----------------------------------------------------------------------
3928 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_DISCONNECTSERVER_List;
3929 //-----------------------------------------------------------------------
3942 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_OPENBASE_List;
3943 //-----------------------------------------------------------------------
3956 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_CLIENT_CLOSEBASE_List;
3957 //-----------------------------------------------------------------------
3970 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INDEX_READ_List;
3971 //-----------------------------------------------------------------------
3984 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INDEX_WRITE_List;
3985 //-----------------------------------------------------------------------
3998 static std::list<WatchNotifyManager::CommunicatorCallBackIndex *> m_WNM_INDEX_REINDEX_List;
3999 //-----------------------------------------------------------------------
4000
4001 private:
4002 //============== Attribute
4003 //-----------------------------------------------------------------------
4017 #if defined (__PTHREADS)
4019 #else
4021 #endif
4022 //-----------------------------------------------------------------------
4033 //-----------------------------------------------------------------------
4043 std::map< unsigned long, ClassWatch *, std::less<unsigned long> > m_ClassWatchMap;
4044 //-----------------------------------------------------------------------
4055 //-----------------------------------------------------------------------
4067 //-----------------------------------------------------------------------
4077 std::queue< OrderMsg * > m_MsgQueue;
4078 //-----------------------------------------------------------------------
4079
4080 protected:
4081 //============= Konstruktoren
4082 //-----------------------------------------------------------------------
4093 //-----------------------------------------------------------------------
4094
4095 public:
4096 //============= Konstruktoren
4097 //-----------------------------------------------------------------------
4112 WatchNotifyManager( Manager * pMyDBManager );
4113 //-----------------------------------------------------------------------
4124 //-----------------------------------------------------------------------
4125
4126 private:
4127 //============== Konstruktoren
4128 //-----------------------------------------------------------------------
4139 //-----------------------------------------------------------------------
4140
4141 protected:
4142 //============== Methoden
4143 //-----------------------------------------------------------------------
4144 #if defined (__PTHREADS)
4160 virtual void cleanUp();
4161 //-----------------------------------------------------------------------
4162 #else
4163
4164 public:
4165 //============== Methoden
4166 //-------------------------------------------------------------------------
4182 virtual void cancel() override;
4183 //-----------------------------------------------------------------------
4184 #endif
4185
4186 public:
4187 //============== Methoden
4188 //-----------------------------------------------------------------------
4200 void takeOrder( OrderMsg * pOrderMsg );
4201 //-----------------------------------------------------------------------
4228 //-----------------------------------------------------------------------
4229
4230 protected:
4231 //============== interne Watch-Methoden
4232 //-----------------------------------------------------------------------
4254 int setInternWatch( Communicator * pCommunicator,
4255 NUM_PTR ipCallBack,
4256 unsigned long ulClassID,
4257 TdWatchNotifyMode tdWatchNotifyMode );
4258 //-----------------------------------------------------------------------
4259 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
4260 // Is a reference to the GlobalObjects documentation.
4261 //-----------------------------------------------------------------------
4293 int setInternWatch( Communicator * pCommunicator,
4294 NUM_PTR ipCallBack,
4295 const ObjID & rObjID,
4296 std::map< ObjID, Record *, std::less<ObjID> > & rDependObjectsMap,
4297 TdWatchNotifyMode tdWatchNotifyMode,
4298 EnDeepMode eDeepMode );
4299 //-----------------------------------------------------------------------
4321 int setInternWatch( Communicator * pCommunicator,
4322 NUM_PTR ipCallBack,
4323 TdWatchNotifyMode tdWatchNotifyMode );
4324 //-----------------------------------------------------------------------
4362 int unsetInternWatch( Communicator * pCommunicator,
4363 NUM_PTR ipCallBack,
4364 unsigned long ulClassID,
4365 TdWatchNotifyMode tdWatchNotifyMode,
4366 bool bSimulate = false );
4367 //-----------------------------------------------------------------------
4368 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
4369 // Is a reference to the GlobalObjects documentation.
4370 //-----------------------------------------------------------------------
4413 int unsetInternWatch( Communicator * pCommunicator,
4414 NUM_PTR ipCallBack,
4415 const ObjID & rObjID,
4416 TdWatchNotifyMode tdWatchNotifyMode,
4417 EnDeepMode eDeepMode,
4418 bool bSimulate = false );
4419 //-----------------------------------------------------------------------
4456 int unsetInternWatch( Communicator * pCommunicator,
4457 NUM_PTR ipCallBack,
4458 TdWatchNotifyMode tdWatchNotifyMode,
4459 bool bSimulate = false);
4460 //-----------------------------------------------------------------------
4461
4462 //============== statische Hilfs-Methoden
4463 //-----------------------------------------------------------------------
4477 static void insertAction( CommunicatorCallBackIndex * pCommunicatorCallBackIndex,
4478 std::list< CommunicatorCallBackIndex * > & rActionList );
4479 //-----------------------------------------------------------------------
4493 static void removeAction( CommunicatorCallBackIndex * pCommunicatorCallBackIndex,
4494 std::list< CommunicatorCallBackIndex * > & rActionList );
4495 //-----------------------------------------------------------------------
4496
4497 //============== Methoden
4498 //-----------------------------------------------------------------------
4519 const WatchSpecification & rWatchSpecification,
4520 std::list< Manager::ObjIdWithDepends * > & rInputList );
4521 //-----------------------------------------------------------------------
4544 const WatchSpecification & rWatchSpecification,
4545 std::list< ObjID > & rInputList );
4546 //-----------------------------------------------------------------------
4575 int processWatch( const std::string & rsSchemaName,
4576 Communicator * pCommunicator,
4577 OrderMsg::EnOrderType eOrderType,
4578 void * pOrderObject,
4579 void * pAdditionalInfo );
4580 //-----------------------------------------------------------------------
4600 void processWatch( OrderMsg * pOrderMsg );
4601 //-----------------------------------------------------------------------
4631 void processNotify( OrderMsg * pOrderMsg ) const;
4632 //-----------------------------------------------------------------------
4668 void processNotify( OrderMsg * pOrderMsg,
4669 std::list< CommunicatorCallBackIndex * > & rActionList ) const;
4670 //-----------------------------------------------------------------------
4701 //-----------------------------------------------------------------------
4736 void deleteAllAction( Communicator * pCommunicator,
4737 std::list< CommunicatorCallBackIndex * > & rActionList );
4738 //-----------------------------------------------------------------------
4772 bool getClassWatch( ClassWatch *& prClassWatch,
4773 unsigned long ulClassID,
4774 bool bAlsoGenerate );
4775 //-----------------------------------------------------------------------
4789 void removeClassWatch( unsigned long ulClassID );
4790 //-----------------------------------------------------------------------
4791 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
4792 // Is a reference to the GlobalObjects documentation.
4793 //-----------------------------------------------------------------------
4836 NUM_PTR ipCallBack,
4837 std::stack< ObjID > & rDependObjIdStack,
4838 TdWatchNotifyMode tdWatchNotifyMode,
4839 bool bSimulate );
4840 //-----------------------------------------------------------------------
4841
4842 //========== Die Thread-Methoden ========
4843 //-----------------------------------------------------------------------
4858 virtual void work() override;
4859 //-----------------------------------------------------------------------
4860
4861 private:
4862 //============== Operatoren
4863 //-----------------------------------------------------------------------
4874 //-----------------------------------------------------------------------
4875 };
4876 //---------------------------------------------------------------------------
4877} // namespace glo
4878#endif
long long NUM_PTR
Definition EuDef_NULL_PTR.h:93
Header für EuEndlessPThread
Header für RepeatingThread
Header für Manager Manager::Receiver Manager::ObjIdWithDepends Manager::SchemaMapItem
Header für ObjID
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
Header für WatchSpecification
Basisklasse für einen Thread der seine Arbeit endlos bis zum Abbruch ausführt.
Definition EuEndlessPThread.h:69
Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().
Definition EuPCriticalSection.h:89
Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().
Definition EuCriticalSection.h:94
Basisklasse für einen Thread der seine Arbeit endlos bis zum Abbruch ausführt.
Definition EuRepeatingThread.h:78
OberKlasse von LocalThread, ClientThread und ServerThread, weil diese als Sender und Empfänger (Kommu...
Definition GloCommunicator.h:86
Das Objekt dieser Klasse ist die zentrale Anlaufstelle für Aktionen, welche mit GlobalObjects-Daten z...
Definition GloManager.h:184
Ein Objekt-ID besteht aus der Klassen-ID, einer Datenbank-ID und der eigentlichen eindeutigen ObjektZ...
Definition GloObjID.h:77
Mittels dieser Klasse wird die Kommunikation zwischen der Applikation, welche GlobalObjects nutzt und...
Definition GloOrderMsg.h:77
EnOrderType
Definition GloOrderMsg.h:98
Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen...
Definition GloRecord.h:101
Überwachungsklasse für AllSets.
Definition GloWatchNotifyManager.h:3104
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode)
unsigned long getClassID() const
std::map< ObjID, ObjectWatch *, std::less< ObjID > > m_ObjectWatchMap
Definition GloWatchNotifyManager.h:3141
ClassWatch(unsigned long ulClassID)
unsigned long m_ulClassID
Definition GloWatchNotifyManager.h:3117
std::size_t getObjectWatchMapCount() const
std::map< CommunicatorCallBackIndex, CommunicatorClassNotifyModes *, std::less< CommunicatorCallBackIndex > > m_CommunicatorClassNotifyModesMap
Definition GloWatchNotifyManager.h:3130
void deleteAllWatches(Communicator *pCommunicator)
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, const ObjID &rObjID, std::stack< ObjID > *&prWNM_ReadDependObjIdStack, 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 setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, const ObjID &rObjID, std::stack< ObjID > *pDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode)
std::size_t getCommunicatorClassNotifyModesMapCount() const
Überwachungsklasse für Client-An- bzw. Abmeldungen.
Definition GloWatchNotifyManager.h:3475
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)
std::map< CommunicatorCallBackIndex, CommunicatorClientNotifyModes *, std::less< CommunicatorCallBackIndex > > m_CommunicatorClientNotifyModesMap
Definition GloWatchNotifyManager.h:3490
Ist ein eindeutiger Index für Maps von CommunicatorClassNotifyModes und als Index für die statischen ...
Definition GloWatchNotifyManager.h:1122
bool operator>(const CommunicatorCallBackClassIndex &rT) const
Vergleichsoperator.
CommunicatorCallBackClassIndex(Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID)
bool operator==(const CommunicatorCallBackClassIndex &rT) const
Vergleichsoperator.
bool operator<=(const CommunicatorCallBackClassIndex &rT) const
Vergleichsoperator.
bool operator!=(const CommunicatorCallBackClassIndex &rT) const
Vergleichsoperator.
bool operator>=(const CommunicatorCallBackClassIndex &rT) const
Vergleichsoperator.
unsigned long m_ulClassID
Definition GloWatchNotifyManager.h:1135
CommunicatorCallBackClassIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
bool operator<(const CommunicatorCallBackClassIndex &rT) const
Vergleichsoperator.
WatchNotifyManager::CommunicatorCallBackClassIndex & operator=(const CommunicatorCallBackClassIndex &rT)
CommunicatorCallBackClassIndex(const CommunicatorCallBackClassIndex &rT)
Ist ein eindeutiger Index für Maps von CommunicatorClientNotifyModes und als Index für die statischen...
Definition GloWatchNotifyManager.h:1466
CommunicatorCallBackClientIndex(const CommunicatorCallBackClientIndex &rT)
bool operator>=(const CommunicatorCallBackClientIndex &rT) const
Vergleichsoperator.
WatchNotifyManager::CommunicatorCallBackClientIndex & operator=(const CommunicatorCallBackClientIndex &rT)
CommunicatorCallBackClientIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
bool operator<=(const CommunicatorCallBackClientIndex &rT) const
Vergleichsoperator.
bool operator!=(const CommunicatorCallBackClientIndex &rT) const
Vergleichsoperator.
bool operator==(const CommunicatorCallBackClientIndex &rT) const
Vergleichsoperator.
bool operator<(const CommunicatorCallBackClientIndex &rT) const
Vergleichsoperator.
bool operator>(const CommunicatorCallBackClientIndex &rT) const
Vergleichsoperator.
Basisklasse eines eindeutiger Index für Maps von abgeleitetn Klassen von CommunicatorNotifyModes und ...
Definition GloWatchNotifyManager.h:944
WatchNotifyManager::CommunicatorCallBackIndex & operator=(const CommunicatorCallBackIndex &rT)
NUM_PTR m_ipCallBack
Definition GloWatchNotifyManager.h:970
bool operator<(const CommunicatorCallBackIndex &rT) const
Vergleichsoperator.
CommunicatorCallBackIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
bool operator>(const CommunicatorCallBackIndex &rT) const
Vergleichsoperator.
bool operator!=(const CommunicatorCallBackIndex &rT) const
Vergleichsoperator.
bool operator>=(const CommunicatorCallBackIndex &rT) const
Vergleichsoperator.
bool operator<=(const CommunicatorCallBackIndex &rT) const
Vergleichsoperator.
Communicator * m_pCommunicator
Definition GloWatchNotifyManager.h:957
CommunicatorCallBackIndex(const CommunicatorCallBackIndex &rT)
bool operator==(const CommunicatorCallBackIndex &rT) const
Vergleichsoperator.
Ist ein eindeutiger Index für Maps von CommunicatorCallBackIndexReadWriteIndex und als Index für die ...
Definition GloWatchNotifyManager.h:1586
bool operator<(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Vergleichsoperator.
bool operator!=(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Vergleichsoperator.
CommunicatorCallBackIndexReadWriteIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
CommunicatorCallBackIndexReadWriteIndex(const CommunicatorCallBackIndexReadWriteIndex &rT)
bool operator==(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Vergleichsoperator.
WatchNotifyManager::CommunicatorCallBackIndexReadWriteIndex & operator=(const CommunicatorCallBackIndexReadWriteIndex &rT)
bool operator>=(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Vergleichsoperator.
bool operator<=(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Vergleichsoperator.
bool operator>(const CommunicatorCallBackIndexReadWriteIndex &rT) const
Vergleichsoperator.
Ist ein eindeutiger Index für Maps von CommunicatorObjNotifyModes und als Index für die statischen Ak...
Definition GloWatchNotifyManager.h:1294
bool operator>=(const CommunicatorCallBackObjIndex &rT) const
Vergleichsoperator.
bool operator!=(const CommunicatorCallBackObjIndex &rT) const
Vergleichsoperator.
ObjID m_ObjID
Definition GloWatchNotifyManager.h:1307
bool operator<(const CommunicatorCallBackObjIndex &rT) const
Vergleichsoperator.
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
Vergleichsoperator.
bool operator==(const CommunicatorCallBackObjIndex &rT) const
Vergleichsoperator.
bool operator<=(const CommunicatorCallBackObjIndex &rT) const
Vergleichsoperator.
CommunicatorCallBackObjIndex(Communicator *pCommunicator, NUM_PTR ipCallBack)
Überwachungs- bzw. Benachrichtigungs-Modus von AllSets.
Definition GloWatchNotifyManager.h:1842
int unsetWatch(TdWatchNotifyMode tdWatchNotifyMode, unsigned long ulClassID, bool bSimulate=false)
int m_iWNM_LOCK
Definition GloWatchNotifyManager.h:1888
CommunicatorClassNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int m_iWNM_READ
Definition GloWatchNotifyManager.h:1855
int m_iWNM_INSERT
Definition GloWatchNotifyManager.h:1910
void setWatch(TdWatchNotifyMode tdWatchNotifyMode, unsigned long ulClassID)
int m_iWNM_WRITE
Definition GloWatchNotifyManager.h:1866
int m_iWNM_DELETE
Definition GloWatchNotifyManager.h:1877
int m_iWNM_UNLOCK
Definition GloWatchNotifyManager.h:1899
Überwachungs- bzw. Benachrichtigungs-Modus von Client An- bzw. Abmeldungen.
Definition GloWatchNotifyManager.h:2507
int unsetWatch(TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
int m_iWNM_CLIENT_CLOSE_BASE
Definition GloWatchNotifyManager.h:2553
int m_iWNM_CLIENT_CONNECT_SERVER
Definition GloWatchNotifyManager.h:2520
CommunicatorClientNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int m_iWNM_CLIENT_DISCONNECT_SERVER
Definition GloWatchNotifyManager.h:2531
int m_iWNM_CLIENT_OPEN_BASE
Definition GloWatchNotifyManager.h:2542
void setWatch(TdWatchNotifyMode tdWatchNotifyMode)
Überwachungs- bzw. Benachrichtigungs-Modus für Lese-Index-, Schreibe-Index- und Reindex-Aktionen der ...
Definition GloWatchNotifyManager.h:2684
int m_iWNM_INDEX_REINDEX
Definition GloWatchNotifyManager.h:2719
void setWatch(TdWatchNotifyMode tdWatchNotifyMode)
CommunicatorIndexReadWriteNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
int unsetWatch(TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
int m_iWNM_INDEX_WRITE
Definition GloWatchNotifyManager.h:2708
int m_iWNM_INDEX_READ
Definition GloWatchNotifyManager.h:2697
Basisklasse der einzelnen Überwachungs- bzw. Benachrichtigungs-Modi.
Definition GloWatchNotifyManager.h:1704
CommunicatorCallBackIndex m_CommunicatorCallBackIndex
Definition GloWatchNotifyManager.h:1717
WatchNotifyManager::CommunicatorCallBackIndex & getCommunicatorCallBackIndex()
CommunicatorNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
Überwachungs- bzw. Benachrichtigungs-Modus von Objekten mit deren abhängigen Objekten....
Definition GloWatchNotifyManager.h:2052
void setWatch(std::stack< ObjID > *pDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, const ObjID &rObjID)
std::list< DependentObjsWithDeepMode * > m_WNM_READ
Definition GloWatchNotifyManager.h:2070
int setUnsetWatch(TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, std::stack< ObjID > *&prWNM_ReadDependObjIdStack, 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_LOCK
Definition GloWatchNotifyManager.h:2118
int unsetWatch(std::stack< ObjID > *&prWNM_ReadDependObjIdStack, 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)
std::list< DependentObjsWithDeepMode * > m_WNM_UNLOCK
Definition GloWatchNotifyManager.h:2134
bool m_bCopyDependObjIdStack
Definition GloWatchNotifyManager.h:2145
std::list< DependentObjsWithDeepMode * > m_WNM_WRITE
Definition GloWatchNotifyManager.h:2086
std::list< DependentObjsWithDeepMode * > m_WNM_DELETE
Definition GloWatchNotifyManager.h:2102
CommunicatorObjNotifyModes(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex)
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)
Überwachungsklasse für Lese-Index-, Schreibe-Index- und Reindex-Aktionen der Datenbank.
Definition GloWatchNotifyManager.h:3651
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode)
std::map< CommunicatorCallBackIndex, CommunicatorIndexReadWriteNotifyModes *, std::less< CommunicatorCallBackIndex > > m_CommunicatorIndexReadWriteNotifyModesMap
Definition GloWatchNotifyManager.h:3668
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
std::size_t getCommunicatorIndexReadWriteNotifyModesMapCount() const
void deleteAllWatches(Communicator *pCommunicator)
Wird für Notify-Infos über Clients in einem Auftrag an den WatchNotifyManager genutzt.
Definition GloWatchNotifyManager.h:594
std::string m_strIPAdress
Definition GloWatchNotifyManager.h:640
WatchNotifyManager::NotifyClientInfo & operator=(const NotifyClientInfo &rT)
unsigned int m_uiClientID
Definition GloWatchNotifyManager.h:618
SOCKET m_nSocket
Definition GloWatchNotifyManager.h:607
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:629
NotifyClientInfo(const NotifyClientInfo &rT)
std::string m_strBaseName
Definition GloWatchNotifyManager.h:651
NotifyClientInfo(TdWatchNotifyMode ulNotifyMode)
Wird für Notify-Infos zum überwachen des Lesens, Schreibens und reindizieren der Indexe in einem Auft...
Definition GloWatchNotifyManager.h:774
int m_iFraction
Definition GloWatchNotifyManager.h:811
std::string m_sSchemaName
Definition GloWatchNotifyManager.h:787
WatchNotifyManager::NotifyIndexReadWriteInfo & operator=(const NotifyIndexReadWriteInfo &rT)
int m_iActions
Definition GloWatchNotifyManager.h:822
NotifyIndexReadWriteInfo(TdWatchNotifyMode ulNotifyMode)
NotifyIndexReadWriteInfo(TdWatchNotifyMode ulNotifyMode, const std::string &rsSchemaName, const ObjID &rObjID, int iFraction, int iActions)
ObjID m_ObjID
Definition GloWatchNotifyManager.h:800
NotifyIndexReadWriteInfo(const NotifyIndexReadWriteInfo &rT)
Basisklasse für unterschiedliche Notify-Infos, welche in einem Auftrag an den WatchNotifyManager genu...
Definition GloWatchNotifyManager.h:364
NotifyInfo(TdWatchNotifyMode ulNotifyMode)
WatchNotifyManager::NotifyInfo & operator=(const NotifyInfo &rT)
NotifyInfo(const NotifyInfo &rT)
TdWatchNotifyMode m_ulNotifyMode
Definition GloWatchNotifyManager.h:377
Wird für Notify-Infos über Objekte in einem Auftrag an den WatchNotifyManager genutzt.
Definition GloWatchNotifyManager.h:470
NotifyObjInfo(const NotifyObjInfo &rT)
ObjID m_ObjID
Definition GloWatchNotifyManager.h:486
NotifyObjInfo(TdWatchNotifyMode ulNotifyMode)
NotifyObjInfo(TdWatchNotifyMode ulNotifyMode, const ObjID &rObjID)
WatchNotifyManager::NotifyObjInfo & operator=(const NotifyObjInfo &rT)
Überwachungsklasse für Objekte.
Definition GloWatchNotifyManager.h:2846
ObjID m_ObjID
Definition GloWatchNotifyManager.h:2859
void setWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, std::stack< ObjID > *pDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode)
std::map< CommunicatorCallBackIndex, CommunicatorObjNotifyModes *, std::less< CommunicatorCallBackIndex > > m_CommunicatorObjNotifyModesMap
Definition GloWatchNotifyManager.h:2872
void deleteAllWatches(Communicator *pCommunicator)
int unsetWatch(const CommunicatorCallBackIndex &rCommunicatorCallBackIndex, std::stack< ObjID > *&prWNM_ReadDependObjIdStack, 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)
Klassen um persistente Objekte überwachen zu können und bei Änderungen die jeweiligen Clients zu bean...
Definition GloWatchNotifyManager.h:344
IndexReadWriteWatch m_IndexReadWriteWatch
Definition GloWatchNotifyManager.h:4066
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:3858
WatchNotifyManager(const WatchNotifyManager &)
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_READ_List
Definition GloWatchNotifyManager.h:3830
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:3984
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:4077
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_LOCK_List
Definition GloWatchNotifyManager.h:3872
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:4020
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_WRITE_List
Definition GloWatchNotifyManager.h:3844
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_CLOSEBASE_List
Definition GloWatchNotifyManager.h:3956
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_INDEX_REINDEX_List
Definition GloWatchNotifyManager.h:3998
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:3970
void processNotify(OrderMsg *pOrderMsg, std::list< CommunicatorCallBackIndex * > &rActionList) const
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_DISCONNECTSERVER_List
Definition GloWatchNotifyManager.h:3928
ClientWatch m_ClientWatch
Definition GloWatchNotifyManager.h:4054
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:3914
int unsetInternWatch(Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false)
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_CLIENT_OPENBASE_List
Definition GloWatchNotifyManager.h:3942
Manager * m_pMyDBManager
Definition GloWatchNotifyManager.h:4032
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_UNLOCK_List
Definition GloWatchNotifyManager.h:3886
virtual void cancel() override
int processObjectUnsetWatch(Communicator *pCommunicator, const WatchSpecification &rWatchSpecification, std::list< ObjID > &rInputList)
void processNotify(OrderMsg *pOrderMsg) const
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::map< unsigned long, ClassWatch *, std::less< unsigned long > > m_ClassWatchMap
Definition GloWatchNotifyManager.h:4043
static std::list< WatchNotifyManager::CommunicatorCallBackIndex * > m_WNM_INSERT_List
Definition GloWatchNotifyManager.h:3900
Um Objekte beobachten zu können, müssen der 'Beobachtungsmodus', die 'Beobachtungstiefe' und das 'Ben...
Definition GloWatchSpecification.h:60
Definition GloAbstractBaseLot.h:42
EnDeepMode
Definition GloTypes.h:247
unsigned long TdWatchNotifyMode
Definition GloTypes.h:543