X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=include%2Fc%2B%2B%2Fstl%2Fstl%2F_messages_facets.h;fp=include%2Fc%2B%2B%2Fstl%2Fstl%2F_messages_facets.h;h=eb4f8698968fae80bd432e9c6b744b06d5883624;hp=0000000000000000000000000000000000000000;hb=173d8903eb9d51a4ea7d7fa3e52dc86c9bb6d4f1;hpb=b024710fe2b60cd4a42a8993b61333d6cdb56ca3 diff --git a/include/c++/stl/stl/_messages_facets.h b/include/c++/stl/stl/_messages_facets.h new file mode 100644 index 0000000..eb4f869 --- /dev/null +++ b/include/c++/stl/stl/_messages_facets.h @@ -0,0 +1,181 @@ +/* + * Copyright (c) 1999 + * Silicon Graphics Computer Systems, Inc. + * + * Copyright (c) 1999 + * Boris Fomitchev + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + */ + +// WARNING: This is an internal header file, included by other C++ +// standard library headers. You should not attempt to use this header +// file directly. + + +#ifndef _STLP_INTERNAL_MESSAGES_H +#define _STLP_INTERNAL_MESSAGES_H + +#ifndef _STLP_IOS_BASE_H +# include +#endif + +#ifndef _STLP_C_LOCALE_H +# include +#endif + +#ifndef _STLP_INTERNAL_STRING_H +# include +#endif + +_STLP_BEGIN_NAMESPACE + +// messages facets + +class messages_base { + public: + typedef int catalog; +}; + +template class messages {}; + +_STLP_MOVE_TO_PRIV_NAMESPACE +class _Messages; +_STLP_MOVE_TO_STD_NAMESPACE + +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC messages : public locale::facet, public messages_base { + friend class _Locale_impl; +public: + typedef messages_base::catalog catalog; + typedef char char_type; + typedef string string_type; + + explicit messages(size_t __refs = 0); + + catalog open(const string& __fn, const locale& __loc) const + { return do_open(__fn, __loc); } + string_type get(catalog __c, int __set, int __msgid, + const string_type& __dfault) const + { return do_get(__c, __set, __msgid, __dfault); } + inline void close(catalog __c) const + { do_close(__c); } + + static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; + +private: + messages(_STLP_PRIV _Messages*); + +protected: + messages(size_t, _Locale_messages*); + ~messages(); + + virtual catalog do_open(const string& __fn, const locale& __loc) const; + virtual string_type do_get(catalog __c, int __set, int __msgid, + const string_type& __dfault) const; + virtual void do_close(catalog __c) const; + + void _M_initialize(const char* __name); + +private: + _STLP_PRIV _Messages* _M_impl; +}; + +#if !defined (_STLP_NO_WCHAR_T) + +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC messages : public locale::facet, public messages_base { + friend class _Locale_impl; +public: + typedef messages_base::catalog catalog; + typedef wchar_t char_type; + typedef wstring string_type; + + explicit messages(size_t __refs = 0); + + inline catalog open(const string& __fn, const locale& __loc) const + { return do_open(__fn, __loc); } + inline string_type get(catalog __c, int __set, int __msgid, + const string_type& __dfault) const + { return do_get(__c, __set, __msgid, __dfault); } + inline void close(catalog __c) const + { do_close(__c); } + + static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; + +private: + messages(_STLP_PRIV _Messages*); + +protected: + messages(size_t, _Locale_messages*); + ~messages(); + + virtual catalog do_open(const string& __fn, const locale& __loc) const; + virtual string_type do_get(catalog __c, int __set, int __msgid, + const string_type& __dfault) const; + virtual void do_close(catalog __c) const; + + void _M_initialize(const char* __name); + +private: + _STLP_PRIV _Messages* _M_impl; +}; + +#endif + +template class messages_byname {}; + +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC messages_byname : public messages { +public: + typedef messages_base::catalog catalog; + typedef string string_type; + + explicit messages_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); + +protected: + ~messages_byname(); + +private: + typedef messages_byname _Self; + //explicitely defined as private to avoid warnings: + messages_byname(_Self const&); + _Self& operator = (_Self const&); +}; + +#if !defined (_STLP_NO_WCHAR_T) +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC messages_byname : public messages { +public: + typedef messages_base::catalog catalog; + typedef wstring string_type; + + explicit messages_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); + +protected: + ~messages_byname(); + +private: + typedef messages_byname _Self; + //explicitely defined as private to avoid warnings: + messages_byname(_Self const&); + _Self& operator = (_Self const&); +}; +#endif /* WCHAR_T */ + +_STLP_END_NAMESPACE + +#endif /* _STLP_INTERNAL_MESSAGES_H */ + +// Local Variables: +// mode:C++ +// End: +