2 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
4 * Licensed under the Flora License, Version 1.1 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
23 typedef struct _reader reader_t;
26 * @brief reader object
36 * @brief Initialzies reader over buffer
38 * @param[in] reader reader object
39 * @param[in] data buffer
40 * @param[in] length length of the @data
42 void reader_init_static(reader_t *reader, const char *data, size_t length);
45 * @brief Start reading buffer from the begining
47 * @param[in] reader reader object
49 void reader_reset(reader_t *reader);
51 /** * @brief Reads 32-bit integer value from buffer
53 * @param[in] reader reader object
54 * @param[out] value output value
56 * @return 0 on success, other value on failure.
58 int reader_read_int32(reader_t *reader, int32_t *value);
61 * @brief Reads 64-bit integer value from buffer
63 * @param[in] reader reader object
64 * @param[out] value output value
66 * @return 0 on success, other value on failure.
68 int reader_read_int64(reader_t *reader, int64_t *value);
71 * @brief Reads character value from buffer
73 * @param[in] reader reader object
74 * @param[out] value output value
76 * @return 0 on success, other value on failure.
78 int reader_read_char(reader_t *reader, char *value);
81 * @brief Reads boolean value from buffer
83 * @param[in] reader reader object
84 * @param[out] value output value
86 * @return 0 on success, other value on failure.
88 int reader_read_bool(reader_t *reader, bool *value);
91 * @brief Reads string value from buffer
93 * @param[in] reader reader object
94 * @param[out] value output value
96 * @return 0 on success, other value on failure.
97 * @note value should be released with @free
99 int reader_read_string(reader_t *reader, char **value);
101 #endif /* end of include guard: READER_H */