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

  1 mday  1.3 //%////-*-c++-*-////////////////////////////////////////////////////////////////
  2 mike  1.2 //
  3           // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM, 
  4           // The Open Group, Tivoli Systems
  5           //
  6           // Permission is hereby granted, free of charge, to any person obtaining a copy
  7           // of this software and associated documentation files (the "Software"), to 
  8           // deal in the Software without restriction, including without limitation the 
  9           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
 10           // sell copies of the Software, and to permit persons to whom the Software is
 11           // furnished to do so, subject to the following conditions:
 12           // 
 13           // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN 
 14           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 15           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 16           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
 17           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
 18           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 
 19           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 20           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 21           //
 22           //==============================================================================
 23 mike  1.2 //
 24           // Author: Mike Brasher (mbrasher@bmc.com)
 25           //
 26           // Modified By:
 27           //
 28           //%/////////////////////////////////////////////////////////////////////////////
 29           
 30           #ifndef Pegasus_HTTPConnector_h
 31           #define Pegasus_HTTPConnector_h
 32           
 33           #include <Pegasus/Common/Config.h>
 34 mday  1.3 #include <Pegasus/Common/MessageQueueService.h>
 35 mike  1.2 #include <Pegasus/Common/Monitor.h>
 36           #include <Pegasus/Common/String.h>
 37           #include <Pegasus/Common/TLS.h>
 38           
 39           PEGASUS_NAMESPACE_BEGIN
 40           
 41           struct HTTPConnectorRep;
 42           class HTTPConnection;
 43           
 44           /** This class is used by clients to establish a connection with a
 45               server. For each established connection, a HTTPConnection object
 46               is created.
 47           */
 48 mday  1.3 class PEGASUS_COMMON_LINKAGE HTTPConnector : public MessageQueueService
 49 mike  1.2 {
 50 mday  1.4    public:
 51 mday  1.3    
 52 mday  1.4       typedef MessageQueueService Base;
 53 mday  1.3   
 54 mday  1.4       /** Constructor.
 55           	  @param monitor pointer to monitor object which this class uses to
 56           	  solicit SocketMessages on the server port (socket).
 57           	  @param outputMessageQueue ouptut message queue for connections
 58           	  created by this connector.
 59                 */
 60                 HTTPConnector(Monitor* monitor);
 61           
 62                 HTTPConnector(Monitor* monitor, SSLContext * sslcontext);
 63           
 64                 /** Destructor. */
 65                 ~HTTPConnector();
 66           
 67                 /** This method is called whenever a SocketMessage is enqueued
 68           	  on the input queue of the HTTPConnector object.
 69                 */ 
 70           
 71                 virtual void handleEnqueue(Message *);
 72                 virtual void handleEnqueue();
 73           
 74                 virtual const char* getQueueName() const;
 75 mday  1.4 
 76                 /** Establishes a new connection and creates an HTTPConnection object
 77           	  to represent it.
 78           
 79           	  @param locator indicates which server to connect to (of the form
 80           	  host:port).
 81           	  @param outputMessageQueue output message queue for the HTTPConnection
 82           	  that will be created.
 83           	  @exception InvalidLocator
 84           	  @exception CannotCreateSocket
 85           	  @exception CannotConnect
 86           	  @exception UnexpectedFailure
 87                 */
 88                 HTTPConnection* connect(
 89           	 const String& locator, 
 90           	 MessageQueue* outputMessageQueue);
 91 mike  1.2 
 92 mday  1.4       /** Destroys all the connections created by this connector. */
 93                 void destroyConnections();
 94 mike  1.2 
 95 kumpf 1.5       /** Close the specified connection. */
 96                 void disconnect(HTTPConnection* connection);
 97           
 98 mday  1.4    private:
 99 mike  1.2 
100 kumpf 1.6       /** Delete the specified connection. */
101                 void _deleteConnection(HTTPConnection* httpConnection);
102           
103 mday  1.4       Monitor* _monitor;
104                 HTTPConnectorRep* _rep;
105 mike  1.2     
106 mday  1.4       SSLContext * _sslcontext;
107 mike  1.2 };
108           
109           PEGASUS_NAMESPACE_END
110           
111           #endif /* Pegasus_HTTPConnector_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2