// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/public/child/fixed_received_data.h"

namespace content {

FixedReceivedData::FixedReceivedData(const char* data, size_t length)
    : data_(data, data + length) {}

FixedReceivedData::FixedReceivedData(ReceivedData* data)
    : FixedReceivedData(data->payload(), data->length()) {}

FixedReceivedData::FixedReceivedData(const std::vector<char>& data)
    : data_(data) {}

FixedReceivedData::~FixedReceivedData() {
}

const char* FixedReceivedData::payload() const {
  return data_.empty() ? nullptr : &data_[0];
}

int FixedReceivedData::length() const {
  return static_cast<int>(data_.size());
}

}  // namespace content
