@@ -227,57 +227,57 @@ inline void *operator new (size_t, void *where)
227227} /* operator new */
228228
229229/* *
230- * Read data of specified type (T) from specified buffer
230+ * Read data from a specified buffer.
231231 *
232232 * Note:
233233 * Offset is in-out and is incremented if the read operation completes successfully.
234234 *
235- * @return true, if read was successful, i.e. offset + sizeof (T) doesn't exceed buffer size,
235+ * @return true, if read was successful, i.e. offset + data_size doesn't exceed buffer size,
236236 * false - otherwise.
237237 */
238- template <typename T>
239- bool __attr_always_inline___
238+ inline bool
240239jrt_read_from_buffer_by_offset (const uint8_t *buffer_p, /* *< buffer */
241240 size_t buffer_size, /* *< size of buffer */
242241 size_t *in_out_buffer_offset_p, /* *< in: offset to read from,
243242 * out: offset, incremented on sizeof (T) */
244- T *out_data_p) /* *< out: data */
243+ void *out_data_p, /* *< out: data */
244+ size_t out_data_size) /* *< size of the readable data */
245245{
246- if (*in_out_buffer_offset_p + sizeof (T) > buffer_size)
246+ if (*in_out_buffer_offset_p + out_data_size > buffer_size)
247247 {
248248 return false ;
249249 }
250250
251- memcpy (out_data_p, buffer_p + *in_out_buffer_offset_p, sizeof (T) );
252- *in_out_buffer_offset_p += sizeof (T) ;
251+ memcpy (out_data_p, buffer_p + *in_out_buffer_offset_p, out_data_size );
252+ *in_out_buffer_offset_p += out_data_size ;
253253
254254 return true ;
255255} /* jrt_read_from_buffer_by_offset */
256256
257257/* *
258- * Write data of specified type (T) to specified buffer
258+ * Write data to a specified buffer.
259259 *
260260 * Note:
261261 * Offset is in-out and is incremented if the write operation completes successfully.
262262 *
263- * @return true, if write was successful, i.e. offset + sizeof (T) doesn't exceed buffer size,
263+ * @return true, if write was successful, i.e. offset + data_size doesn't exceed buffer size,
264264 * false - otherwise.
265265 */
266- template <typename T>
267- bool __attr_always_inline___
266+ inline bool
268267jrt_write_to_buffer_by_offset (uint8_t *buffer_p, /* *< buffer */
269268 size_t buffer_size, /* *< size of buffer */
270269 size_t *in_out_buffer_offset_p, /* *< in: offset to read from,
271270 * out: offset, incremented on sizeof (T) */
272- T data) /* *< data */
271+ void *data_p, /* *< data */
272+ size_t data_size) /* *< size of the writable data */
273273{
274- if (*in_out_buffer_offset_p + sizeof (T) > buffer_size)
274+ if (*in_out_buffer_offset_p + data_size > buffer_size)
275275 {
276276 return false ;
277277 }
278278
279- memcpy (buffer_p + *in_out_buffer_offset_p, &data, sizeof (T) );
280- *in_out_buffer_offset_p += sizeof (T) ;
279+ memcpy (buffer_p + *in_out_buffer_offset_p, data_p, data_size );
280+ *in_out_buffer_offset_p += data_size ;
281281
282282 return true ;
283283} /* jrt_write_to_buffer_by_offset */
0 commit comments