diff options
author | vitalybuka <vitalybuka@chromium.org> | 2014-09-12 02:19:59 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-12 09:28:05 +0000 |
commit | 5d1290581ae0d39d5c640c1f95ba298946515dbe (patch) | |
tree | 370d078537161b95c196d42a121ff0ede1d2f547 /printing/metafile.cc | |
parent | 07d6071e18c1fa48a7667c1ca78a64573dd4c849 (diff) | |
download | chromium_src-5d1290581ae0d39d5c640c1f95ba298946515dbe.zip chromium_src-5d1290581ae0d39d5c640c1f95ba298946515dbe.tar.gz chromium_src-5d1290581ae0d39d5c640c1f95ba298946515dbe.tar.bz2 |
Extracted MetafilePlayer interface from printing::MetafilePlayer.
Removed some unused code.
Updated interfaces from plain pointers to scoped_ptr<>
SaveTo(base::FilePath) replaced with SaveTo(base::File).
BUG=408184
TBR=sgurun@chromium.org
Review URL: https://codereview.chromium.org/568633002
Cr-Commit-Position: refs/heads/master@{#294556}
Diffstat (limited to 'printing/metafile.cc')
-rw-r--r-- | printing/metafile.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/printing/metafile.cc b/printing/metafile.cc new file mode 100644 index 0000000..ece61df --- /dev/null +++ b/printing/metafile.cc @@ -0,0 +1,49 @@ +// 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 <vector> + +#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<char>* buffer) const { + buffer->resize(GetDataSize()); + if (buffer->empty()) + return false; + return GetData(&buffer->front(), base::checked_cast<uint32>(buffer->size())); +} + +bool Metafile::SaveTo(base::File* file) const { + if (!file->IsValid()) + return false; + + std::vector<char> buffer; + if (!GetDataAsVector(&buffer)) + return false; + + int size = base::checked_cast<int>(buffer.size()); + if (file->WriteAtCurrentPos(&buffer[0], size) != size) { + DLOG(ERROR) << "Failed to save file."; + return false; + } + return true; +} + +} // namespace printing |