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

📄 sbinetstream.h

📁 Open VXI. This is a open source.
💻 H
字号:
/****************License************************************************ * * Copyright 2001.  SpeechWorks International, Inc. * * Use of this software is subject to notices and obligations set forth * in the SpeechWorks Public License - Software Version 1.1 which is * included with this software. *  * SpeechWorks is a registered trademark, and SpeechWorks Here,  * DialogModules and the SpeechWorks logo are trademarks of SpeechWorks  * International, Inc. in the United States and other countries.  *  *********************************************************************** * * SBinetStream Header * * $Id: SBinetStream.h,v 1.14.6.6 2001/10/09 16:37:52 dmeyer Exp $ * ***********************************************************************/#ifndef __SBINETSTREAM_H_                   /* Allows multiple inclusions */#define __SBINETSTREAM_H_#include <time.h>#include <WWWLib.h>#include <WWWHTTP.h>#include <WWWInit.h>#include "VXItypes.h"#include "VXIvalue.h"#include "VXIinet.h"#include "SBinetLog.h"#include "SBinetURL.h"#include "SBinetCacheLock.h"/* * Top level stream class, virtual abstract. */class SBinetStream{ public:  virtual ~SBinetStream(){}  virtual VXIinetResult Prefetch() = 0;  virtual VXIinetResult Open(VXIint flags, const VXIMap* properties, VXIMap* streamInfo) = 0;  virtual VXIinetResult Read( /* [OUT] */ VXIbyte*         pBuffer,			      /* [IN]  */ VXIulong         nBuflen,			      /* [OUT] */ VXIulong*        pnRead ) = 0;  virtual VXIinetResult Close() = 0;};struct SBinetFileValidator;class SBinetFileStream : public SBinetStream, public SBinetLogger { public:  SBinetFileStream(SBinetURL* url, VXIlogInterface *log, 		   VXIunsigned diagLogBase);  ~SBinetFileStream();  VXIinetResult Prefetch()    {return(VXIinet_RESULT_SUCCESS);}  VXIinetResult Open(VXIint flags, 		     const VXIMap* properties, 		     VXIMap* streamInfo);  VXIinetResult Read( /* [OUT] */ VXIbyte*         pBuffer,		      /* [IN]  */ VXIulong         nBuflen,		      /* [OUT] */ VXIulong*        pnRead );  VXIinetResult Close(); private:  void LogValidator(const VXIchar *func,		    const SBinetFileValidator *validator) const; private:  FILE* m_pFile;  VXIint m_content_length;  int m_ReadSoFar;  SBinetURL* m_url;};class SBinetChannel;struct SBinetHttpValidator;class SBinetHttpStream : public SBinetStream, public SBinetLogger { public:  enum SubmitMethod { GET_METHOD = 1, POST_METHOD = 2 }; public:  SBinetHttpStream(SBinetURL* url, SBinetChannel* ch,                    VXIlogInterface *log, VXIunsigned diagLogBase);  ~SBinetHttpStream();  VXIinetResult Prefetch()    {return(VXIinet_RESULT_SUCCESS);}  VXIinetResult Open(VXIint flags, 		     const VXIMap* properties, 		     VXIMap* streamInfo);  VXIinetResult Read( /* [OUT] */ VXIbyte*         pBuffer,		      /* [IN]  */ VXIulong         nBuflen,		      /* [OUT] */ VXIulong*        pnRead );  VXIinetResult Close();  SBinetChannel* getChannel() { return(m_ch); } private:  HTChunk* PostMulti(SBinetURL*       url,		     VXIint32                  flags,		     const VXIMap             *properties,		     VXIMap                   *streamInfo);  int getTime(time_t *timestamp, VXIunsigned *timestampMsec);  int checkTimeout();  HTChunk* Get(SBinetURL*               url,	       VXIint32                  flags,	       const VXIMap             *properties,	       VXIMap                   *streamInfo);  HTChunk* Post(SBinetURL*               url,		VXIint32                  flags,		const VXIMap             *properties,		VXIMap                   *streamInfo);  void SetProperties(VXIMap* properties);  void GetHeaderInfo(VXIMap* streamInfo);    VXIinetResult SetCachingMode( );  static int terminate_handler (HTRequest * request, 				HTResponse * response,				void * param, int status);  VXIinetResult MapError(int ht_error);  void LogValidator(const VXIchar *func,		    const SBinetHttpValidator *validator) const; private:  HTRequest* m_request;  HTChunk* m_chunk;  SBinetString m_argstring;     // string representation of query ares for POST  VXIMap* m_queryArgs;  int m_Done;  int m_ReadSoFar;  int m_HttpStatus;      SBinetURL* m_url;  VXIint m_iMaxAge;  VXIint m_iMaxStale;  long m_nTimeoutOpen;  long m_nTimeoutIO;  SubmitMethod m_method;  SBinetNString m_submitMimeType;         // Real char* not VXIchar*  // Header info  VXIint m_content_length;  SBinetString m_content_type;  time_t m_ReferenceTime;  VXIunsigned m_ReferenceTimeMsec;  HTParentAnchor* m_newAnchor;  SBinetCacheLock* m_lock;  int m_reader;  SBinetChannel* m_ch;  // for cookie mapping};#endif

⌨️ 快捷键说明

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