mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-21 07:45:02 +02:00

*buffer means sbuffer, zbuffer, fbuffer, and vrefbuffer. The logic is as follows: if buf is NULL if len is 0 do nothing return 0 (success) else assertion fail else set contants to *buffer
43 lines
750 B
C
43 lines
750 B
C
/*
|
|
* MessagePack for C FILE* buffer adaptor
|
|
*
|
|
* Copyright (C) 2013 Vladimir Volodko
|
|
*
|
|
* Distributed under the Boost Software License, Version 1.0.
|
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
|
* http://www.boost.org/LICENSE_1_0.txt)
|
|
*/
|
|
#ifndef MSGPACK_FBUFFER_H
|
|
#define MSGPACK_FBUFFER_H
|
|
|
|
#include <stdio.h>
|
|
#include <assert.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/**
|
|
* @defgroup msgpack_fbuffer FILE* buffer
|
|
* @ingroup msgpack_buffer
|
|
* @{
|
|
*/
|
|
|
|
static inline int msgpack_fbuffer_write(void* data, const char* buf, size_t len)
|
|
{
|
|
assert(buf || len == 0);
|
|
if(!buf) return 0;
|
|
|
|
return (1 == fwrite(buf, len, 1, (FILE *)data)) ? 0 : -1;
|
|
}
|
|
|
|
/** @} */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* msgpack/fbuffer.h */
|