1951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 2951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (c) 1999 3951a39d68df598db08dfced8b4707755864a0492Ying Wang * Silicon Graphics Computer Systems, Inc. 4951a39d68df598db08dfced8b4707755864a0492Ying Wang * 5951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (c) 1999 6951a39d68df598db08dfced8b4707755864a0492Ying Wang * Boris Fomitchev 7951a39d68df598db08dfced8b4707755864a0492Ying Wang * 8951a39d68df598db08dfced8b4707755864a0492Ying Wang * This material is provided "as is", with absolutely no warranty expressed 9951a39d68df598db08dfced8b4707755864a0492Ying Wang * or implied. Any use is at your own risk. 10951a39d68df598db08dfced8b4707755864a0492Ying Wang * 11951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to use or copy this software for any purpose is hereby granted 12951a39d68df598db08dfced8b4707755864a0492Ying Wang * without fee, provided the above notices are retained on all copies. 13951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to modify the code and to distribute modified code is granted, 14951a39d68df598db08dfced8b4707755864a0492Ying Wang * provided the above notices are retained, and a notice that the code was 15951a39d68df598db08dfced8b4707755864a0492Ying Wang * modified is included with the above copyright notice. 16951a39d68df598db08dfced8b4707755864a0492Ying Wang * 17951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 18951a39d68df598db08dfced8b4707755864a0492Ying Wang 19951a39d68df598db08dfced8b4707755864a0492Ying Wang// WARNING: This is an internal header file, included by other C++ 20951a39d68df598db08dfced8b4707755864a0492Ying Wang// standard library headers. You should not attempt to use this header 21951a39d68df598db08dfced8b4707755864a0492Ying Wang// file directly. 22951a39d68df598db08dfced8b4707755864a0492Ying Wang 23951a39d68df598db08dfced8b4707755864a0492Ying Wang 24951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_INTERNAL_MESSAGES_H 25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _STLP_INTERNAL_MESSAGES_H 26951a39d68df598db08dfced8b4707755864a0492Ying Wang 27951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_IOS_BASE_H 28951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_ios_base.h> 29951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 30951a39d68df598db08dfced8b4707755864a0492Ying Wang 31951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_C_LOCALE_H 32951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/c_locale.h> 33951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 34951a39d68df598db08dfced8b4707755864a0492Ying Wang 35951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_INTERNAL_STRING_H 36951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_string.h> 37951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 38951a39d68df598db08dfced8b4707755864a0492Ying Wang 39951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_BEGIN_NAMESPACE 40951a39d68df598db08dfced8b4707755864a0492Ying Wang 41951a39d68df598db08dfced8b4707755864a0492Ying Wang// messages facets 42951a39d68df598db08dfced8b4707755864a0492Ying Wang 43951a39d68df598db08dfced8b4707755864a0492Ying Wangclass messages_base { 44951a39d68df598db08dfced8b4707755864a0492Ying Wang public: 45951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef int catalog; 46951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 47951a39d68df598db08dfced8b4707755864a0492Ying Wang 48951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> class messages {}; 49951a39d68df598db08dfced8b4707755864a0492Ying Wang 50951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_MOVE_TO_PRIV_NAMESPACE 51951a39d68df598db08dfced8b4707755864a0492Ying Wangclass _Messages; 52951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_MOVE_TO_STD_NAMESPACE 53951a39d68df598db08dfced8b4707755864a0492Ying Wang 54951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_TEMPLATE_NULL 55951a39d68df598db08dfced8b4707755864a0492Ying Wangclass _STLP_CLASS_DECLSPEC messages<char> : public locale::facet, public messages_base { 56951a39d68df598db08dfced8b4707755864a0492Ying Wangpublic: 57951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef messages_base::catalog catalog; 58951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef char char_type; 59951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef string string_type; 60951a39d68df598db08dfced8b4707755864a0492Ying Wang 61951a39d68df598db08dfced8b4707755864a0492Ying Wang explicit messages(size_t __refs = 0); 62951a39d68df598db08dfced8b4707755864a0492Ying Wang 63951a39d68df598db08dfced8b4707755864a0492Ying Wang catalog open(const string& __fn, const locale& __loc) const 64951a39d68df598db08dfced8b4707755864a0492Ying Wang { return do_open(__fn, __loc); } 65951a39d68df598db08dfced8b4707755864a0492Ying Wang string_type get(catalog __c, int __set, int __msgid, 66951a39d68df598db08dfced8b4707755864a0492Ying Wang const string_type& __dfault) const 67951a39d68df598db08dfced8b4707755864a0492Ying Wang { return do_get(__c, __set, __msgid, __dfault); } 68951a39d68df598db08dfced8b4707755864a0492Ying Wang inline void close(catalog __c) const 69951a39d68df598db08dfced8b4707755864a0492Ying Wang { do_close(__c); } 70951a39d68df598db08dfced8b4707755864a0492Ying Wang 71951a39d68df598db08dfced8b4707755864a0492Ying Wang static _STLP_STATIC_DECLSPEC locale::id id; 72951a39d68df598db08dfced8b4707755864a0492Ying Wang 73951a39d68df598db08dfced8b4707755864a0492Ying Wangprotected: 74951a39d68df598db08dfced8b4707755864a0492Ying Wang ~messages() {} 75951a39d68df598db08dfced8b4707755864a0492Ying Wang 76951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual catalog do_open(const string& __fn, const locale& __loc) const 77951a39d68df598db08dfced8b4707755864a0492Ying Wang { return -1; } 78951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual string_type do_get(catalog __c, int __set, int __msgid, 79951a39d68df598db08dfced8b4707755864a0492Ying Wang const string_type& __dfault) const 80951a39d68df598db08dfced8b4707755864a0492Ying Wang { return __dfault; } 81951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual void do_close(catalog __c) const 82951a39d68df598db08dfced8b4707755864a0492Ying Wang {} 83951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 84951a39d68df598db08dfced8b4707755864a0492Ying Wang 85951a39d68df598db08dfced8b4707755864a0492Ying Wang#if !defined (_STLP_NO_WCHAR_T) 86951a39d68df598db08dfced8b4707755864a0492Ying Wang 87951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_TEMPLATE_NULL 88951a39d68df598db08dfced8b4707755864a0492Ying Wangclass _STLP_CLASS_DECLSPEC messages<wchar_t> : public locale::facet, public messages_base { 89951a39d68df598db08dfced8b4707755864a0492Ying Wangpublic: 90951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef messages_base::catalog catalog; 91951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef wchar_t char_type; 92951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef wstring string_type; 93951a39d68df598db08dfced8b4707755864a0492Ying Wang 94951a39d68df598db08dfced8b4707755864a0492Ying Wang explicit messages(size_t __refs = 0); 95951a39d68df598db08dfced8b4707755864a0492Ying Wang 96951a39d68df598db08dfced8b4707755864a0492Ying Wang inline catalog open(const string& __fn, const locale& __loc) const 97951a39d68df598db08dfced8b4707755864a0492Ying Wang { return do_open(__fn, __loc); } 98951a39d68df598db08dfced8b4707755864a0492Ying Wang inline string_type get(catalog __c, int __set, int __msgid, 99951a39d68df598db08dfced8b4707755864a0492Ying Wang const string_type& __dfault) const 100951a39d68df598db08dfced8b4707755864a0492Ying Wang { return do_get(__c, __set, __msgid, __dfault); } 101951a39d68df598db08dfced8b4707755864a0492Ying Wang inline void close(catalog __c) const 102951a39d68df598db08dfced8b4707755864a0492Ying Wang { do_close(__c); } 103951a39d68df598db08dfced8b4707755864a0492Ying Wang 104951a39d68df598db08dfced8b4707755864a0492Ying Wang static _STLP_STATIC_DECLSPEC locale::id id; 105951a39d68df598db08dfced8b4707755864a0492Ying Wang 106951a39d68df598db08dfced8b4707755864a0492Ying Wangprotected: 107951a39d68df598db08dfced8b4707755864a0492Ying Wang ~messages() {} 108951a39d68df598db08dfced8b4707755864a0492Ying Wang 109951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual catalog do_open(const string& __fn, const locale& __loc) const 110951a39d68df598db08dfced8b4707755864a0492Ying Wang { return -1; } 111951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual string_type do_get(catalog __c, int __set, int __msgid, 112951a39d68df598db08dfced8b4707755864a0492Ying Wang const string_type& __dfault) const 113951a39d68df598db08dfced8b4707755864a0492Ying Wang { return __dfault; } 114951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual void do_close(catalog __c) const 115951a39d68df598db08dfced8b4707755864a0492Ying Wang {} 116951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 117951a39d68df598db08dfced8b4707755864a0492Ying Wang 118951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 119951a39d68df598db08dfced8b4707755864a0492Ying Wang 120951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> class messages_byname {}; 121951a39d68df598db08dfced8b4707755864a0492Ying Wang 122951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_TEMPLATE_NULL 123951a39d68df598db08dfced8b4707755864a0492Ying Wangclass _STLP_CLASS_DECLSPEC messages_byname<char> : public messages<char> { 124951a39d68df598db08dfced8b4707755864a0492Ying Wang friend class _Locale_impl; 125951a39d68df598db08dfced8b4707755864a0492Ying Wangpublic: 126951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef messages_base::catalog catalog; 127951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef string string_type; 128951a39d68df598db08dfced8b4707755864a0492Ying Wang 129951a39d68df598db08dfced8b4707755864a0492Ying Wang explicit messages_byname(const char* __name, size_t __refs = 0); 130951a39d68df598db08dfced8b4707755864a0492Ying Wang 131951a39d68df598db08dfced8b4707755864a0492Ying Wangprotected: 132951a39d68df598db08dfced8b4707755864a0492Ying Wang ~messages_byname(); 133951a39d68df598db08dfced8b4707755864a0492Ying Wang 134951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual catalog do_open(const string& __fn, const locale& __loc) const; 135951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual string_type do_get(catalog __c, int __set, int __msgid, 136951a39d68df598db08dfced8b4707755864a0492Ying Wang const string_type& __dfault) const; 137951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual void do_close(catalog __c) const; 138951a39d68df598db08dfced8b4707755864a0492Ying Wang 139951a39d68df598db08dfced8b4707755864a0492Ying Wangprivate: 140951a39d68df598db08dfced8b4707755864a0492Ying Wang messages_byname(_Locale_messages*); 141951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef messages_byname<char> _Self; 142951a39d68df598db08dfced8b4707755864a0492Ying Wang //explicitely defined as private to avoid warnings: 143951a39d68df598db08dfced8b4707755864a0492Ying Wang messages_byname(_Self const&); 144951a39d68df598db08dfced8b4707755864a0492Ying Wang _Self& operator = (_Self const&); 145951a39d68df598db08dfced8b4707755864a0492Ying Wang 146951a39d68df598db08dfced8b4707755864a0492Ying Wang _STLP_PRIV _Messages* _M_impl; 147951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 148951a39d68df598db08dfced8b4707755864a0492Ying Wang 149951a39d68df598db08dfced8b4707755864a0492Ying Wang#if !defined (_STLP_NO_WCHAR_T) 150951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_TEMPLATE_NULL 151951a39d68df598db08dfced8b4707755864a0492Ying Wangclass _STLP_CLASS_DECLSPEC messages_byname<wchar_t> : public messages<wchar_t> { 152951a39d68df598db08dfced8b4707755864a0492Ying Wang friend class _Locale_impl; 153951a39d68df598db08dfced8b4707755864a0492Ying Wangpublic: 154951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef messages_base::catalog catalog; 155951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef wstring string_type; 156951a39d68df598db08dfced8b4707755864a0492Ying Wang 157951a39d68df598db08dfced8b4707755864a0492Ying Wang explicit messages_byname(const char* __name, size_t __refs = 0); 158951a39d68df598db08dfced8b4707755864a0492Ying Wang 159951a39d68df598db08dfced8b4707755864a0492Ying Wangprotected: 160951a39d68df598db08dfced8b4707755864a0492Ying Wang ~messages_byname(); 161951a39d68df598db08dfced8b4707755864a0492Ying Wang 162951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual catalog do_open(const string& __fn, const locale& __loc) const; 163951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual string_type do_get(catalog __c, int __set, int __msgid, 164951a39d68df598db08dfced8b4707755864a0492Ying Wang const string_type& __dfault) const; 165951a39d68df598db08dfced8b4707755864a0492Ying Wang virtual void do_close(catalog __c) const; 166951a39d68df598db08dfced8b4707755864a0492Ying Wang 167951a39d68df598db08dfced8b4707755864a0492Ying Wangprivate: 168951a39d68df598db08dfced8b4707755864a0492Ying Wang messages_byname(_Locale_messages*); 169951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef messages_byname<wchar_t> _Self; 170951a39d68df598db08dfced8b4707755864a0492Ying Wang //explicitely defined as private to avoid warnings: 171951a39d68df598db08dfced8b4707755864a0492Ying Wang messages_byname(_Self const&); 172951a39d68df598db08dfced8b4707755864a0492Ying Wang _Self& operator = (_Self const&); 173951a39d68df598db08dfced8b4707755864a0492Ying Wang 174951a39d68df598db08dfced8b4707755864a0492Ying Wang _STLP_PRIV _Messages* _M_impl; 175951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 176951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* WCHAR_T */ 177951a39d68df598db08dfced8b4707755864a0492Ying Wang 178951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_END_NAMESPACE 179951a39d68df598db08dfced8b4707755864a0492Ying Wang 180951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* _STLP_INTERNAL_MESSAGES_H */ 181951a39d68df598db08dfced8b4707755864a0492Ying Wang 182951a39d68df598db08dfced8b4707755864a0492Ying Wang// Local Variables: 183951a39d68df598db08dfced8b4707755864a0492Ying Wang// mode:C++ 184951a39d68df598db08dfced8b4707755864a0492Ying Wang// End: 185951a39d68df598db08dfced8b4707755864a0492Ying Wang 186