CAEN Utility  2.0.2
Utilities for CAEN projects
CAENSerDes.h
Go to the documentation of this file.
1 /******************************************************************************
2 *
3 * CAEN SpA - Software Division
4 * Via Vetraia, 11 - 55049 - Viareggio ITALY
5 * +39 0594 388 398 - www.caen.it
6 *
7 *******************************************************************************
8 *
9 * Copyright (C) 2019-2022 CAEN SpA
10 *
11 * This file is part of the CAEN Utility.
12 *
13 * The CAEN Utility is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU Lesser General Public
15 * License as published by the Free Software Foundation; either
16 * version 3 of the License, or (at your option) any later version.
17 *
18 * The CAEN Utility is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * Lesser General Public License for more details.
22 *
23 * You should have received a copy of the GNU Lesser General Public
24 * License along with the CAEN Utility; if not, see
25 * https://www.gnu.org/licenses/.
26 *
27 * SPDX-License-Identifier: LGPL-3.0-or-later
28 *
29 ***************************************************************************/
37 #ifndef CAEN_INCLUDE_CAENSERDES_H_
38 #define CAEN_INCLUDE_CAENSERDES_H_
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 #include <types/CAENSerDesTypes.h>
45 
46 #include <CAENUtility.h>
47 #include <types/CAENSocketTypes.h>
48 
63 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API c_createheader(uint16_t version, PKTHEAD_CMD_TYPE cmd, size_t *allocatedSize);
70 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_char(const char *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
71 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_int8_t(const int8_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
72 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_uint8_t(const uint8_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
73 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_int16_t(const int16_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
74 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_uint16_t(const uint16_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
75 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_int32_t(const int32_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
76 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_uint32_t(const uint32_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
77 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_int64_t(const int64_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
78 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_uint64_t(const uint64_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
79 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_float(const float *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
80 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API serialize_double(const double *src, uint32_t num, uint8_t *buffer, size_t *allocSize);
86 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_char(char *dest, uint32_t maxnum, uint8_t *buffer);
87 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int8_t(int8_t *dest, uint32_t num, uint8_t *buffer);
88 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int8_t_array(int8_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
89 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint8_t(uint8_t *dest, uint32_t num, uint8_t *buffer);
90 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint8_t_array(uint8_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
91 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int16_t(int16_t *dest, uint32_t num, uint8_t *buffer);
92 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int16_t_array(int16_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
93 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint16_t(uint16_t *dest, uint32_t num, uint8_t *buffer);
94 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint16_t_array(uint16_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
95 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int32_t(int32_t *dest, uint32_t num, uint8_t *buffer);
96 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int32_t_array(int32_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
97 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint32_t(uint32_t *dest, uint32_t num, uint8_t *buffer);
98 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint32_t_array(uint32_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
99 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int64_t(int64_t *dest, uint32_t num, uint8_t *buffer);
100 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_int64_t_array(int64_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
101 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint64_t(uint64_t *dest, uint32_t num, uint8_t *buffer);
102 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_uint64_t_array(uint64_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
103 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_float(float *dest, uint32_t num, uint8_t *buffer);
104 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_float_array(float *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
105 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_double(double *dest, uint32_t num, uint8_t *buffer);
106 c_nodiscard CAEN_UTILITY_DLLAPI uint8_t * CAEN_UTILITY_API deserialize_double_array(double *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer);
109 #ifdef __cplusplus
110 }
111 #endif
112 
113 #endif // CAEN_INCLUDE_CAENSERDES_H_
uint8_t * deserialize_float_array(float *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:1121
uint8_t * deserialize_double(double *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:1125
uint8_t * deserialize_uint8_t_array(uint8_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:706
Definitions and types for CAENSocket.h.
uint8_t * deserialize_int8_t(int8_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:604
PKTHEAD_CMD_TYPE c_getcmd(const uint8_t *buffer)
Definition: CAENSerDes.c:154
uint8_t * deserialize_double_array(double *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:1152
uint8_t * deserialize_int64_t_array(int64_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:1022
uint8_t * deserialize_int8_t_array(int8_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:634
#define CAEN_UTILITY_API
Definition: CAENUtility.h:104
uint8_t * deserialize_uint64_t(uint64_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:1054
uint8_t * deserialize_uint32_t(uint32_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:928
uint8_t * deserialize_uint16_t_array(uint16_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:833
uint8_t * c_createheader(uint16_t version, PKTHEAD_CMD_TYPE cmd, size_t *allocatedSize)
Definition: CAENSerDes.c:129
Main header and generic tools.
uint8_t * deserialize_uint32_t_array(uint32_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:959
uint8_t * c_recv_packet(const c_socket_t *sckt, PKTHEAD_CMD_TYPE *cmd, PKTHEAD_TOTLEN_TYPE *totSize, PKTHEAD_NPARAMS_TYPE *totParams)
Definition: CAENSerDes.c:163
uint8_t * serialize_int32_t(const int32_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:419
uint8_t * deserialize_int32_t_array(int32_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:896
uint16_t PKTHEAD_NPARAMS_TYPE
uint8_t * serialize_uint64_t(const uint64_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:533
uint8_t * deserialize_char(char *dest, uint32_t maxnum, uint8_t *buffer)
Definition: CAENSerDes.c:667
#define CAEN_UTILITY_DLLAPI
Definition: CAENUtility.h:105
uint8_t * deserialize_int16_t(int16_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:739
uint8_t * deserialize_uint16_t(uint16_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:802
uint8_t * deserialize_int16_t_array(int16_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:770
#define c_nodiscard
Definition: CAENUtility.h:245
#define c_attribute_malloc
Definition: CAENUtility.h:199
uint8_t * deserialize_float(float *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:1117
uint8_t * serialize_char(const char *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:301
uint8_t * deserialize_uint8_t(uint8_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:676
uint8_t * serialize_uint16_t(const uint16_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:381
uint8_t * serialize_int8_t(const int8_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:262
uint8_t * deserialize_int64_t(int64_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:991
uint8_t * serialize_uint8_t(const uint8_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:305
uint8_t * serialize_int64_t(const int64_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:495
uint8_t * deserialize_uint64_t_array(uint64_t *dest, uint32_t maxnum, uint32_t *num, uint8_t *buffer)
Definition: CAENSerDes.c:1085
uint8_t * serialize_float(const float *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:571
uint8_t * serialize_double(const double *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:575
uint8_t * deserialize_int32_t(int32_t *dest, uint32_t num, uint8_t *buffer)
Definition: CAENSerDes.c:865
uint16_t PKTHEAD_CMD_TYPE
uint32_t PKTHEAD_TOTLEN_TYPE
uint8_t * c_recv_packet_unlock(c_socket_t *sckt, PKTHEAD_CMD_TYPE *cmd, PKTHEAD_TOTLEN_TYPE *totSize, PKTHEAD_NPARAMS_TYPE *totParams)
Definition: CAENSerDes.c:217
Definitions and types for CAENSerDes.h.
uint8_t * serialize_uint32_t(const uint32_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:457
uint8_t * serialize_int16_t(const int16_t *src, uint32_t num, uint8_t *buffer, size_t *allocSize)
Definition: CAENSerDes.c:343