diff options
author | Andrej Rode <andrej.rode@ettus.com> | 2017-04-03 18:49:58 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-12-22 15:03:45 -0800 |
commit | 53795c74aead4e6021bc788b788f8ed5b4a0166d (patch) | |
tree | 45e4075f3d8ffdee7dff7c72dd665f5c5b0c746c /host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp | |
parent | 6a12add1560545438e1bebc05efbafd05aace4f9 (diff) | |
download | uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.tar.gz uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.tar.bz2 uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.zip |
uhd: add cut-down rpclib source tree and import tool
Diffstat (limited to 'host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp')
-rw-r--r-- | host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp new file mode 100644 index 000000000..460fdfcde --- /dev/null +++ b/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp @@ -0,0 +1,68 @@ +// +// MessagePack for C++ FILE* buffer adaptor +// +// Copyright (C) 2013 Vladimir Volodko +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef MSGPACK_FBUFFER_HPP__ +#define MSGPACK_FBUFFER_HPP__ + +#include "rpc/msgpack/versioning.hpp" + +#include <cstdio> +#include <stdexcept> + +namespace clmdep_msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class fbuffer { +public: + explicit fbuffer(FILE* file) : m_file(file) { } + +public: + void write(const char* buf, unsigned int len) + { + if (1 != fwrite(buf, len, 1, m_file)) { + throw std::runtime_error("fwrite() failed"); + } + } + + FILE* file() const + { + return m_file; + } + +#if defined(MSGPACK_USE_CPP03) +private: + fbuffer(const fbuffer&); + fbuffer& operator=(const fbuffer&); +#else // defined(MSGPACK_USE_CPP03) + fbuffer(const fbuffer&) = delete; + fbuffer& operator=(const fbuffer&) = delete; +#endif // defined(MSGPACK_USE_CPP03) + +private: + FILE* m_file; +}; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace clmdep_msgpack + +#endif /* msgpack/fbuffer.hpp */ |