![]() ![]() |
![]() |
1 karl 1.3 //%2006//////////////////////////////////////////////////////////////////////// | ||
2 h.sterling 1.1 // 3 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development 4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. 5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; 6 // IBM Corp.; EMC Corporation, The Open Group. 7 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; 8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. 9 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; 10 // EMC Corporation; VERITAS Software Corporation; The Open Group. | ||
11 karl 1.3 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; 12 // EMC Corporation; Symantec Corporation; The Open Group. | ||
13 h.sterling 1.1 // 14 // Permission is hereby granted, free of charge, to any person obtaining a copy 15 // of this software and associated documentation files (the "Software"), to 16 // deal in the Software without restriction, including without limitation the 17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 18 // sell copies of the Software, and to permit persons to whom the Software is 19 // furnished to do so, subject to the following conditions: 20 // 21 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN 22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED 23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 // 30 //============================================================================== 31 // 32 // Author: Heather Sterling (hsterl@us.ibm.com) 33 // | ||
34 aruran.ms 1.2 // Modified By: Aruran, IBM (ashanmug@in.ibm.com) for Bug# 3654 | ||
35 h.sterling 1.1 // 36 //%///////////////////////////////////////////////////////////////////////////// 37 38 #ifndef Pegasus_ListenerService_h 39 #define Pegasus_ListenerService_h 40 41 #include <Pegasus/Common/Config.h> 42 #include <Pegasus/Common/ArrayInternal.h> 43 #include <Pegasus/Consumer/CIMIndicationConsumer.h> 44 #include <Pegasus/Common/System.h> 45 #include <Pegasus/Common/Monitor.h> 46 #include <Pegasus/Common/HTTPAcceptor.h> 47 #include <Pegasus/DynListener/Linkage.h> 48 49 #include <Pegasus/ExportServer/CIMExportResponseEncoder.h> 50 #include <Pegasus/ExportServer/CIMExportRequestDecoder.h> 51 52 #include "DynamicListenerIndicationDispatcher.h" 53 #include "ConsumerManager.h" 54 55 PEGASUS_NAMESPACE_BEGIN 56 h.sterling 1.1 57 58 class PEGASUS_DYNLISTENER_LINKAGE ListenerService 59 { 60 public: 61 62 ListenerService(ConsumerManager* consumerManager); 63 64 ~ListenerService(); 65 66 ListenerService(const ListenerService& x); 67 68 Boolean initializeListener(Uint32 portNumber, Boolean useSSL, SSLContext* sslContext); 69 70 Boolean runListener(); 71 72 Boolean shutdownListener(); 73 | ||
74 aruran.ms 1.2 Boolean isAlive() const throw(); | ||
75 h.sterling 1.1 76 Uint32 getPortNumber() const; 77 78 static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL _listener_routine(void *param); 79 80 static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL _polling_routine(void *param); 81 82 83 private: 84 85 ConsumerManager* _consumerManager; 86 DynamicListenerIndicationDispatcher* _dispatcher; 87 88 Uint32 _portNumber; 89 Boolean _useSSL; 90 SSLContext* _sslContext; 91 92 //ATTN: do we need to mutex the status? The consumer mgr takes care of synchronization ... but, 93 //maybe we should just in case someone uses it differently 94 Boolean _initialized; 95 Boolean _running; 96 h.sterling 1.1 Boolean _dieNow; //AtomicInt??? 97 Semaphore* _shutdownSem; 98 99 Monitor* _monitor; 100 HTTPAcceptor* _acceptor; 101 102 CIMExportResponseEncoder* _responseEncoder; 103 CIMExportRequestDecoder* _requestDecoder; 104 105 Uint32 _idleTimeout; 106 Boolean _neverUnload; 107 108 //listener thread 109 Thread* _listening_thread; 110 111 //polling thread 112 Thread* _polling_thread; 113 114 }; 115 116 PEGASUS_NAMESPACE_END 117 h.sterling 1.1 118 #endif //Pegasus_ListenerService_h 119 120 121 122 123 |
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |