ReactOS 0.4.16-dev-1059-gb1cf981
__crt_strtox::input_adapter_character_source< InputAdapter > Class Template Reference

#include <corecrt_internal_strtox.h>

Public Types

typedef InputAdapter::char_type char_type
 
typedef __acrt_stdio_char_traits< char_typetraits
 

Public Member Functions

 input_adapter_character_source (InputAdapter *const input_adapter, uint64_t const width, bool *const succeeded) throw ()
 
 input_adapter_character_source (input_adapter_character_source &&other) throw ()
 
input_adapter_character_sourceoperator= (input_adapter_character_source &&other) throw ()
 
 ~input_adapter_character_source ()
 
bool validate () const throw ()
 
char_type get () throw ()
 
void unget (char_type const c) throw ()
 
uint64_t save_state () const throw ()
 
bool restore_state (uint64_t const get_count) throw ()
 

Private Member Functions

 input_adapter_character_source (input_adapter_character_source const &)=delete
 
input_adapter_character_sourceoperator= (input_adapter_character_source const &)=delete
 

Private Attributes

InputAdapter * _input_adapter
 
uint64_t _max_get_count
 
uint64_t _get_count
 
bool_succeeded
 

Detailed Description

template<typename InputAdapter>
class __crt_strtox::input_adapter_character_source< InputAdapter >

Definition at line 1894 of file corecrt_internal_strtox.h.

Member Typedef Documentation

◆ char_type

template<typename InputAdapter >
typedef InputAdapter::char_type __crt_strtox::input_adapter_character_source< InputAdapter >::char_type

Definition at line 1898 of file corecrt_internal_strtox.h.

◆ traits

template<typename InputAdapter >
typedef __acrt_stdio_char_traits<char_type> __crt_strtox::input_adapter_character_source< InputAdapter >::traits

Definition at line 1899 of file corecrt_internal_strtox.h.

Constructor & Destructor Documentation

◆ input_adapter_character_source() [1/3]

template<typename InputAdapter >
__crt_strtox::input_adapter_character_source< InputAdapter >::input_adapter_character_source ( InputAdapter *const  input_adapter,
uint64_t const  width,
bool *const  succeeded 
)
throw (
)
inline

Definition at line 1901 of file corecrt_internal_strtox.h.

1906 : _input_adapter{input_adapter},
1908 _get_count {0 },
1909 _succeeded {succeeded }
1910 {
1911 if (succeeded)
1912 *succeeded = true;
1913 }
GLint GLint GLsizei width
Definition: gl.h:1546

◆ input_adapter_character_source() [2/3]

template<typename InputAdapter >
__crt_strtox::input_adapter_character_source< InputAdapter >::input_adapter_character_source ( input_adapter_character_source< InputAdapter > &&  other)
throw (
)
inline

Definition at line 1915 of file corecrt_internal_strtox.h.

1916 : _input_adapter{other._input_adapter},
1917 _max_get_count{other._max_get_count},
1918 _get_count {other._get_count },
1919 _succeeded {other._succeeded }
1920 {
1921 other._input_adapter = nullptr;
1922 other._succeeded = nullptr;
1923 }
int other
Definition: msacm.c:1376

◆ ~input_adapter_character_source()

template<typename InputAdapter >
__crt_strtox::input_adapter_character_source< InputAdapter >::~input_adapter_character_source ( )
inline

Definition at line 1937 of file corecrt_internal_strtox.h.

1938 {
1939 // If no characters were consumed, report as a failure. This occurs if
1940 // a matching failure occurs on the first character (if it occurs on a
1941 // subsequent character, then the attempt to restore state will have
1942 // failed and will set the failure flag).
1943 if (_succeeded != nullptr && _get_count == 0)
1944 {
1945 *_succeeded = false;
1946 }
1947 }

◆ input_adapter_character_source() [3/3]

template<typename InputAdapter >
__crt_strtox::input_adapter_character_source< InputAdapter >::input_adapter_character_source ( input_adapter_character_source< InputAdapter > const )
privatedelete

Member Function Documentation

◆ get()

template<typename InputAdapter >
char_type __crt_strtox::input_adapter_character_source< InputAdapter >::get ( )
throw (
)
inline

Definition at line 1956 of file corecrt_internal_strtox.h.

1957 {
1958 ++_get_count;
1959
1961 return '\0';
1962
1963 auto c = _input_adapter->get();
1964 if (c == traits::eof)
1965 return '\0';
1966
1967 return static_cast<char_type>(c);
1968 }
const GLubyte * c
Definition: glext.h:8905
#define c
Definition: ke_i.h:80

◆ operator=() [1/2]

template<typename InputAdapter >
input_adapter_character_source & __crt_strtox::input_adapter_character_source< InputAdapter >::operator= ( input_adapter_character_source< InputAdapter > &&  other)
throw (
)
inline

Definition at line 1925 of file corecrt_internal_strtox.h.

1926 {
1927 _input_adapter = other._input_adapter;
1928 _max_get_count = other._max_get_count;
1929 _get_count = other._get_count;
1930 _succeeded = other._succeeded;
1931
1932 other._input_adapter = nullptr;
1933 other._succeeded = nullptr;
1934 return *this;
1935 }

◆ operator=() [2/2]

template<typename InputAdapter >
input_adapter_character_source & __crt_strtox::input_adapter_character_source< InputAdapter >::operator= ( input_adapter_character_source< InputAdapter > const )
privatedelete

◆ restore_state()

template<typename InputAdapter >
bool __crt_strtox::input_adapter_character_source< InputAdapter >::restore_state ( uint64_t const  get_count)
throw (
)
inline

Definition at line 1988 of file corecrt_internal_strtox.h.

1989 {
1990 if (get_count != _get_count)
1991 {
1992 *_succeeded = false;
1993 return false;
1994 }
1995
1996 return true;
1997 }

◆ save_state()

template<typename InputAdapter >
uint64_t __crt_strtox::input_adapter_character_source< InputAdapter >::save_state ( ) const
throw (
)
inline

Definition at line 1983 of file corecrt_internal_strtox.h.

1984 {
1985 return _get_count;
1986 }

◆ unget()

template<typename InputAdapter >
void __crt_strtox::input_adapter_character_source< InputAdapter >::unget ( char_type const  c)
throw (
)
inline

Definition at line 1970 of file corecrt_internal_strtox.h.

1971 {
1972 --_get_count;
1973
1975 return;
1976
1977 if (c == '\0' || c == traits::eof)
1978 return;
1979
1980 _input_adapter->unget(c);
1981 }

◆ validate()

template<typename InputAdapter >
bool __crt_strtox::input_adapter_character_source< InputAdapter >::validate ( ) const
throw (
)
inline

Definition at line 1949 of file corecrt_internal_strtox.h.

1950 {
1951 _VALIDATE_RETURN(_input_adapter != nullptr, EINVAL, false);
1952 _VALIDATE_RETURN(_succeeded != nullptr, EINVAL, false);
1953 return true;
1954 }
#define EINVAL
Definition: acclib.h:90
#define _VALIDATE_RETURN(expr, errorcode, retexpr)

Member Data Documentation

◆ _get_count

◆ _input_adapter

◆ _max_get_count

◆ _succeeded


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