summaryrefslogtreecommitdiff
path: root/bindings/cpp/upb/bytestream.cc
blob: df0797e736cfec445833282fe9b9d6d32842efaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//
// upb - a minimalist implementation of protocol buffers.
//
// Copyright (c) 2011 Google Inc.  See LICENSE for details.
// Author: Josh Haberman <jhaberman@gmail.com>

#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<ByteSourceBase*>(src)->Fetch(ofs, len);
}

void ByteSourceBase::VCopy(
    const void *src, uint64_t ofs, size_t len, char* dest) {
  static_cast<const ByteSourceBase*>(src)->Copy(ofs, len, dest);
}

void ByteSourceBase::VDiscard(void *src, uint64_t ofs) {
  static_cast<ByteSourceBase*>(src)->Discard(ofs);
}

const char * ByteSourceBase::VGetPtr(
    const void *src, uint64_t ofs, size_t* len) {
  return static_cast<const ByteSourceBase*>(src)->GetPtr(ofs, len);
}

}  // namespace upb
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback