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

📄 htbp_filter.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
// -*- C++ -*-//=============================================================================/** *  @file    HTBP_Filter.h * *  HTBP_Filter.h,v 1.2 2005/11/27 12:11:35 ossama Exp * *  @author Phil Mesnier *///=============================================================================#ifndef ACE_HTBP_FILTER_H#define ACE_HTBP_FILTER_H#include /**/ "ace/pre.h"#include "ace/OS.h"#if !defined (ACE_LACKS_PRAGMA_ONCE)# pragma once#endif /* ACE_LACKS_PRAGMA_ONCE */#include "HTBP_Export.h"ACE_BEGIN_VERSIONED_NAMESPACE_DECLnamespace ACE{  namespace HTBP  {    // Forward declarations.    class Channel;    /**     * @class ACE_HTBP_Filter     *     * @brief Defines the methods in the <ACE_HTBP_Filter> abstraction.     *     * A filter is responsible for wrapping / unwrapping messages     * depending on direction of flow on each stream. There will be 4     * filters participating in a session, inside-send, inside-recv,     * outside-send, ouside-recv. It is anticipated that specialized     * filters will be implemented that tune the filter behavior based     * on proxy particulars. That, or there will be a matrix     * configuration parameters that may be tweeked to match the     * configuration.  It remains to be seen which is easier to     * manage.     */    class HTBP_Export Filter    {    public:      Filter (void);      virtual ~Filter (void);      /// Inside and outside Send filters need to supply a data header that      /// sets the stage before sending the data body, and then (maybe) send a      /// data trailer that closes the message. The data header may be formatted      /// differently on the first message, to send optional context information.      virtual ssize_t send_data_header (ssize_t data_len, Channel *ch);      virtual ssize_t send_data_trailer (Channel *ch);      /// Upon receiving data, the Channel is obliged to send an ack. This is      /// either an empty document if this is the in-to-out stream, or a new      /// long-duration document request if this is the out-to-in stream.      virtual int send_ack (Channel *ch);      virtual int recv_ack (Channel *ch);      /// receiving data must compliment sending. In the case of an in-to-out      /// stream. It is possible that the stream identity is not known until the      /// first request is received. In this case the filter will have to look      /// lookup the received session ID and either create a new instance or      /// reassign itself to an existing sesion. In that case, the associated      /// stream will have to be reassigned as well.      ///      virtual ssize_t recv_data_header (Channel *ch);      virtual ssize_t recv_data_trailer(Channel *ch);      /// reset the http_code_ in anticipation of a new message.      void reset_http_code (void);      /// get the value of the most recent http result code      int http_code (void);    protected:      char *header_complete (Channel *ch);    private:      /// Store the most recent HTTP result code. Typically it will be 200,      /// but it could be a 4xx or 5xx code if the proxy reports an error.      int http_code_;    };  }}ACE_END_VERSIONED_NAMESPACE_DECL#if defined (__ACE_INLINE__)#include "HTBP_Filter.inl"#endif#include /**/ "ace/post.h"#endif /* ACE_HTBP_FILTER_H */

⌨️ 快捷键说明

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