SBinetHttpConnection.hpp
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:3k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. #ifndef SBINETHTTPCONNECTION_HPP
  2. #define SBINETHTTPCONNECTION_HPP
  3. /****************License************************************************
  4.  * Vocalocity OpenVXI
  5.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version 2
  9.  * of the License, or (at your option) any later version.
  10.  *  
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  19.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  20.  * registered trademarks of Vocalocity, Inc. 
  21.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  22.  * by Vocalocity.
  23.  ***********************************************************************/
  24. #include <SWIstream.hpp>
  25. #include <SWIipAddress.hpp>
  26. class SWIsocket;
  27. class SWIinputStream;
  28. class SWIoutputStream;
  29. class SWIutilLogger;
  30. class SWIipAddress;
  31. class SBinetChannel;
  32. #include "SBinetURL.h"
  33. /**
  34.  * class to encapsulate HTTP connection.
  35.  * @doc <p>
  36.  **/
  37. class SBinetHttpConnection
  38. {
  39.   friend class SBinetChannel;
  40.   // ................. CONSTRUCTORS, DESTRUCTOR  ............
  41.   //
  42.   // ------------------------------------------------------------
  43.   /**
  44.    * Constructor.
  45.    **/
  46.  private:
  47.   SBinetHttpConnection(SBinetURL::Protocol protocol,
  48.                        const SWIipAddress& ipAddress,
  49.                        bool usesProxy,
  50.                        SBinetChannel *channel,
  51.                        const char *connId = NULL);
  52.  public:
  53.   SWIstream::Result connect(long timeout);
  54.   SWIinputStream *getInputStream();
  55.   SWIoutputStream *getOutputStream();
  56.   SWIstream::Result close();
  57.   const SWIipAddress *getRemoteAddress();
  58.   bool usesProxy() const
  59.   {
  60.     return _usesProxy;
  61.   }
  62.   /**
  63.    * Destructor.
  64.    **/
  65.  public:
  66.   virtual ~SBinetHttpConnection();
  67.  public:
  68.   const char *getId() const
  69.   {
  70.     return _connId;
  71.   }
  72.   /**
  73.    * Disabled copy constructor.
  74.    **/
  75.  private:
  76.   SBinetHttpConnection(const SBinetHttpConnection&);
  77.   /**
  78.    * Disabled assignment operator.
  79.    **/
  80.  private:
  81.   SBinetHttpConnection& operator=(const SBinetHttpConnection&);
  82.  private:
  83.   SWIsocket *_socket;
  84.   SWIinputStream *_inputStream;
  85.   SWIoutputStream *_outputStream;
  86.   SBinetChannel *_channel;
  87.   SWIipAddress _remoteAddress;
  88.   bool _usesProxy;
  89.   SBinetURL::Protocol _protocol;
  90.   char *_connId;
  91. };
  92. #endif