27#if defined(_WIN32) && !defined(SWIG_BINDINGS)
28# define USE_EDL_ALLOCATOR
31#ifdef USE_EDL_ALLOCATOR
37EDL_API void *edlStringAlloc(
size_t);
38EDL_API void edlStringFree(
void*);
40class CEDLStringAllocator
43 inline CEDLStringAllocator()
45 allocFunc = edlStringAlloc;
46 freeFunc = edlStringFree;
48 CEDLStringAllocator(CEDLStringAllocator
const &r)
50 allocFunc = r.allocFunc;
51 freeFunc = r.freeFunc;
54 inline explicit CEDLStringAllocator(CEDLStringAllocator<U>
const &r)
56 allocFunc = r.allocFunc;
57 freeFunc = r.freeFunc;
59 inline ~CEDLStringAllocator() {}
62 void *(*allocFunc)(size_t);
63 void (*freeFunc)(
void*);
68 typedef const T* const_pointer;
70 typedef const T& const_reference;
71 typedef std::size_t size_type;
72 typedef std::ptrdiff_t difference_type;
77 typedef CEDLStringAllocator<U> other;
80 inline pointer address (reference v)
const {
return &v; }
81 const_pointer address (const_reference v)
const {
return &v; }
82 size_type max_size ()
const
85 return std::numeric_limits<std::size_t>::max() /
sizeof(T);
88 pointer allocate (size_type n,
const void * = 0)
90 pointer p = (pointer) allocFunc(n *
sizeof(T));
92 throw std::bad_alloc();
95 void deallocate (pointer p, size_type)
100 void construct (pointer p,
const T& v)
105 void destroy (pointer p)
111template <
typename T,
typename U>
112bool operator== (CEDLStringAllocator<T>
const &l, CEDLStringAllocator<U>
const &r)
114 return (l.freeFunc == r.freeFunc);
117template<
typename T,
typename U>
118bool operator!= (CEDLStringAllocator<T>
const &l, CEDLStringAllocator<U>
const &r)
120 return (l.freeFunc != r.freeFunc);
132#elif defined(ANDROID)
142#if defined(USE_EDL_ALLOCATOR) && defined(_WIN32)
145typedef std::basic_string<char, std::char_traits<char>, CEDLStringAllocator<char> >
EDLSysString;
146typedef std::basic_istringstream<char, std::char_traits<char>, CEDLStringAllocator<char> >
EDLSysStringIStream;
147typedef std::basic_ostringstream<char, std::char_traits<char>, CEDLStringAllocator<char> >
EDLSysStringOStream;
149typedef std::basic_string<u16char, std::char_traits<u16char>, CEDLStringAllocator<u16char> >
EDLU16String;
150typedef std::basic_string<u32char, std::char_traits<u32char>, CEDLStringAllocator<u32char> >
EDLU32String;
152typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, CEDLStringAllocator<wchar_t> >
EDLString;
153typedef std::basic_istringstream<wchar_t, std::char_traits<wchar_t>, CEDLStringAllocator<wchar_t> >
EDLStringIStream;
154typedef std::basic_ostringstream<wchar_t, std::char_traits<wchar_t>, CEDLStringAllocator<wchar_t> >
EDLStringOStream;
193 return (
uint8) ((c >=
'0' && c <=
'9') ? (c -
'0') : ((c >=
'a' && c <=
'f') ? (c -
'a' + 10) : (c -
'A' + 10)));
207 size_t minLen = (str1.size() < str2.size()) ? str1.size() : str2.size();
212 for (
size_t i = 0; i < len; i++)
214 c1 = (wchar_t) ::tolower(str1.at(i));
215 c2 = (wchar_t) ::tolower(str2.at(i));
232 return str.find(searchStr);
244 result = str.substr(start, end);
Definition edlvector.h:30
#define _BEGIN_EDL_NAMESPACE
Definition edlnamespaces.h:75
#define _END_EDL_NAMESPACE
Definition edlnamespaces.h:76
bool edlstringEqualsIgnoreCaseCnt(const EDLString &str1, const EDLString &str2, size_t len)
edlstringEqualsIgnoreCaseCnt performs a case-insensitive maximum-length-constrained string equality t...
Definition edlstring.h:203
_BEGIN_EDL_NAMESPACE typedef char16_t u16char
Definition edlstring.h:136
uint32 hashValue(const EDLSysString &str)
std::istringstream EDLSysStringIStream
Definition edlstring.h:159
std::string EDLSysString
Definition edlstring.h:158
size_t edlstringFind(const EDLString &str, EDLString &searchStr)
edlstringFind searches for a substring within a larger string.
Definition edlstring.h:230
std::wstring EDLString
Definition edlstring.h:165
bool equal(const EDLSysString &str1, const EDLSysString &str2)
Definition edlstring.h:178
uint8 sxtob(char c)
sxtob converts a hexadecimal character into corresponding (unsigned) integer value.
Definition edlstring.h:191
void edlstringSubstr(const EDLString &str, EDLString &result, size_t start, size_t end)
edlstringSubstr returns a substring from specified start and end points from a larger string
Definition edlstring.h:242
EDLSysString EDLRawString
Definition edlstring.h:171
wchar_t u32char
Definition edlstring.h:137
std::basic_string< u16char > EDLU16String
Definition edlstring.h:162
std::wostringstream EDLStringOStream
Definition edlstring.h:167
std::ostringstream EDLSysStringOStream
Definition edlstring.h:160
EDL_API EDLSysString EDLStringToEDLSysString(const EDLString &edlString)
EDLStringToEDLSysString converts an (UTF16 or UTF32 depending on platform) EDLString to an EDLSysStri...
EDL_API EDLString EDLSysStringToEDLString(const EDLSysString &edlSysString)
EDLSysStringToEDLString converts an EDLSysString (UTF8) to an EDLString (UTF16 or UTF32 depending on ...
std::wistringstream EDLStringIStream
Definition edlstring.h:166
std::basic_string< u32char > EDLU32String
Definition edlstring.h:163
CEDLVector< EDLString > CEDLStringVect
Definition edlstring.h:173
CEDLVector< EDLSysString > CEDLSysStringVect
Definition edlstring.h:174
CEDLVector< EDLRawString > CEDLRawStringVect
Definition edlstring.h:175
EDL "standard" types including known bit-length signed and unsigned integer type[def]s and definition...
unsigned int uint32
Definition edltypes.h:34
#define EDL_API
Definition edltypes.h:86
unsigned char uint8
Definition edltypes.h:32
Simple template vector class for general use.