helics  3.3.0
helicsData.h
1 /*
2 Copyright (c) 2017-2022,
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 
45 HELICS_EXPORT HelicsDataBuffer helicsDataBufferClone(HelicsDataBuffer data);
46 
48 HELICS_EXPORT int32_t helicsIntegerToBytes(int64_t value, HelicsDataBuffer data);
49 
51 HELICS_EXPORT int32_t helicsDoubleToBytes(double value, HelicsDataBuffer data);
52 
54 HELICS_EXPORT int32_t helicsStringToBytes(const char* value, HelicsDataBuffer data);
55 
57 HELICS_EXPORT int32_t helicsRawStringToBytes(const char* str, int stringSize, HelicsDataBuffer data);
58 
60 HELICS_EXPORT int32_t helicsBooleanToBytes(HelicsBool value, HelicsDataBuffer data);
61 
63 HELICS_EXPORT int32_t helicsCharToBytes(char value, HelicsDataBuffer data);
64 
66 HELICS_EXPORT int32_t helicsTimeToBytes(HelicsTime value, HelicsDataBuffer data);
67 
69 HELICS_EXPORT int32_t helicsComplexToBytes(double real, double imag, HelicsDataBuffer data);
70 
72 HELICS_EXPORT int32_t helicsComplexObjectToBytes(HelicsComplex value, HelicsDataBuffer data);
73 
75 HELICS_EXPORT int32_t helicsVectorToBytes(const double* value, int dataSize, HelicsDataBuffer data);
76 
78 HELICS_EXPORT int32_t helicsNamedPointToBytes(const char* name, double value, HelicsDataBuffer data);
79 
81 HELICS_EXPORT int32_t helicsComplexVectorToBytes(const double* value, int dataSize, HelicsDataBuffer data);
82 
84 HELICS_EXPORT int helicsDataBufferType(HelicsDataBuffer data);
85 
87 HELICS_EXPORT int64_t helicsDataBufferToInteger(HelicsDataBuffer data);
88 
90 HELICS_EXPORT double helicsDataBufferToDouble(HelicsDataBuffer data);
91 
93 HELICS_EXPORT HelicsBool helicsDataBufferToBoolean(HelicsDataBuffer data);
94 
96 HELICS_EXPORT char helicsDataBufferToChar(HelicsDataBuffer data);
97 
99 HELICS_EXPORT int helicsDataBufferStringSize(HelicsDataBuffer data);
100 
101 /* convert a data buffer to a string including a null terminator
102 NOTE: data may contain null bytes prior to the end but actualLength will be the number of characters in the string
103 outputString[actualLength] is a null terminator*/
104 HELICS_EXPORT void helicsDataBufferToString(HelicsDataBuffer data, char* outputString, int maxStringLen, int* actualLength);
105 
106 /* convert a data buffer to a Raw string with no null terminator
107  */
108 HELICS_EXPORT void helicsDataBufferToRawString(HelicsDataBuffer data, char* outputString, int maxStringLen, int* actualLength);
109 
111 HELICS_EXPORT HelicsTime helicsDataBufferToTime(HelicsDataBuffer data);
112 
114 HELICS_EXPORT HelicsComplex helicsDataBufferToComplexObject(HelicsDataBuffer data);
115 
117 HELICS_EXPORT void helicsDataBufferToComplex(HelicsDataBuffer data, double* real, double* imag);
118 
120 HELICS_EXPORT int helicsDataBufferVectorSize(HelicsDataBuffer data);
121 
123 HELICS_EXPORT void helicsDataBufferToVector(HelicsDataBuffer data, double values[], int maxlen, int* actualSize);
124 
131 HELICS_EXPORT void helicsDataBufferToComplexVector(HelicsDataBuffer data, double values[], int maxlen, int* actualSize);
132 
133 HELICS_EXPORT void
134  helicsDataBufferToNamedPoint(HelicsDataBuffer data, char* outputString, int maxStringLength, int* actualLength, double* val);
135 
140 HELICS_EXPORT HelicsBool helicsDataBufferConvertToType(HelicsDataBuffer data, int newDataType);
141 
142 #ifdef __cplusplus
143 } /* end of extern "C" { */
144 #endif
145 
146 #endif /*HELICS_APISHAREDDATA_FUNCTIONS_H_ */
HelicsTime
double HelicsTime
Definition: api-data.h:100
HelicsComplex
Definition: api-data.h:158
api-data.h
Data structures for the C api.
HelicsDataBuffer
void * HelicsDataBuffer
Definition: api-data.h:82
HelicsBool
int HelicsBool
Definition: api-data.h:112