From 1bcab1377de6afe8c0f9c895cdba04baacf3e4a5 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Thu, 22 Dec 2011 11:37:01 -0800 Subject: Sync with internal Google development. This breaks the open-source build, will follow up with a change to fix it. --- bindings/cpp/upb/bytestream.cc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 bindings/cpp/upb/bytestream.cc (limited to 'bindings/cpp/upb/bytestream.cc') diff --git a/bindings/cpp/upb/bytestream.cc b/bindings/cpp/upb/bytestream.cc new file mode 100644 index 0000000..df0797e --- /dev/null +++ b/bindings/cpp/upb/bytestream.cc @@ -0,0 +1,39 @@ +// +// upb - a minimalist implementation of protocol buffers. +// +// Copyright (c) 2011 Google Inc. See LICENSE for details. +// Author: Josh Haberman + +#include "bytestream.hpp" + +namespace upb { + +upb_bytesrc_vtbl* ByteSourceBase::vtable() { + static upb_bytesrc_vtbl vtbl = { + &ByteSourceBase::VFetch, + &ByteSourceBase::VDiscard, + &ByteSourceBase::VCopy, + &ByteSourceBase::VGetPtr, + }; + return &vtbl; +} + +upb_bytesuccess_t ByteSourceBase::VFetch(void *src, uint64_t ofs, size_t *len) { + return static_cast(src)->Fetch(ofs, len); +} + +void ByteSourceBase::VCopy( + const void *src, uint64_t ofs, size_t len, char* dest) { + static_cast(src)->Copy(ofs, len, dest); +} + +void ByteSourceBase::VDiscard(void *src, uint64_t ofs) { + static_cast(src)->Discard(ofs); +} + +const char * ByteSourceBase::VGetPtr( + const void *src, uint64_t ofs, size_t* len) { + return static_cast(src)->GetPtr(ofs, len); +} + +} // namespace upb -- cgit v1.2.3