335 lines
12 KiB
C++
335 lines
12 KiB
C++
// CkJsonArrayW.h: interface for the CkJsonArrayW class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
// This header is generated for Chilkat 11.3.0
|
|
|
|
#ifndef _CkJsonArrayW_H
|
|
#define _CkJsonArrayW_H
|
|
|
|
#include "chilkatDefs.h"
|
|
#include "CkString.h"
|
|
#include "CkWideCharBase.h"
|
|
|
|
class CkJsonObjectW;
|
|
class CkDateTimeW;
|
|
class CkDtObjW;
|
|
class CkStringBuilderW;
|
|
|
|
|
|
|
|
#if !defined(__sun__) && !defined(__sun)
|
|
#pragma pack (push, 8)
|
|
#endif
|
|
|
|
|
|
// CLASS: CkJsonArrayW
|
|
class CK_VISIBLE_PUBLIC CkJsonArrayW : public CkWideCharBase
|
|
{
|
|
|
|
|
|
private:
|
|
|
|
// Don't allow assignment or copying these objects.
|
|
CkJsonArrayW(const CkJsonArrayW &);
|
|
CkJsonArrayW &operator=(const CkJsonArrayW &);
|
|
|
|
public:
|
|
CkJsonArrayW(void);
|
|
virtual ~CkJsonArrayW(void);
|
|
|
|
|
|
|
|
static CkJsonArrayW *createNew(void);
|
|
|
|
|
|
|
|
void CK_VISIBLE_PRIVATE inject(void *impl);
|
|
|
|
// May be called when finished with the object to free/dispose of any
|
|
// internal resources held by the object.
|
|
void dispose(void);
|
|
|
|
|
|
|
|
// BEGIN PUBLIC INTERFACE
|
|
|
|
// ----------------------
|
|
// Properties
|
|
// ----------------------
|
|
// If true then the Emit method outputs in the most compact form possible (a
|
|
// single-line with no extra whitespace). If false, then emits with whitespace
|
|
// and indentation to make the JSON human-readable.
|
|
//
|
|
// The default value is true.
|
|
//
|
|
bool get_EmitCompact(void);
|
|
// If true then the Emit method outputs in the most compact form possible (a
|
|
// single-line with no extra whitespace). If false, then emits with whitespace
|
|
// and indentation to make the JSON human-readable.
|
|
//
|
|
// The default value is true.
|
|
//
|
|
void put_EmitCompact(bool newVal);
|
|
|
|
// If true then the Emit method uses CRLF line-endings when emitting the
|
|
// non-compact (pretty-print) format. If false, then bare-LF's are emitted. (The
|
|
// compact format emits to a single line with no end-of-line characters.) Windows
|
|
// systems traditionally use CRLF line-endings, whereas Linux, Mac OS X, and other
|
|
// systems traditionally use bare-LF line-endings.
|
|
//
|
|
// The default value is true.
|
|
//
|
|
bool get_EmitCrlf(void);
|
|
// If true then the Emit method uses CRLF line-endings when emitting the
|
|
// non-compact (pretty-print) format. If false, then bare-LF's are emitted. (The
|
|
// compact format emits to a single line with no end-of-line characters.) Windows
|
|
// systems traditionally use CRLF line-endings, whereas Linux, Mac OS X, and other
|
|
// systems traditionally use bare-LF line-endings.
|
|
//
|
|
// The default value is true.
|
|
//
|
|
void put_EmitCrlf(bool newVal);
|
|
|
|
// The number of JSON values in the array.
|
|
int get_Size(void);
|
|
|
|
|
|
|
|
// ----------------------
|
|
// Methods
|
|
// ----------------------
|
|
// Inserts a new and empty JSON array member to the position indicated by index. To
|
|
// prepend, pass an index of 0. To append, pass an index of -1. Indexing is 0-based
|
|
// (the 1st member is at index 0).
|
|
bool AddArrayAt(int index);
|
|
|
|
// Inserts a new and empty JSON array member to the position indicated by index. To
|
|
// prepend, pass an index of 0. To append, pass an index of -1. Indexing is 0-based
|
|
// (the 1st member is at index 0). The jarr is an output argument that references
|
|
// the appended JSON array.
|
|
bool AddArrayAt2(int index, CkJsonArrayW &jarr);
|
|
|
|
// Inserts a new boolean member to the position indicated by index. To prepend, pass
|
|
// an index of 0. To append, pass an index of -1. Indexing is 0-based (the 1st member
|
|
// is at index 0).
|
|
bool AddBoolAt(int index, bool value);
|
|
|
|
// Inserts a new integer member to the position indicated by index. To prepend, pass
|
|
// an index of 0. To append, pass an index of -1. Indexing is 0-based (the 1st member
|
|
// is at index 0).
|
|
bool AddIntAt(int index, int value);
|
|
|
|
// Inserts a new null member to the position indicated by index. To prepend, pass an
|
|
// index of 0. To append, pass an index of -1. Indexing is 0-based (the 1st member is
|
|
// at index 0).
|
|
bool AddNullAt(int index);
|
|
|
|
// Inserts a new numeric member to the position indicated by index. The numericStr is an
|
|
// integer, float, or double already converted to a string in the format desired by
|
|
// the application. To prepend, pass an index of 0. To append, pass an index of -1.
|
|
// Indexing is 0-based (the 1st member is at index 0).
|
|
bool AddNumberAt(int index, const wchar_t *numericStr);
|
|
|
|
// Inserts a new and empty JSON object member to the position indicated by index. To
|
|
// prepend, pass an index of 0. To append, pass an index of -1. Indexing is 0-based
|
|
// (the 1st member is at index 0).
|
|
bool AddObjectAt(int index);
|
|
|
|
// Inserts a new and empty JSON object member to the position indicated by index. To
|
|
// prepend, pass an index of 0. To append, pass an index of -1. Indexing is 0-based
|
|
// (the 1st member is at index 0). The json is an output argument that references
|
|
// the appended JSON object.
|
|
bool AddObjectAt2(int index, CkJsonObjectW &json);
|
|
|
|
// Inserts a copy of a JSON object to the position indicated by index. To prepend,
|
|
// pass an index of 0. To append, pass an index of -1. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool AddObjectCopyAt(int index, CkJsonObjectW &jsonObj);
|
|
|
|
// Inserts a new string at the position indicated by index. To prepend, pass an index
|
|
// of 0. To append, pass an index of -1. Indexing is 0-based (the 1st member is at
|
|
// index 0).
|
|
bool AddStringAt(int index, const wchar_t *value);
|
|
|
|
// Inserts a new unsigned integer member to the position indicated by index. To
|
|
// prepend, pass an index of 0. To append, pass an index of -1. Indexing is 0-based
|
|
// (the 1st member is at index 0).
|
|
bool AddUIntAt(int index, unsigned long value);
|
|
|
|
// Appends the array items contained in jarr.
|
|
bool AppendArrayItems(CkJsonArrayW &jarr);
|
|
|
|
// Returns the JSON array found at index, where indexing starts at 0.
|
|
// The caller is responsible for deleting the object returned by this method.
|
|
CkJsonArrayW *ArrayAt(int index);
|
|
|
|
// Sets jarr to reference the JSON array found at index, where indexing starts at 0.
|
|
bool ArrayAt2(int index, CkJsonArrayW &jarr);
|
|
|
|
// Returns the boolean value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool BoolAt(int index);
|
|
|
|
// Deletes all array elements.
|
|
void Clear(void);
|
|
|
|
// Fills the dateTime with the date/time string located in the Nth array element.
|
|
// Indexing is 0-based (the 1st member is at index 0). Auto-recognizes the
|
|
// following date/time string formats: ISO-8061 Timestamp (such as
|
|
// 2009-11-04T19:55:41Z ), RFC822 date/time format (such as Wed, 18 Apr 2018
|
|
// 15:51:55 -0400 ), or Unix timestamp integers.
|
|
bool DateAt(int index, CkDateTimeW &dateTime);
|
|
|
|
// Deletes the array element at the given index. Indexing is 0-based (the 1st member
|
|
// is at index 0).
|
|
bool DeleteAt(int index);
|
|
|
|
// Fills the dt with the date/time string located in the Nth array element. If
|
|
// bLocal is true, then dt is filled with the local date/time values, otherwise
|
|
// it is filled with the UTC/GMT values. Indexing is 0-based (the 1st member is at
|
|
// index 0). Auto-recognizes the following date/time string formats: ISO-8061
|
|
// Timestamp (such as 2009-11-04T19:55:41Z ), RFC822 date/time format (such as Wed,
|
|
// 18 Apr 2018 15:51:55 -0400 ), or Unix timestamp integers.
|
|
bool DtAt(int index, bool bLocal, CkDtObjW &dt);
|
|
|
|
// Writes the JSON array (rooted at the caller) and returns as a string.
|
|
//
|
|
// Note: To control the compact/non-compact format, and to control the LF/CRLF
|
|
// line-endings, set the EmitCompact and EmitCrlf properties.
|
|
//
|
|
bool Emit(CkString &outStr);
|
|
// Writes the JSON array (rooted at the caller) and returns as a string.
|
|
//
|
|
// Note: To control the compact/non-compact format, and to control the LF/CRLF
|
|
// line-endings, set the EmitCompact and EmitCrlf properties.
|
|
//
|
|
// QT defines the macro "emit" globally. (Good grief!)
|
|
#if defined(QT_VERSION)
|
|
#pragma push_macro("emit")
|
|
#undef emit
|
|
const wchar_t *emit(void);
|
|
#pragma pop_macro("emit")
|
|
#else
|
|
const wchar_t *emit(void);
|
|
#endif
|
|
|
|
|
|
|
|
// Writes the JSON array to the sb.
|
|
//
|
|
// Note: To control the compact/non-compact format, and to control the LF/CRLF
|
|
// line-endings, set the EmitCompact and EmitCrlf properties.
|
|
//
|
|
bool EmitSb(CkStringBuilderW &sb);
|
|
|
|
// Return the index of the first object in the array where value of the field at
|
|
// name matches value. name is an object member name. The value is a value pattern
|
|
// which can use * chars to indicate zero or more of any char. If caseSensitive is false,
|
|
// then the matching is case insenstive, otherwise it is case sensitive. Returns -1
|
|
// if no matching string was found.
|
|
int FindObject(const wchar_t *name, const wchar_t *value, bool caseSensitive);
|
|
|
|
// Return the index of the first matching string in the array. The value is a value
|
|
// pattern which can use * chars to indicate zero or more of any char. If caseSensitive is
|
|
// false, then the matching is case insenstive, otherwise it is case sensitive.
|
|
// Returns -1 if no matching string was found.
|
|
int FindString(const wchar_t *value, bool caseSensitive);
|
|
|
|
// Returns the integer value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
int IntAt(int index);
|
|
|
|
// Returns the true if the Nth array element is null, otherwise returns false.
|
|
// Indexing is 0-based (the 1st member is at index 0).
|
|
bool IsNullAt(int index);
|
|
|
|
// Loads a JSON array from a string. A JSON array must begin with a [ and end with
|
|
// a ] .
|
|
//
|
|
// Note: The Load method causes the JsonArray to detach and become it's own JSON
|
|
// document. It should only be called on new instances of the JsonArray. See the
|
|
// example below.
|
|
//
|
|
bool Load(const wchar_t *jsonArray);
|
|
|
|
// Loads a JSON array from a StringBuilder. A JSON array must begin with a [ and
|
|
// end with a ] .
|
|
//
|
|
// Note: The Load method causes the JsonArray to detach and become it's own JSON
|
|
// document. It should only be called on new instances of the JsonArray. See the
|
|
// example below.
|
|
//
|
|
bool LoadSb(CkStringBuilderW &sb);
|
|
|
|
// Returns the JSON object found at index, where indexing starts at 0.
|
|
// The caller is responsible for deleting the object returned by this method.
|
|
CkJsonObjectW *ObjectAt(int index);
|
|
|
|
// Sets jsonObj to reference the JSON object found at index, where indexing starts at
|
|
// 0.
|
|
bool ObjectAt2(int index, CkJsonObjectW &jsonObj);
|
|
|
|
// Sets the boolean value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool SetBoolAt(int index, bool value);
|
|
|
|
// Sets the integer value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool SetIntAt(int index, int value);
|
|
|
|
// Sets the Nth array element to the value of null. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool SetNullAt(int index);
|
|
|
|
// Sets the numeric value of the Nth array element. The value is an integer, float,
|
|
// or double already converted to a string in the format desired by the
|
|
// application. Indexing is 0-based (the 1st member is at index 0).
|
|
bool SetNumberAt(int index, const wchar_t *value);
|
|
|
|
// Sets the string value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool SetStringAt(int index, const wchar_t *value);
|
|
|
|
// Sets the unsigned integer value of the Nth array element. Indexing is 0-based
|
|
// (the 1st member is at index 0).
|
|
bool SetUIntAt(int index, unsigned long value);
|
|
|
|
// Returns the string value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
bool StringAt(int index, CkString &outStr);
|
|
// Returns the string value of the Nth array element. Indexing is 0-based (the 1st
|
|
// member is at index 0).
|
|
const wchar_t *stringAt(int index);
|
|
|
|
// Swaps the items at positions index1 and index2.
|
|
bool Swap(int index1, int index2);
|
|
|
|
// Returns the type of data at the given index. Possible return values are:
|
|
// 1. string
|
|
// 2. number
|
|
// 3. object
|
|
// 4. array
|
|
// 5. boolean
|
|
// 6. null
|
|
// Returns -1 if no member exists at the given index.
|
|
int TypeAt(int index);
|
|
|
|
// Returns the unsigned integer value of the Nth array element. Indexing is 0-based
|
|
// (the 1st member is at index 0).
|
|
unsigned long UIntAt(int index);
|
|
|
|
|
|
|
|
|
|
|
|
// END PUBLIC INTERFACE
|
|
|
|
|
|
};
|
|
#if !defined(__sun__) && !defined(__sun)
|
|
#pragma pack (pop)
|
|
#endif
|
|
|
|
#endif
|