⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbineturl.h

📁 sloedgy open sip stack source code
💻 H
字号:

 /****************License************************************************
  *
  * Copyright 2000-2003.  ScanSoft, Inc.    
  *
  * Use of this software is subject to notices and obligations set forth 
  * in the SpeechWorks Public License - Software Version 1.2 which is 
  * included with this software. 
  *
  * ScanSoft is a registered trademark of ScanSoft, Inc., and OpenSpeech, 
  * SpeechWorks and the SpeechWorks logo are registered trademarks or 
  * trademarks of SpeechWorks International, Inc. in the United States 
  * and other countries.
  *
  ***********************************************************************/
 
#ifndef __SBINETURL_H_                   /* Allows multiple inclusions */
 #define __SBINETURL_H_
 
#include <vxibuildopts.h>
#if P_VXI
 
 #include "vxi/VXItypes.h"
 #include "vxi/VXIvalue.h"
 #include "vxi/VXIinet.h"
 
 #include "SBinetString.hpp"
 
 #define SB_BOUNDARY "osb_inet_multipart_boundary"
 #define SB_MULTIPART "multipart/form-data; boundary=osb_inet_multipart_boundary"
 #define SB_URLENCODED "application/x-www-form-urlencoded"
 #define CRLF "\r\n"
 
 class SBinetURL
 {
 public:
   enum Protocol {
     UNKNOWN_PROTOCOL = 0,
     FILE_PROTOCOL = 1,
     HTTP_PROTOCOL = 2,
     HTTPS_PROTOCOL = 3
   };
 
  public:
   SBinetURL(const SBinetURL& url)
   {
     operator=(url);
   }
 
   ~SBinetURL()
   {}
 
   Protocol getProtocol() const
   {
     return _protocol;
   }
 
   const VXIchar * getAbsolute() const
   {
     return _absoluteURL.c_str();
   }
 
   const VXIchar * getBase() const
   {
     return _baseURL.c_str();
   }
 
   const VXIchar * getPath() const
   {
     return _strPath.c_str();
   }
 
   const VXIchar * getHost() const
   {
     return _host.c_str();
   }
 
   const char * getNAbsolute() const
   {
     return N_absoluteURL.c_str();
   }
 
   const char * getNBase() const
   {
     return N_baseURL.c_str();
   }
 
   const char * getNPath() const
   {
     return N_strPath.c_str();
   }
 
   const char * getNHost() const
   {
     return N_host.c_str();
   }
 
   SBinetURL& operator=(const SBinetURL& url);
 
   bool operator==(const SBinetURL& url);
   bool operator!=(const SBinetURL& url)
   {
     return !operator==(url);
   }
 
   static VXIinetResult create(const VXIchar* pszName,
                               const VXIchar* pszUrlBase,
                               SBinetURL *& url);
 
   VXIinetResult parse(const VXIchar* pszName,
                       const VXIchar* pszUrlBase);
 
   void appendQueryArgsToURL(const VXIMap* _queryArgs);
 
   VXIString *getContentTypeFromUrl() const;
 
   SBinetNString queryArgsToNString(const VXIMap* queryArgs) const;
 
   static bool requiresMultipart(const VXIMap* queryArgs);
 
   SBinetNString queryArgsToMultipart(const VXIMap* queryArgs);
 
  public:
   int getPort() const
   {
     return _port;
   }
 
  private:
   SBinetURL():
     _absoluteURL(), _baseURL(), _host(), _strPath(), _protocol(UNKNOWN_PROTOCOL),
     _port(-1)
   {}
 
   static SBinetNString valueToNString(const VXIValue* value);
 
   // Multipart stuff.
   static bool requiresMultipart(const VXIValue* value);
   static bool requiresMultipart(const VXIVector* vxivector);
 
   static void appendKeyToMultipart(SBinetNString& result, const char *key);
 
   static void appendValueToMultipart(SBinetNString& result,
 				     const SBinetNString& value);
 
   static void appendQueryArgsMapToMultipart(SBinetNString& result,
                                             const VXIMap *vximap,
                                             SBinetNString& fieldName);
 
   static void appendQueryArgsVectorToMultipart(SBinetNString& result,
                                                const VXIVector *vxivector,
                                                SBinetNString& fieldName);
 
   static void appendQueryArgsToMultipart(SBinetNString& result,
                                          const VXIValue *value,
                                          SBinetNString& fieldName);
 
  private:
   SBinetString _absoluteURL;
   SBinetString _baseURL;
   SBinetString _host;
   SBinetString _strPath;
   SBinetNString N_absoluteURL;
   SBinetNString N_baseURL;
   SBinetNString N_host;
   SBinetNString N_strPath;
   Protocol _protocol;
   int _port;
 };

#endif //P_VXI
 #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -