Define rtc::BufferT, like rtc::Buffer but for any trivial type
And redefine rtc::Buffer as using Buffer = BufferT<uint8_t>; (In the long run, I'd like to remove the type alias and rename the template to just rtc::Buffer, but that requires all current users of Buffer to start saying Buffer<uint8_t> instead, and since Buffer is used in the API, we can't do that in one step.) The immediate reason for the new template is that we'd like to use BufferT<int16_t> in the AudioDecoder interface. BUG=webrtc:5801 Review-Url: https://codereview.webrtc.org/1929903002 Cr-Commit-Position: refs/heads/master@{#12564}
This commit is contained in:
@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 The WebRTC Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "webrtc/base/buffer.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
||||
namespace rtc {
|
||||
|
||||
Buffer::Buffer() : size_(0), capacity_(0), data_(nullptr) {
|
||||
RTC_DCHECK(IsConsistent());
|
||||
}
|
||||
|
||||
Buffer::Buffer(Buffer&& buf)
|
||||
: size_(buf.size()),
|
||||
capacity_(buf.capacity()),
|
||||
data_(std::move(buf.data_)) {
|
||||
RTC_DCHECK(IsConsistent());
|
||||
buf.OnMovedFrom();
|
||||
}
|
||||
|
||||
Buffer::Buffer(size_t size) : Buffer(size, size) {
|
||||
}
|
||||
|
||||
Buffer::Buffer(size_t size, size_t capacity)
|
||||
: size_(size),
|
||||
capacity_(std::max(size, capacity)),
|
||||
data_(new uint8_t[capacity_]) {
|
||||
RTC_DCHECK(IsConsistent());
|
||||
}
|
||||
|
||||
// Note: The destructor works even if the buffer has been moved from.
|
||||
Buffer::~Buffer() = default;
|
||||
|
||||
}; // namespace rtc
|
Reference in New Issue
Block a user