ReactOS  0.4.14-dev-293-g2b39b42
codecvt_byname< wchar_t, char, mbstate_t > Class Reference

#include <_codecvt.h>

Inheritance diagram for codecvt_byname< wchar_t, char, mbstate_t >:
Collaboration diagram for codecvt_byname< wchar_t, char, mbstate_t >:

Public Member Functions

 codecvt_byname (const char *__name, size_t __refs=0)
 
- Public Member Functions inherited from codecvt< wchar_t, char, mbstate_t >
 codecvt (size_t __refs=0)
 
result out (state_type &__state, const wchar_t *__from, const wchar_t *__from_end, const wchar_t *&__from_next, char *__to, char *__to_limit, char *&__to_next) const
 
result unshift (state_type &__state, char *__to, char *__to_limit, char *&__to_next) const
 
result in (state_type &__state, const char *__from, const char *__from_end, const char *&__from_next, wchar_t *__to, wchar_t *__to_limit, wchar_t *&__to_next) const
 
int encoding () const _STLP_NOTHROW
 
bool always_noconv () const _STLP_NOTHROW
 
int length (state_type &__state, const char *__from, const char *__from_end, size_t __max) const
 
int max_length () const _STLP_NOTHROW
 

Protected Member Functions

 ~codecvt_byname ()
 
virtual result do_out (state_type &__state, const wchar_t *__from, const wchar_t *__from_end, const wchar_t *&__from_next, char *__to, char *__to_limit, char *&__to_next) const
 
virtual result do_in (state_type &__state, const char *__from, const char *__from_end, const char *&__from_next, wchar_t *__to, wchar_t *__to_limit, wchar_t *&__to_next) const
 
virtual result do_unshift (state_type &__state, char *__to, char *__to_limit, char *&__to_next) const
 
virtual int do_encoding () const _STLP_NOTHROW
 
virtual bool do_always_noconv () const _STLP_NOTHROW
 
virtual int do_length (state_type &__state, const char *__from, const char *__end, size_t __max) const
 
virtual int do_max_length () const _STLP_NOTHROW
 
- Protected Member Functions inherited from codecvt< wchar_t, char, mbstate_t >
 ~codecvt ()
 
- Protected Member Functions inherited from locale::facet
 facet (size_t __init_count=0)
 
virtual ~facet ()
 
- Protected Member Functions inherited from _Refcount_Base
 _Refcount_Base (__stl_atomic_t __n)
 
__stl_atomic_t _M_incr ()
 
__stl_atomic_t _M_decr ()
 

Private Member Functions

 codecvt_byname (_Locale_codecvt *__cvt)
 
 codecvt_byname (const codecvt_byname< wchar_t, char, mbstate_t > &)
 
codecvt_byname< wchar_t, char, mbstate_t > & operator= (const codecvt_byname< wchar_t, char, mbstate_t > &)
 

Private Attributes

_Locale_codecvt_M_codecvt
 

Friends

class _Locale_impl
 

Additional Inherited Members

- Public Types inherited from codecvt< wchar_t, char, mbstate_t >
typedef wchar_t intern_type
 
typedef char extern_type
 
typedef mbstate_t state_type
 
- Public Types inherited from codecvt_base
enum  result { ok, partial, error, noconv }
 
- Static Public Attributes inherited from codecvt< wchar_t, char, mbstate_t >
static _STLP_STATIC_DECLSPEC locale::id id = { 16 }
 

Detailed Description

Definition at line 383 of file _codecvt.h.

Constructor & Destructor Documentation

◆ codecvt_byname() [1/3]

codecvt_byname< wchar_t, char, mbstate_t >::codecvt_byname ( const char __name,
size_t  __refs = 0 
)
explicit

Definition at line 290 of file facets_byname.cpp.

292  if (!name)
294 
295  int __err_code;
297  _M_codecvt = _STLP_PRIV __acquire_codecvt(name, buf, 0, &__err_code);
298  if (!_M_codecvt)
299  locale::_M_throw_on_creation_failure(__err_code, name, "ctype");
300 }
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
static void _STLP_FUNCTION_THROWS _STLP_CALL _M_throw_on_creation_failure(int __err_code, const char *name, const char *facet)
Definition: locale.cpp:68
static void _STLP_FUNCTION_THROWS _STLP_CALL _M_throw_on_null_name()
Definition: locale.cpp:57
#define _STLP_PRIV
Definition: _dm.h:70
_Locale_codecvt *_STLP_CALL __acquire_codecvt(const char *&name, char *buf, _Locale_name_hint *hint, int *__err_code)
#define _Locale_MAX_SIMPLE_NAME
Definition: c_locale.h:54
Definition: name.c:36

◆ ~codecvt_byname()

Definition at line 302 of file facets_byname.cpp.

#define _STLP_PRIV
Definition: _dm.h:70
void _STLP_CALL __release_codecvt(_Locale_codecvt *cat)

◆ codecvt_byname() [2/3]

Definition at line 425 of file _codecvt.h.

426  : _M_codecvt(__cvt) {}

◆ codecvt_byname() [3/3]

Member Function Documentation

◆ do_always_noconv()

bool codecvt_byname< wchar_t, char, mbstate_t >::do_always_noconv ( ) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 402 of file facets_byname.cpp.

403 { return false; }

◆ do_encoding()

int codecvt_byname< wchar_t, char, mbstate_t >::do_encoding ( ) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 391 of file facets_byname.cpp.

391  {
393  int max_width = _WLocale_mb_cur_max(_M_codecvt);
394  int min_width = _WLocale_mb_cur_min(_M_codecvt);
395  return min_width == max_width ? min_width : 0;
396  }
397  else
398  return -1;
399 }
int _WLocale_is_stateless(struct _Locale_codecvt *)
int _WLocale_mb_cur_max(struct _Locale_codecvt *)
int _WLocale_mb_cur_min(struct _Locale_codecvt *)

◆ do_in()

codecvt< wchar_t, char, mbstate_t >::result codecvt_byname< wchar_t, char, mbstate_t >::do_in ( state_type __state,
const char __from,
const char __from_end,
const char *&  __from_next,
wchar_t __to,
wchar_t __to_limit,
wchar_t *&  __to_next 
) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 338 of file facets_byname.cpp.

344  {
345  while (from != from_end && to != to_end) {
346  size_t chars_read = _WLocale_mbtowc(_M_codecvt,
347  to, from, from_end - from,
348  &state);
349  if (chars_read == (size_t) -1) {
350  from_next = from;
351  to_next = to;
352  return error;
353  }
354 
355  if (chars_read == (size_t) -2) {
356  from_next = from;
357  to_next = to;
358  return partial;
359  }
360 
361  from += chars_read;
362  to++;
363  }
364 
365  from_next = from;
366  to_next = to;
367  return ok;
368 }
size_t _WLocale_mbtowc(struct _Locale_codecvt *, wchar_t *, const char *, size_t, mbstate_t *)
static int state
Definition: maze.c:121
CardRegion * from
Definition: spigame.cpp:19

◆ do_length()

int codecvt_byname< wchar_t, char, mbstate_t >::do_length ( state_type __state,
const char __from,
const char __end,
size_t  __max 
) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 406 of file facets_byname.cpp.

409  {
410  size_t __count = 0;
411  while (from != end && mx--) {
412  intern_type __dummy;
413  size_t chars_read = _WLocale_mbtowc(_M_codecvt,
414  &__dummy, from, end - from,
415  &state);
416  if ((chars_read == (size_t) -1) || (chars_read == (size_t) -2)) // error or partial
417  break;
418  __count += chars_read;
419  from += chars_read;
420  }
421  return int(__count);
422 }
GLuint GLuint end
Definition: gl.h:1545
size_t _WLocale_mbtowc(struct _Locale_codecvt *, wchar_t *, const char *, size_t, mbstate_t *)
static int state
Definition: maze.c:121
CardRegion * from
Definition: spigame.cpp:19
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31

◆ do_max_length()

int codecvt_byname< wchar_t, char, mbstate_t >::do_max_length ( ) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 425 of file facets_byname.cpp.

426 { return _WLocale_mb_cur_max(_M_codecvt); }
int _WLocale_mb_cur_max(struct _Locale_codecvt *)

◆ do_out()

codecvt< wchar_t, char, mbstate_t >::result codecvt_byname< wchar_t, char, mbstate_t >::do_out ( state_type __state,
const wchar_t __from,
const wchar_t __from_end,
const wchar_t *&  __from_next,
char __to,
char __to_limit,
char *&  __to_next 
) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 306 of file facets_byname.cpp.

312  {
313  while (from != from_end && to != to_limit) {
314  size_t chars_stored = _WLocale_wctomb(_M_codecvt,
315  to, to_limit - to, *from,
316  &state);
317  if (chars_stored == (size_t) -1) {
318  from_next = from;
319  to_next = to;
320  return error;
321  }
322  else if (chars_stored == (size_t) -2) {
323  from_next = from;
324  to_next = to;
325  return partial;
326  }
327 
328  ++from;
329  to += chars_stored;
330  }
331 
332  from_next = from;
333  to_next = to;
334  return ok;
335 }
static int state
Definition: maze.c:121
size_t _WLocale_wctomb(struct _Locale_codecvt *, char *, size_t, const wchar_t, mbstate_t *)
CardRegion * from
Definition: spigame.cpp:19

◆ do_unshift()

codecvt< wchar_t, char, mbstate_t >::result codecvt_byname< wchar_t, char, mbstate_t >::do_unshift ( state_type __state,
char __to,
char __to_limit,
char *&  __to_next 
) const
protectedvirtual

Reimplemented from codecvt< wchar_t, char, mbstate_t >.

Definition at line 371 of file facets_byname.cpp.

374  {
375  to_next = to;
377  to, to_limit - to, &to_next);
378  if (result == (size_t) -1)
379  return error;
380  else if (result == (size_t) -2)
381  return partial;
382  else
383 # if defined (__ISCPP__)
384  return /*to_next == to ? noconv :*/ ok;
385 # else
386  return to_next == to ? noconv : ok;
387 # endif
388 }
size_t _WLocale_unshift(struct _Locale_codecvt *, mbstate_t *, char *, size_t, char **)
static int state
Definition: maze.c:121
GLuint64EXT * result
Definition: glext.h:11304

◆ operator=()

Friends And Related Function Documentation

◆ _Locale_impl

friend class _Locale_impl
friend

Definition at line 385 of file _codecvt.h.

Member Data Documentation

◆ _M_codecvt

Definition at line 430 of file _codecvt.h.


The documentation for this class was generated from the following files: