(file) Return to ListenerService.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / DynListener

  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