~ubuntu-branches/ubuntu/trusty/styx/trusty

« back to all changes in this revision

Viewing changes to libc++/StyxI18NLit.h

  • Committer: Bazaar Package Importer
  • Author(s): Frederik Schüler
  • Date: 2007-07-01 23:06:53 UTC
  • mfrom: (0.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20070701230653-8tcr3ow0d49alwj2
Tags: 1.7.5-1
* New upstream version.
* Bump standard to 2.7.2, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
#define STYX_I18NLIT_INCL
12
12
 
13
13
 
14
 
using namespace std;
15
 
 
16
 
#include <stdio.h>
17
 
#include <wctype.h>
18
 
#include <wchar.h>
19
 
#include <wctype.h>
20
 
#include <iconv.h>
 
14
#include <wctype.h>
21
15
#include <string>
22
 
#include <vector>
23
 
#include <map>
 
16
 
 
17
 
 
18
/** @file
 
19
    Characterset conversion, based on the iconv library
 
20
*/
24
21
 
25
22
namespace styx
26
23
{
27
 
 
28
 
#define CS_ID_WCHAR   "UCS-4"
29
 
#define CS_ID_MBYTE   "UTF-8"
30
 
#define CS_ID_LATIN1  "LATIN1"
31
 
 
32
 
 
33
 
class CStyxCharConv
34
 
{
35
 
protected:
36
 
  typedef basic_string<wchar_t > wstring;
37
 
 
38
 
  void*   icd;
39
 
  wchar_t s_endian;
40
 
  wchar_t t_endian;
41
 
  string  ics_src;
42
 
  string  ics_dst;
43
 
  string  errmsg;
44
 
 
45
 
  virtual wchar_t* ucs42intern(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
46
 
 
47
 
  virtual wchar_t* intern2ucs4(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
48
 
 
49
 
public:
50
 
  CStyxCharConv();
51
 
  CStyxCharConv(string cs_src, string cs_dst);
52
 
  virtual ~CStyxCharConv();
53
 
 
54
 
  virtual string& getError();
55
 
 
56
 
  virtual bool init(string cs_src, string cs_dst);
57
 
  virtual bool quit();
58
 
 
59
 
  /* character set conversion of 'src[size]' to 'dst'
60
 
     RC: >=0 on O.K. ( number of conversions / characters ) 
61
 
       | =-1 on possible incomplete input 
62
 
       | =-2 on error
 
24
  using namespace std;
 
25
 
 
26
  /** @addtogroup StyxI18NLit
 
27
      Characterset conversion, based on the iconv library
63
28
  */
64
 
  virtual int  convert(string& src, size_t size, string& dst);
65
 
};
 
29
  //@{
 
30
 
 
31
  const char* CS_ID_WCHAR  = "UCS-4";  ///< UCS-4 characterset identifier
 
32
  const char* CS_ID_MBYTE  = "UTF-8";  ///< UTF-8 characterset identifier
 
33
  const char* CS_ID_LATIN1 = "LATIN1"; ///< Latin1 characterset identifier
 
34
  
 
35
  /// Characterset conversion, based on the iconv library
 
36
  class CStyxCharConv
 
37
  {
 
38
  protected:
 
39
    void*   icd;      ///< iconv-handle
 
40
    wchar_t s_endian; ///< ics_src = UCS-4 --\> byte order or 0
 
41
    wchar_t t_endian; ///< ics_dst = UCS-4 --\> byte order or 0
 
42
    string  ics_src;  ///< source characterset
 
43
    string  ics_dst;  ///< target characterset
 
44
    string  errmsg;   ///< conversion error or ""
 
45
  
 
46
    /// endian conversion UCS-4 --\> (iconv) INTERNAL
 
47
    /// @param ws [update] UCS-4 character buffer
 
48
    /// @param size buffer size in bytes
 
49
    /// @param endian UCS-4 byte order
 
50
    /// @return the converted character buffer
 
51
    virtual wchar_t* ucs42intern(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
 
52
  
 
53
    /// endian conversion (iconv) INTERNAL --\> UCS-4
 
54
    /// @param ws [update] (iconv) INTERNAL character buffer
 
55
    /// @param size buffer size in bytes
 
56
    /// @param endian UCS-4 byte order
 
57
    /// @return the converted character buffer
 
58
    virtual wchar_t* intern2ucs4(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
 
59
  
 
60
  public:
 
61
    /// The constructor creates an uninitialized conversion object.
 
62
    CStyxCharConv();
 
63
    /// The constructor creates an initialized conversion object.
 
64
    /// @param cs_src source characterset
 
65
    /// @param cs_dst target characterset
 
66
    CStyxCharConv(string cs_src, string cs_dst);
 
67
    virtual ~CStyxCharConv();
 
68
  
 
69
    /// get conversion error
 
70
    /// @return conversion error or ""
 
71
    virtual string& getError();
 
72
  
 
73
    /// re-initialize conversion
 
74
    /// @param cs_src source characterset
 
75
    /// @param cs_dst target characterset
 
76
    /// @return true or false on error
 
77
    virtual bool init(string cs_src, string cs_dst);
 
78
    /// release current conversion context
 
79
    /// @return true or false on error
 
80
    virtual bool quit();
 
81
  
 
82
    /// characterset conversion of 'src[size]' to 'dst'
 
83
    /// @param src input string
 
84
    /// @param size input string size in bytes
 
85
    /// @param dst [result] the converted string
 
86
    /// @return number of conversions / characters \>= 0
 
87
    /// or -1 for a possible incomplete input
 
88
    /// or -2 on error
 
89
    virtual int  convert(const string& src, size_t size, string& dst);
 
90
  };
 
91
 
 
92
  //@}
66
93
 
67
94
}
68
95