sbgECom Library  5.2.590-stable
Interface SBG Systems IMU/AHRS/INS
Loading...
Searching...
No Matches
sbgString.h
Go to the documentation of this file.
1
32
33#ifndef SBG_STRING_H
34#define SBG_STRING_H
35
36// sbgCommonLib headers
37#include <sbgCommon.h>
39
40//----------------------------------------------------------------------//
41//- Header (open extern C block) -//
42//----------------------------------------------------------------------//
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
48//----------------------------------------------------------------------//
49//- Constant definitions -//
50//----------------------------------------------------------------------//
51
58#define SBG_STRING_INTERNAL_BUFFER_MIN_SIZE (4)
59
60#if SBG_STRING_INTERNAL_BUFFER_MIN_SIZE == 0
61#error "invalid minimum internal buffer size"
62#endif
63
67#define SBG_STRING_INTERNAL_BUFFER_DEFAULT_SIZE (16)
68
69#ifndef SBG_CONFIG_STRING_INTERNAL_BUFFER_SIZE
70#define SBG_CONFIG_STRING_INTERNAL_BUFFER_SIZE SBG_STRING_INTERNAL_BUFFER_DEFAULT_SIZE
71#elif SBG_CONFIG_STRING_INTERNAL_BUFFER_SIZE < SBG_STRING_INTERNAL_BUFFER_MIN_SIZE
72#error "invalid internal buffer size"
73#endif // SBG_CONFIG_STRING_INTERNAL_BUFFER_SIZE
74
75//----------------------------------------------------------------------//
76//- Structure definitions -//
77//----------------------------------------------------------------------//
78
90typedef struct _SbgString
91{
97 char internalBuffer[SBG_CONFIG_STRING_INTERNAL_BUFFER_SIZE];
98
99 char *pBuffer;
100 size_t capacity;
101 size_t length;
102
103 bool readOnly;
104 bool isStatic;
105
108
112typedef struct _SbgStringIterator
113{
114 const char *pCursor;
116
117//----------------------------------------------------------------------//
118//- Public functions -//
119//----------------------------------------------------------------------//
120
130
142
153
164SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructVF(SbgString *pString, const char *pFormat, va_list args) SBG_CHECK_FORMAT(printf, 2, 0);
165
175SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructF(SbgString *pString, const char *pFormat, ...) SBG_CHECK_FORMAT(printf, 2, 3);
176
196SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructStatic(SbgString *pString, const char *pCString, char *pBuffer, size_t size);
197
209SBG_COMMON_LIB_API void sbgStringConstructReadOnly(SbgString *pString, const char *pCString);
210
217
227SBG_COMMON_LIB_API int32_t sbgStringCompare(const SbgString *pString, const SbgString *pOtherString);
228
238SBG_COMMON_LIB_API int32_t sbgStringCompareCString(const SbgString *pString, const char *pCString);
239
249SBG_COMMON_LIB_API int32_t sbgStringCompareIgnoreCase(const SbgString *pString, const SbgString *pOtherString);
250
260SBG_COMMON_LIB_API int32_t sbgStringCompareIgnoreCaseCString(const SbgString *pString, const char *pCString);
261
269
277
287
296SBG_COMMON_LIB_API SbgErrorCode sbgStringCharAt(const SbgString *pString, size_t index, char *pChar);
297
305SBG_COMMON_LIB_API size_t sbgStringFind(const SbgString *pString, const SbgString *pStringToFind);
306
314SBG_COMMON_LIB_API size_t sbgStringFindCString(const SbgString *pString, const char *pCString);
315
328SBG_COMMON_LIB_API SbgErrorCode sbgStringSubstring(const SbgString *pString, size_t startIndex, size_t endIndex, SbgString *pSubstring);
329
337SBG_COMMON_LIB_API bool sbgStringStartsWith(const SbgString *pString, const char *pCString);
338
346SBG_COMMON_LIB_API bool sbgStringEndsWith(const SbgString *pString, const char *pCString);
347
348//----------------------------------------------------------------------//
349//- Modification methods -//
350//----------------------------------------------------------------------//
351
359
366
379
388
397
408SBG_COMMON_LIB_API SbgErrorCode sbgStringAppendVF(SbgString *pString, const char *pFormat, va_list args) SBG_CHECK_FORMAT(printf, 2, 0);
409
419SBG_COMMON_LIB_API SbgErrorCode sbgStringAppendF(SbgString *pString, const char *pFormat, ...) SBG_CHECK_FORMAT(printf, 2, 3);
420
429
438
449SBG_COMMON_LIB_API SbgErrorCode sbgStringAssignVF(SbgString *pString, const char *pFormat, va_list args) SBG_CHECK_FORMAT(printf, 2, 0);
450
460SBG_COMMON_LIB_API SbgErrorCode sbgStringAssignF(SbgString *pString, const char *pFormat, ...) SBG_CHECK_FORMAT(printf, 2, 3);
461
472
486
497
507
515
523
531
539
547
557SBG_COMMON_LIB_API void sbgStringTruncate(SbgString *pString, size_t length);
558
559//----------------------------------------------------------------------//
560//- Conversion methods -//
561//----------------------------------------------------------------------//
562
571
580
589
598
607
616
625
634
643
652
661
670
679
688
697
706
715
724
733
742
751
760
761//----------------------------------------------------------------------//
762//- Iterator methods -//
763//----------------------------------------------------------------------//
764
774
788SBG_COMMON_LIB_API SbgErrorCode sbgStringIteratorWalk(SbgStringIterator *pIterator, const char *pSeparators, bool skipEmptyTokens, SbgString *pToken);
789
790//----------------------------------------------------------------------//
791//- Legacy functions -//
792//----------------------------------------------------------------------//
793
807SBG_COMMON_LIB_API SbgErrorCode sbgStringCopy(char *pDestination, const char *pSource, size_t destMaxSize);
808
815SBG_COMMON_LIB_API const char *sbgStringFirstValidChar(const char *pInputStr);
816
817//----------------------------------------------------------------------//
818//- Footer (close extern C block) -//
819//----------------------------------------------------------------------//
820
821#ifdef __cplusplus
822}
823#endif
824
825#endif // SBG_STRING_H
Main header for the SBG Systems common C library.
#define SBG_COMMON_LIB_API
Definition sbgDefines.h:79
enum _SbgErrorCode SbgErrorCode
Used to read/write data from/to a memory buffer stream.
struct _SbgStreamBuffer SbgStreamBuffer
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromUint16(SbgString *pString, uint16_t value)
SBG_COMMON_LIB_API SbgErrorCode sbgStringAppend(SbgString *pString, const SbgString *pAppendString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringTrim(SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToDouble(const SbgString *pString, double *pValue)
SBG_COMMON_LIB_API void sbgStringClearLastError(SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromInt8(SbgString *pString, int8_t value)
SBG_COMMON_LIB_API int32_t sbgStringCompareCString(const SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromInt16(SbgString *pString, int16_t value)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromStreamBuffer(SbgString *pString, SbgStreamBuffer *pStream)
SBG_COMMON_LIB_API SbgErrorCode sbgStringIteratorWalk(SbgStringIterator *pIterator, const char *pSeparators, bool skipEmptyTokens, SbgString *pToken)
struct _SbgString SbgString
SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode sbgStringMove(SbgString *pString, SbgString *pSourceString)
SBG_COMMON_LIB_API const char * sbgStringFirstValidChar(const char *pInputStr)
SBG_COMMON_LIB_API SbgErrorCode sbgStringGetLastError(const SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringMoveCString(SbgString *pString, char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromInt64(SbgString *pString, int64_t value)
SBG_COMMON_LIB_API void sbgStringIteratorConstruct(SbgStringIterator *pIterator, const SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromUint64(SbgString *pString, uint64_t value)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToStreamBuffer(const SbgString *pString, SbgStreamBuffer *pStream)
SBG_COMMON_LIB_API SbgErrorCode sbgStringClear(SbgString *pString)
SBG_COMMON_LIB_API int32_t sbgStringCompare(const SbgString *pString, const SbgString *pOtherString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToUint32(const SbgString *pString, uint32_t *pValue)
SBG_COMMON_LIB_API SbgErrorCode sbgStringConstruct(SbgString *pString, const SbgString *pSourceString)
SBG_COMMON_LIB_API void sbgStringDestroy(SbgString *pString)
SBG_COMMON_LIB_API void sbgStringConstructReadOnly(SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToLowerCase(SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToInt32(const SbgString *pString, int32_t *pValue)
SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructCString(SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API char * sbgStringExtract(SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToUint16(const SbgString *pString, uint16_t *pValue)
SBG_COMMON_LIB_API bool sbgStringEndsWith(const SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API int32_t sbgStringCompareIgnoreCase(const SbgString *pString, const SbgString *pOtherString)
SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructStatic(SbgString *pString, const char *pCString, char *pBuffer, size_t size)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToInt8(const SbgString *pString, int8_t *pValue)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToInt64(const SbgString *pString, int64_t *pValue)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToFloat(const SbgString *pString, float *pValue)
struct _SbgStringIterator SbgStringIterator
SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructVF(SbgString *pString, const char *pFormat, va_list args) SBG_CHECK_FORMAT(printf
SBG_COMMON_LIB_API SbgErrorCode sbgStringSubstring(const SbgString *pString, size_t startIndex, size_t endIndex, SbgString *pSubstring)
SBG_COMMON_LIB_API bool sbgStringStartsWith(const SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToInt16(const SbgString *pString, int16_t *pValue)
SBG_COMMON_LIB_API size_t sbgStringGetLength(const SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromDouble(SbgString *pString, double value)
SBG_COMMON_LIB_API void sbgStringTruncate(SbgString *pString, size_t length)
SBG_COMMON_LIB_API SbgErrorCode sbgStringTrimRight(SbgString *pString)
SBG_COMMON_LIB_API int32_t sbgStringCompareIgnoreCaseCString(const SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringSetCharAt(SbgString *pString, size_t index, char c)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromFloat(SbgString *pString, float value)
SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode sbgStringAssign(SbgString *pString, const SbgString *pAssignString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToUint8(const SbgString *pString, uint8_t *pValue)
SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode sbgStringAssignF(SbgString *pString, const char *pFormat,...) SBG_CHECK_FORMAT(printf
SBG_COMMON_LIB_API SbgErrorCode sbgStringTrimLeft(SbgString *pString)
SBG_COMMON_LIB_API size_t sbgStringHash(const SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringAssignVF(SbgString *pString, const char *pFormat, va_list args) SBG_CHECK_FORMAT(printf
SBG_COMMON_LIB_API SbgErrorCode sbgStringCopy(char *pDestination, const char *pSource, size_t destMaxSize)
SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode sbgStringConstructF(SbgString *pString, const char *pFormat,...) SBG_CHECK_FORMAT(printf
SBG_COMMON_LIB_API SbgErrorCode sbgStringAppendCString(SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToUpperCase(SbgString *pString)
SBG_COMMON_LIB_API size_t sbgStringFind(const SbgString *pString, const SbgString *pStringToFind)
SBG_COMMON_LIB_API SbgErrorCode sbgStringAssignCString(SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromUint8(SbgString *pString, uint8_t value)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromUint32(SbgString *pString, uint32_t value)
SBG_COMMON_LIB_API SbgErrorCode SBG_COMMON_LIB_API SbgErrorCode sbgStringAppendF(SbgString *pString, const char *pFormat,...) SBG_CHECK_FORMAT(printf
SBG_COMMON_LIB_API SbgErrorCode sbgStringCharAt(const SbgString *pString, size_t index, char *pChar)
SBG_COMMON_LIB_API SbgErrorCode sbgStringFromInt32(SbgString *pString, int32_t value)
SBG_COMMON_LIB_API SbgErrorCode sbgStringAppendVF(SbgString *pString, const char *pFormat, va_list args) SBG_CHECK_FORMAT(printf
SBG_COMMON_LIB_API void sbgStringConstructEmpty(SbgString *pString)
SBG_COMMON_LIB_API SbgErrorCode sbgStringToUint64(const SbgString *pString, uint64_t *pValue)
SBG_COMMON_LIB_API size_t sbgStringFindCString(const SbgString *pString, const char *pCString)
SBG_COMMON_LIB_API const char * sbgStringGetCString(const SbgString *pString)
Definition sbgString.h:91
size_t length
Definition sbgString.h:101
bool readOnly
Definition sbgString.h:103
SbgErrorCode errorCode
Definition sbgString.h:106
char * pBuffer
Definition sbgString.h:99
bool isStatic
Definition sbgString.h:104
char internalBuffer[SBG_CONFIG_STRING_INTERNAL_BUFFER_SIZE]
Definition sbgString.h:97
size_t capacity
Definition sbgString.h:100
Definition sbgString.h:113
const char * pCursor
Definition sbgString.h:114