 |
NAVTOR SDK
v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
|
|
Go to the documentation of this file. 1 #ifndef SDK_SDK_STRING_HANDLER_H_
11 #define SDK_SDK_STRING_HANDLER_H_
34 if (0 == sdk_string.length || NULL == sdk_string.data)
41 for (
unsigned int counter = 0; counter < sdk_string.length; ++counter) {
42 char symb =
static_cast<char>(sdk_string.data[counter]);
62 if (0 == sdk_string.length || NULL == sdk_string.data)
63 return std::wstring();
68 std::copy(sdk_string.data, sdk_string.data + sdk_string.length,
69 std::back_inserter(wstr));
76 #if !defined(WideFromSDKString)
77 #define WideFromSDKString(arg) SDKMakeWString(arg)
80 #if !defined(ASCIIFromSDKString)
81 #define ASCIIFromSDKString(arg) SDKMakeString(arg)
84 static inline SDKResult SDKStringFromWide(
const std::wstring& wide,
85 SDKString* sdk_string) {
87 static_cast<SDKUInt32
>(wide.size()));
90 static inline SDKResult SDKStringFromASCII(
const std::string& ascii,
91 SDKString* sdk_string) {
93 static_cast<SDKUInt32
>(ascii.size()));
130 static_cast<SDKUInt32
>(wide.size()));
138 if (!ascii.empty()) {
140 static_cast<SDKUInt32
>(ascii.size()));
190 #if defined(SDK_HAS_CXX0X_RVALUE_REFS)
204 assert(&from !=
this);
205 static_cast<SDKString&
>(*this) = from;
212 assert(&from !=
this);
213 static_cast<SDKString&
>(*this) = from;
236 static_cast<SDKUInt32
>(ascii.size()));
243 static_cast<SDKUInt32
>(wide.size()));
260 return static_cast<SDKString*
>(
this);
276 static_cast<SDKString&
>(*this) = instance;
284 instance =
static_cast<SDKString&
>(*this);
301 *any.str =
static_cast<SDKString&
>(*this);
313 return WideFromSDKString((*
this));
317 return ASCIIFromSDKString((*
this));
322 return (*this).length;
325 SDKUInt16* GetData() {
329 const SDKUInt16* GetData()
const {
333 SDKString& GetReference() {
334 return *(
static_cast<SDKString*
>(
this));
337 const SDKString& GetReference()
const {
338 return *(
static_cast<const SDKString*
>(
this));
343 friend class SDKAnyHandler;
359 return m_instance.length;
362 SDKUInt16* GetData() {
363 return m_instance.data;
366 const SDKUInt16* GetData()
const {
367 return m_instance.data;
372 SDKStringWrapper(
const SDKStringWrapper&);
373 void operator=(
const SDKStringWrapper&);
375 SDKString& m_instance;
396 operator SDKString&() {
400 operator const SDKString&()
const {
404 SDKString& GetReference() {
414 SDKString m_sdk_string;
415 std::wstring& m_wstr;
433 if (str1->length != str2->length)
436 if (0 == str1->length)
439 if (NULL == str1->data || NULL == str2->data)
443 int cmp = memcmp(str1->data, str2->data,
444 str1->length *
sizeof(str1->data[0]));
446 int cmp = std::memcmp(str1->data, str2->data,
447 str1->length *
sizeof(str1->data[0]));
455 #endif // SDK_SDK_STRING_HANDLER_H_
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringInit(SDKString *str)
Initializes SDKString structure.
SDKStringHandler & operator=(const SDKStringHandler &from)
Assign operator.
Definition: sdk_string_handler.h:173
Helps to get wide string results from SDKString interface parameters.
Definition: sdk_string_handler.h:385
SDKStringHandler(const wchar_t *wide, SDKUInt32 size=0)
Creates handler from wide string.
Definition: sdk_string_handler.h:116
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringCreateA(SDKString *str, const char *ascii_string, SDKUInt32 size)
Creates SDKString and initializes it with specified string, if 'size' is not 0, only 'size' chars are...
SDKStringHandler(const std::string &ascii)
Creates handler from the std::wstring string.
Definition: sdk_string_handler.h:136
SDKAny DetachAsAny()
Detaches existing value placing it inside any.
Definition: sdk_string_handler.h:298
void operator=(const char *ascii)
Assign operator.
Definition: sdk_string_handler.h:221
Portable way of including 'memory' header.
SDKStringHandler()
Creates handler with empty string.
Definition: sdk_string_handler.h:103
SDKStringHandler(const std::wstring &wide)
Creates handler from the std::wstring string.
Definition: sdk_string_handler.h:126
void operator=(const wchar_t *wide)
Assign operator.
Definition: sdk_string_handler.h:227
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKAnyInitString(SDKAny *any)
Initializes SDKAny value to contain pointer to empty SDKString.
void operator=(const std::wstring &wide)
Assign operator.
Definition: sdk_string_handler.h:240
SDKStringHandler(SDKString &instance, bool duplicate)
Creates handler on the specified string.
Definition: sdk_string_handler.h:152
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringDelete(SDKString *str)
Deletes SDKString instance.
bool IsSDKStringEqual(const SDKString *str1, const SDKString *str2)
Compares two SDKStrings.
Definition: sdk_string_handler.h:427
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringCreateI(SDKString *str, const SDKUInt16 *int_string, SDKUInt32 size)
Creates SDKString from its internal representation. 'size' should contain length of the initializatio...
std::string ASCIIString() const
Returns SDKString as std::string.
Definition: sdk_string_handler.h:316
SDKString Copy()
Assign operator.
Definition: sdk_string_handler.h:290
SDKStringHandler(const SDKString &instance)
Creates handler on copy of the specified string.
Definition: sdk_string_handler.h:146
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
This class wraps the SDKString type.
Definition: sdk_string_handler.h:100
void operator=(const std::string &ascii)
Assign operator.
Definition: sdk_string_handler.h:233
SDKStringHandler(const char *ascii, SDKUInt32 size=0)
Creates handler from ASCII string.
Definition: sdk_string_handler.h:110
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringCompare(const SDKString *str1, const SDKString *str2)
Compares strings.
~SDKStringHandler()
Destroys internal sdk string.
Definition: sdk_string_handler.h:168
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringDuplicate(const SDKString *src, SDKString *dst)
Duplicates SDKString instance.
SDKStringHandler(const SDKStringHandler &from)
Copy constructor.
Definition: sdk_string_handler.h:162
bool operator==(const wchar_t *wide) const
Comparison operator.
Definition: sdk_string_handler.h:253
SDKString * operator&()
Returns address of the internal sdk string.
Definition: sdk_string_handler.h:259
sdk::SDKStringHandler ScopedString
Synonym for the SDKStringHandler.
Definition: sdk_string_handler.h:347
SDK_EXTERN_C SDK_BASE_LIBRARY_EXPORT_API SDKResult SDK_APICALLTYPE SDKStringCreateW(SDKString *str, const wchar_t *wide_string, SDKUInt32 size)
Creates SDKString and initializes it with specified string if 'size' is not 0, only 'size' chars are ...
static std::wstring SDKMakeWString(const SDKString &sdk_string)
Converts SDKString to std::wstring.
Definition: sdk_string_handler.h:61
SDKString Detach()
Detaches existing value.
Definition: sdk_string_handler.h:282
SDKUInt64 GetLength() const
String properties.
Definition: sdk_string_handler.h:358
SDKUInt64 GetLength() const
String properties.
Definition: sdk_string_handler.h:321
static const SDKResult kSDKResult_True
Operation completed successfully with true result.
Definition: sdk_results.h:25
static std::string SDKMakeString(const SDKString &sdk_string)
Converts SDKString to std::string.
Definition: sdk_string_handler.h:33
void Clear()
Clears existing value.
Definition: sdk_string_handler.h:307
Simple wrapper to access the SDKString properties.
Definition: sdk_string_handler.h:352
std::wstring WString() const
Returns SDKString as std::wstring.
Definition: sdk_string_handler.h:312
bool operator==(const char *ascii) const
Comparison operator.
Definition: sdk_string_handler.h:247
SDKStringHandler & Attach(SDKString &instance)
Returns reference to the internal sdk string.
Definition: sdk_string_handler.h:274
Functions to work with SDK basic types.
SDKStringHandler & operator=(const SDKString &from)
Assign operator.
Definition: sdk_string_handler.h:182