blob: 59992d605d4d3bce0d4a6625b4f42cd4e018afc6 [file] [log] [blame]
Max Yakimakhadad3c642019-05-24 17:25:30 -07001// Copyright 2019 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Jordan Baylesa26582d2019-07-10 14:44:58 -07005#include "util/big_endian.h"
Max Yakimakhadad3c642019-05-24 17:25:30 -07006
7namespace openscreen {
8
9BigEndianReader::BigEndianReader(const uint8_t* buffer, size_t length)
Max Yakimakhab7da13f2019-06-11 16:59:06 -070010 : BigEndianBuffer(buffer, length) {}
Max Yakimakhadad3c642019-05-24 17:25:30 -070011
Max Yakimakha55bbe802019-06-19 15:04:28 -070012bool BigEndianReader::Read(size_t length, void* out) {
Max Yakimakhab7da13f2019-06-11 16:59:06 -070013 const uint8_t* read_position = current();
14 if (Skip(length)) {
15 memcpy(out, read_position, length);
16 return true;
Max Yakimakhadad3c642019-05-24 17:25:30 -070017 }
Max Yakimakhab7da13f2019-06-11 16:59:06 -070018 return false;
Max Yakimakhadad3c642019-05-24 17:25:30 -070019}
20
21BigEndianWriter::BigEndianWriter(uint8_t* buffer, size_t length)
Max Yakimakhab7da13f2019-06-11 16:59:06 -070022 : BigEndianBuffer(buffer, length) {}
Max Yakimakhadad3c642019-05-24 17:25:30 -070023
Max Yakimakha2b8a98c2019-06-19 14:39:22 -070024bool BigEndianWriter::Write(const void* buffer, size_t length) {
Max Yakimakhab7da13f2019-06-11 16:59:06 -070025 uint8_t* write_position = current();
26 if (Skip(length)) {
27 memcpy(write_position, buffer, length);
28 return true;
Max Yakimakhadad3c642019-05-24 17:25:30 -070029 }
Max Yakimakhab7da13f2019-06-11 16:59:06 -070030 return false;
Max Yakimakhadad3c642019-05-24 17:25:30 -070031}
32
mark a. foltzb4e53be2020-05-28 11:42:36 -070033} // namespace openscreen