提交 82fa90cd1c63565404286ffd5f10fc1518027e86

作者 LJH 李佳桓
1 个父辈 1f2412b6

add

  1 +/*
  2 + * @Author: your name
  3 + * @Date: 2021-04-26 15:33:40
  4 + * @LastEditTime: 2021-04-26 15:33:42
  5 + * @LastEditors: your name
  6 + * @Description: In User Settings Edit
  7 + * @FilePath: /dmapserver/src/server/dmpfilterresponsedecorator.h
  8 + */
  9 +/**************************************************************************
  10 +* file: dmpfilterresponsedecorator.h
  11 +
  12 +* Author: wanzhongping
  13 +* Date: 2021-03-09 15:08:07
  14 +* Email: zhongpingw@chinadci.com
  15 +* copyright: 广州城市信息研究所有限公司
  16 +***************************************************************************/
  17 +
  18 +#ifndef __dmpfilterresponsedecorator_h__
  19 +#define __dmpfilterresponsedecorator_h__
  20 +
  21 +#include "dmpserverresponse.h"
  22 +#include "dmpserverfilter.h"
  23 +#include <map>
  24 +
  25 +//装饰类,增加DmpServerResponse的过滤功能
  26 +class DmpFilterResponseDecorator: public DmpServerResponse
  27 +{
  28 + public:
  29 +
  30 + DmpFilterResponseDecorator( DmpServerFiltersMap filters, DmpServerResponse &response );
  31 +
  32 + void SetHeader( const std::string &key, const std::string &value ) override { response_.SetHeader( key, value ); }
  33 +
  34 + void RemoveHeader( const std::string &key ) override { response_.RemoveHeader( key ); }
  35 +
  36 + std::string Header( const std::string &key ) const override { return response_.Header( key ); }
  37 +
  38 + ParameterMap Headers() const override { return response_.Headers(); }
  39 +
  40 + void setStatusCode( int code ) override { response_.setStatusCode( code ); }
  41 +
  42 + int statusCode() const override { return response_.statusCode(); }
  43 +
  44 + void SendError( int code, const std::string &message ) override { response_.SendError(code, message); }
  45 +
  46 + void Write(const std::string data) override;
  47 +
  48 + void WriteContent(const void * content, int length =0) override;
  49 +
  50 + void Start();
  51 +
  52 + void Flush();
  53 +
  54 + void Finish();
  55 +
  56 + void Clear() override { response_.Clear(); }
  57 +
  58 + private:
  59 + DmpServerFiltersMap filters_;
  60 + DmpServerResponse &response_;
  61 +};
  62 +
  63 +#endif //__dmpfilterresponsedecorator_h__
注册登录 后发表评论