helics  3.5.2
helicsData.h
1 /*
2 Copyright (c) 2017-2024,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable Energy, LLC. See the top-level NOTICE for
4 additional details. All rights reserved.
5 SPDX-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
14 extern "C" {
15 #endif
16 
17 #include "helics_export.h"
18 
20 HELICS_EXPORT HelicsDataBuffer helicsCreateDataBuffer(int32_t initialCapacity);
21 
23 HELICS_EXPORT HelicsBool helicsDataBufferIsValid(HelicsDataBuffer data);
24 
26 HELICS_EXPORT HelicsDataBuffer helicsWrapDataInBuffer(void* data, int dataSize, int dataCapacity);
27 
29 HELICS_EXPORT void helicsDataBufferFree(HelicsDataBuffer data);
30 
32 HELICS_EXPORT int32_t helicsDataBufferSize(HelicsDataBuffer data);
33 
35 HELICS_EXPORT int32_t helicsDataBufferCapacity(HelicsDataBuffer data);
36 
38 HELICS_EXPORT void* helicsDataBufferData(HelicsDataBuffer data);
39 
42 HELICS_EXPORT HelicsBool helicsDataBufferReserve(HelicsDataBuffer data, int32_t newCapacity);
43 
47 HELICS_EXPORT HelicsDataBuffer helicsDataBufferClone(HelicsDataBuffer data);
48 
54 HELICS_EXPORT int32_t helicsDataBufferFillFromInteger(HelicsDataBuffer data, int64_t value);
55 
61 HELICS_EXPORT int32_t helicsDataBufferFillFromDouble(HelicsDataBuffer data, double value);
62 
68 HELICS_EXPORT int32_t helicsDataBufferFillFromString(HelicsDataBuffer data, const char* value);
69 
75 HELICS_EXPORT int32_t helicsDataBufferFillFromRawString(HelicsDataBuffer data, const char* str, int stringSize);
76 
82 HELICS_EXPORT int32_t helicsDataBufferFillFromBoolean(HelicsDataBuffer data, HelicsBool value);
83 
89 HELICS_EXPORT int32_t helicsDataBufferFillFromChar(HelicsDataBuffer data, char value);
90 
96 HELICS_EXPORT int32_t helicsDataBufferFillFromTime(HelicsDataBuffer data, HelicsTime value);
97 
103 HELICS_EXPORT int32_t helicsDataBufferFillFromComplex(HelicsDataBuffer data, double real, double imag);
104 
110 HELICS_EXPORT int32_t helicsDataBufferFillFromComplexObject(HelicsDataBuffer data, HelicsComplex value);
111 
117 HELICS_EXPORT int32_t helicsDataBufferFillFromVector(HelicsDataBuffer data, const double* value, int dataSize);
118 
124 HELICS_EXPORT int32_t helicsDataBufferFillFromNamedPoint(HelicsDataBuffer data, const char* name, double value);
125 
131 HELICS_EXPORT int32_t helicsDataBufferFillFromComplexVector(HelicsDataBuffer data, const double* value, int dataSize);
132 
134 HELICS_EXPORT int helicsDataBufferType(HelicsDataBuffer data);
135 
137 HELICS_EXPORT int64_t helicsDataBufferToInteger(HelicsDataBuffer data);
138 
140 HELICS_EXPORT double helicsDataBufferToDouble(HelicsDataBuffer data);
141 
143 HELICS_EXPORT HelicsBool helicsDataBufferToBoolean(HelicsDataBuffer data);
144 
146 HELICS_EXPORT char helicsDataBufferToChar(HelicsDataBuffer data);
147 
149 HELICS_EXPORT int helicsDataBufferStringSize(HelicsDataBuffer data);
150 
151 /* convert a data buffer to a string including a null terminator
152 NOTE: data may contain null bytes prior to the end but actualLength will be the number of characters in the string
153 outputString[actualLength] is a null terminator*/
154 HELICS_EXPORT void helicsDataBufferToString(HelicsDataBuffer data, char* outputString, int maxStringLen, int* actualLength);
155 
156 /* convert a data buffer to a Raw string with no null terminator
157  */
158 HELICS_EXPORT void helicsDataBufferToRawString(HelicsDataBuffer data, char* outputString, int maxStringLen, int* actualLength);
159 
161 HELICS_EXPORT HelicsTime helicsDataBufferToTime(HelicsDataBuffer data);
162 
164 HELICS_EXPORT HelicsComplex helicsDataBufferToComplexObject(HelicsDataBuffer data);
165 
167 HELICS_EXPORT void helicsDataBufferToComplex(HelicsDataBuffer data, double* real, double* imag);
168 
170 HELICS_EXPORT int helicsDataBufferVectorSize(HelicsDataBuffer data);
171 
173 HELICS_EXPORT void helicsDataBufferToVector(HelicsDataBuffer data, double values[], int maxlen, int* actualSize);
174 
181 HELICS_EXPORT void helicsDataBufferToComplexVector(HelicsDataBuffer data, double values[], int maxlen, int* actualSize);
182 
183 HELICS_EXPORT void
184  helicsDataBufferToNamedPoint(HelicsDataBuffer data, char* outputString, int maxStringLength, int* actualLength, double* val);
185 
190 HELICS_EXPORT HelicsBool helicsDataBufferConvertToType(HelicsDataBuffer data, int newDataType);
191 
192 #ifdef __cplusplus
193 } /* end of extern "C" { */
194 #endif
195 
196 #endif /*HELICS_APISHAREDDATA_FUNCTIONS_H_ */
Data structures for the C api.
void * HelicsDataBuffer
Definition: api-data.h:82
double HelicsTime
Definition: api-data.h:100
int HelicsBool
Definition: api-data.h:112
Definition: api-data.h:160