source: to-imperative/trunk/runtime/rf_word.hh @ 723

Last change on this file since 723 was 723, checked in by orlov, 18 years ago
  • Reworked Char::to_chars() method.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.2 KB
Line 
1#ifndef __rf_word_hh__
2#define __rf_word_hh__
3
4#include "rf_types.hh"
5#include "rf_term.hh"
6#include "rf_expr.hh"
7
8namespace rftype
9{
10
11using namespace rfrt ;
12
13class Word :
14  public Term
15{
16
17  struct Header
18  {
19    size_t ref_count ;
20    size_t length ;
21    uint32_t hash ;
22    wchar_t content[] ;
23  };
24
25public:
26  ///
27  /// Constructor from a string of wide characters
28  inline Word (wchar_t const* _wstr) ;
29  ///
30  /// Constructor from a locale-dependent string
31  inline Word (char const* _str, char const* _locale = null) ;
32  ///
33  /// Copy constructor
34  inline Word (Word const& _word) ;
35  ///
36  /// Destructor
37  inline ~Word () ;
38  ///
39  /// Assignment operator
40  inline Word& operator = (Word const& _word) ;
41
42  static Expr create_expr (wchar_t const* _wstr) ;
43
44  static Expr create_expr (char const* _str, char const* _locale = null) ;
45
46  static uintptr_t ctor (uintptr_t _data) ;
47  static void dtor (uintptr_t _data) ;
48  static bool eq (uintptr_t _data1, uintptr_t _data2) ;
49  static int compare (uintptr_t _data1, uintptr_t _data2) ;
50  static uint32_t hash (uintptr_t _data) ;
51  static pxx::WString to_string (uintptr_t _data) ;
52  static short_type_funcs_t funcs ;
53  static TypeRegister reg ;
54
55};
56
57}
58
59#endif // __rf_word_hh__
60
Note: See TracBrowser for help on using the repository browser.