helics 3.7.0
Loading...
Searching...
No Matches
helicsData.h
1/*
2Copyright (c) 2017-2026,
3Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Energy Innovation LLC. See the top-level NOTICE for
4additional details. All rights reserved.
5SPDX-License-Identifier: BSD-3-Clause
6*/
7
8#ifndef HELICS_APISHAREDDATA_FUNCTIONS_H_
9#define HELICS_APISHAREDDATA_FUNCTIONS_H_
10
11#include "api-data.h"
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#include "helics_export.h"
18
20HELICS_EXPORT HelicsDataBuffer helicsCreateDataBuffer(int32_t initialCapacity);
21
23HELICS_EXPORT HelicsBool helicsDataBufferIsValid(HelicsDataBuffer data);
24
26HELICS_EXPORT HelicsDataBuffer helicsWrapDataInBuffer(void* data, int dataSize, int dataCapacity);
27
29HELICS_EXPORT void helicsDataBufferFree(HelicsDataBuffer data);
30
32HELICS_EXPORT int32_t helicsDataBufferSize(HelicsDataBuffer data);
33
35HELICS_EXPORT int32_t helicsDataBufferCapacity(HelicsDataBuffer data);
36
38HELICS_EXPORT void* helicsDataBufferData(HelicsDataBuffer data);
39
42HELICS_EXPORT HelicsBool helicsDataBufferReserve(HelicsDataBuffer data, int32_t newCapacity);
43
47HELICS_EXPORT HelicsDataBuffer helicsDataBufferClone(HelicsDataBuffer data);
48
54HELICS_EXPORT int32_t helicsDataBufferFillFromInteger(HelicsDataBuffer data, int64_t value);
55
61HELICS_EXPORT int32_t helicsDataBufferFillFromDouble(HelicsDataBuffer data, double value);
62
68HELICS_EXPORT int32_t helicsDataBufferFillFromString(HelicsDataBuffer data, const char* value);
69
76HELICS_EXPORT int32_t helicsDataBufferFillFromRawString(HelicsDataBuffer data, const char* str, int stringSize);
77
83HELICS_EXPORT int32_t helicsDataBufferFillFromBoolean(HelicsDataBuffer data, HelicsBool value);
84
90HELICS_EXPORT int32_t helicsDataBufferFillFromChar(HelicsDataBuffer data, char value);
91
97HELICS_EXPORT int32_t helicsDataBufferFillFromTime(HelicsDataBuffer data, HelicsTime value);
98
105HELICS_EXPORT int32_t helicsDataBufferFillFromComplex(HelicsDataBuffer data, double real, double imag);
106
112HELICS_EXPORT int32_t helicsDataBufferFillFromComplexObject(HelicsDataBuffer data, HelicsComplex value);
113
119HELICS_EXPORT int32_t helicsDataBufferFillFromVector(HelicsDataBuffer data, const double* value, int dataSize);
120
126HELICS_EXPORT int32_t helicsDataBufferFillFromNamedPoint(HelicsDataBuffer data, const char* name, double value);
127
133HELICS_EXPORT int32_t helicsDataBufferFillFromComplexVector(HelicsDataBuffer data, const double* value, int dataSize);
134
136HELICS_EXPORT int helicsDataBufferType(HelicsDataBuffer data);
137
139HELICS_EXPORT int64_t helicsDataBufferToInteger(HelicsDataBuffer data);
140
142HELICS_EXPORT double helicsDataBufferToDouble(HelicsDataBuffer data);
143
145HELICS_EXPORT HelicsBool helicsDataBufferToBoolean(HelicsDataBuffer data);
146
148HELICS_EXPORT char helicsDataBufferToChar(HelicsDataBuffer data);
149
151HELICS_EXPORT int helicsDataBufferStringSize(HelicsDataBuffer data);
152
153/* convert a data buffer to a string including a null terminator
154NOTE: data may contain null bytes prior to the end but actualLength will be the number of characters in the string
155outputString[actualLength] is a null terminator*/
156HELICS_EXPORT void helicsDataBufferToString(HelicsDataBuffer data, char* outputString, int maxStringLen, int* actualLength);
157
158/* convert a data buffer to a Raw string with no null terminator
159 */
160HELICS_EXPORT void helicsDataBufferToRawString(HelicsDataBuffer data, char* outputString, int maxStringLen, int* actualLength);
161
163HELICS_EXPORT HelicsTime helicsDataBufferToTime(HelicsDataBuffer data);
164
166HELICS_EXPORT HelicsComplex helicsDataBufferToComplexObject(HelicsDataBuffer data);
167
169HELICS_EXPORT void helicsDataBufferToComplex(HelicsDataBuffer data, double* real, double* imag);
170
172HELICS_EXPORT int helicsDataBufferVectorSize(HelicsDataBuffer data);
173
175HELICS_EXPORT void helicsDataBufferToVector(HelicsDataBuffer data, double values[], int maxlen, int* actualSize);
176
183HELICS_EXPORT void helicsDataBufferToComplexVector(HelicsDataBuffer data, double values[], int maxlen, int* actualSize);
184
185HELICS_EXPORT void
186 helicsDataBufferToNamedPoint(HelicsDataBuffer data, char* outputString, int maxStringLength, int* actualLength, double* val);
187
192HELICS_EXPORT HelicsBool helicsDataBufferConvertToType(HelicsDataBuffer data, int newDataType);
193
194#ifdef __cplusplus
195} /* end of extern "C" { */
196#endif
197
198#endif /*HELICS_APISHAREDDATA_FUNCTIONS_H_ */
Data structures for the C api.
void * HelicsDataBuffer
Definition api-data.h:88
double HelicsTime
Definition api-data.h:106
int HelicsBool
Definition api-data.h:120
Definition api-data.h:168