yapf/strapi.hpp
author KUDr
Sun, 31 Dec 2006 23:48:04 +0000
branchcustombridgeheads
changeset 5618 a7db50b9f817
parent 5616 0570ae953222
child 5619 a2f1d08e2215
permissions -rw-r--r--
(svn r7710) [cbh] - Fix: [YAPF] one more assert fixed. Call from the TrainController() added by (r7705) has broken YAPF because it was called when vehicle was already on the next tile (with cbh choice). Before it was always called before the train entered tile with choice.
5616
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     1
/* $Id$ */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     2
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     3
#ifndef  STRAPI_HPP
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     4
#define  STRAPI_HPP
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     5
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     6
#include <string.h>
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     7
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     8
/** String API mapper base - just mapping by character type, not by case sensitivity yet.
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
     9
	* Class template CStrApiBaseT declaration is general, but following inline method
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    10
	* definitions are specialized by character type. Class is not used directly, but only
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    11
	* as a base class for template class CStrApiT */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    12
template <typename Tchar>
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    13
class CStrApiBaseT
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    14
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    15
public:
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    16
	/** ::strlen wrapper */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    17
	static size_t StrLen(const Tchar *s);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    18
	static int SPrintFL(Tchar *buf, size_t count, const Tchar *fmt, va_list args);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    19
};
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    20
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    21
/** ::strlen wrapper specialization for char */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    22
template <> /*static*/ inline size_t CStrApiBaseT<char>::StrLen(const char *s)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    23
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    24
	return ::strlen(s);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    25
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    26
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    27
/** ::strlen wrapper specialization for wchar_t */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    28
template <> /*static*/ inline size_t CStrApiBaseT<wchar_t>::StrLen(const wchar_t *s)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    29
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    30
	return ::wcslen(s);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    31
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    32
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    33
/** ::vsprintf wrapper specialization for char */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    34
template <> /*static*/ inline int CStrApiBaseT<char>::SPrintFL(char *buf, size_t count, const char *fmt, va_list args)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    35
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    36
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    37
	return ::vsnprintf_s(buf, count, count - 1, fmt, args);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    38
#else // ! VC 8.0 and above
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    39
	return ::vsnprintf(buf, count, fmt, args);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    40
#endif
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    41
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    42
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    43
/** ::vsprintf wrapper specialization for wchar_t */
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    44
template <> /*static*/ inline int CStrApiBaseT<wchar_t>::SPrintFL(wchar_t *buf, size_t count, const wchar_t *fmt, va_list args)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    45
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    46
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    47
	return ::_vsnwprintf_s(buf, count, count - 1, fmt, args);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    48
#else // ! VC 8.0 and above
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    49
	return ::vswprintf(buf, count, fmt, args);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    50
#endif
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    51
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    52
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    53
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    54
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    55
template <typename Tchar, bool TcaseInsensitive>
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    56
class CStrApiT : public CStrApiBaseT<Tchar>
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    57
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    58
public:
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    59
	static int StrCmp(const Tchar *s1, const Tchar *s2);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    60
};
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    61
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    62
template <> /*static*/ inline int CStrApiT<char, false>::StrCmp(const char *s1, const char *s2)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    63
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    64
	return ::strcmp(s1, s2);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    65
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    66
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    67
template <> /*static*/ inline int CStrApiT<char, true>::StrCmp(const char *s1, const char *s2)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    68
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    69
	return ::_stricmp(s1, s2);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    70
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    71
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    72
template <> /*static*/ inline int CStrApiT<wchar_t, false>::StrCmp(const wchar_t *s1, const wchar_t *s2)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    73
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    74
	return ::wcscmp(s1, s2);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    75
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    76
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    77
template <> /*static*/ inline int CStrApiT<wchar_t, true>::StrCmp(const wchar_t *s1, const wchar_t *s2)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    78
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    79
	return ::_wcsicmp(s1, s2);
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    80
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    81
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents:
diff changeset
    82
#endif /* STRAPI_HPP */