// Copyright 2014 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 "printing/metafile.h" #include #include #include "base/files/file.h" #include "base/numerics/safe_conversions.h" namespace printing { MetafilePlayer::MetafilePlayer() { } MetafilePlayer::~MetafilePlayer() { } Metafile::Metafile() { } Metafile::~Metafile() { } bool Metafile::GetDataAsVector(std::vector* buffer) const { buffer->resize(GetDataSize()); if (buffer->empty()) return false; return GetData(&buffer->front(), base::checked_cast(buffer->size())); } bool Metafile::SaveTo(base::File* file) const { if (!file->IsValid()) return false; std::vector buffer; if (!GetDataAsVector(&buffer)) return false; int size = base::checked_cast(buffer.size()); if (file->WriteAtCurrentPos(&buffer[0], size) != size) { DLOG(ERROR) << "Failed to save file."; return false; } return true; } } // namespace printing