OSDN Git Service

fix for FreeBSD 11.1.
[hmh/hhml.git] / lib / motoroutput-iconv.h
1 #ifndef MOTOROUTPUT_ICONV_H
2 #define MOTOROUTPUT_ICONV_H
3
4 #include "motoroutput.h"
5 #include "httpconst.h"
6 #include "util_string.h"
7
8 class  MotorOutputIConv: public MotorOutput {
9  public:
10     UIConv  cd;
11     ustring  code;
12
13     MotorOutputIConv (const char* _code): cd (_code, kCODE_UTF8) {
14         code.assign (_code);
15     };
16     virtual  ~MotorOutputIConv () {};
17
18     virtual MotorOutput*  out_toText (const ustring& str);
19     virtual MotorOutput*  out_templateText (const ustring& str);
20     virtual MotorOutput*  flush ();
21     virtual const ustring  charset () {
22         return code;
23     };
24 };
25
26 class  MotorOutputIConvOStream: public MotorOutputIConv {
27  public:
28     MotorOutputIConvOStream (const char* v): MotorOutputIConv (v) {};
29     virtual  ~MotorOutputIConvOStream () {};
30
31  protected:
32     virtual MotorOutput*  out (const ustring::value_type* s, size_t len);
33  public:
34     virtual bool  isResponse () {
35         return true;
36     };
37 };
38
39 class  MotorOutputIConvString: public MotorOutputIConv {
40  public:
41     ustring  ans;
42
43     MotorOutputIConvString (const char* v): MotorOutputIConv (v) {};
44     virtual  ~MotorOutputIConvString () {};
45
46  protected:
47     virtual MotorOutput*  out (const ustring::value_type* s, size_t len);
48  public:
49     virtual bool  isResponse () {
50         return false;
51     };
52 };
53
54 #endif /* MOTOROUTPUT_ICONV_H */