📄 sbinetstream.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 + -