diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-12-25 20:10:44 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-01-20 09:06:41 +0100 |
commit | eda153002f619697394066de127bed42ff3eeb50 (patch) | |
tree | 169d26c8656d7a48ab88028ea04c5e37b3706957 /vcl/source/graphic | |
parent | c36cef138a840af013cf85d33ea3d3d27aeb001a (diff) |
vcl: add an UNO interface and impl. for BinaryDataContainer
Change-Id: Icbc384892bee8c31eb7f3a39ff9a64f1199b23b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109596
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/source/graphic')
-rw-r--r-- | vcl/source/graphic/BinaryDataContainerTools.cxx | 28 | ||||
-rw-r--r-- | vcl/source/graphic/UnoBinaryDataContainer.cxx | 34 |
2 files changed, 62 insertions, 0 deletions
diff --git a/vcl/source/graphic/BinaryDataContainerTools.cxx b/vcl/source/graphic/BinaryDataContainerTools.cxx new file mode 100644 index 000000000000..3921e075cea2 --- /dev/null +++ b/vcl/source/graphic/BinaryDataContainerTools.cxx @@ -0,0 +1,28 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <vcl/BinaryDataContainerTools.hxx> +#include <graphic/UnoBinaryDataContainer.hxx> + +namespace vcl +{ +BinaryDataContainer convertUnoBinaryDataContainer( + const css::uno::Reference<css::util::XBinaryDataContainer>& rxBinaryDataContainer) +{ + BinaryDataContainer aBinaryDataContainer; + UnoBinaryDataContainer* pUnoBinaryDataContainer + = comphelper::getUnoTunnelImplementation<UnoBinaryDataContainer>(rxBinaryDataContainer); + if (pUnoBinaryDataContainer) + aBinaryDataContainer = pUnoBinaryDataContainer->getBinaryDataContainer(); + return aBinaryDataContainer; +} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/graphic/UnoBinaryDataContainer.cxx b/vcl/source/graphic/UnoBinaryDataContainer.cxx new file mode 100644 index 000000000000..8ee3660be416 --- /dev/null +++ b/vcl/source/graphic/UnoBinaryDataContainer.cxx @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <graphic/UnoBinaryDataContainer.hxx> + +#include <cppuhelper/queryinterface.hxx> + +using namespace css; + +// css::lang::XUnoTunnel +UNO3_GETIMPLEMENTATION_IMPL(UnoBinaryDataContainer); + +css::uno::Sequence<sal_Int8> SAL_CALL UnoBinaryDataContainer::getCopyAsByteSequence() +{ + if (maBinaryDataContainer.isEmpty()) + return css::uno::Sequence<sal_Int8>(); + + size_t nSize = maBinaryDataContainer.getSize(); + + css::uno::Sequence<sal_Int8> aData(nSize); + + std::copy(maBinaryDataContainer.cbegin(), maBinaryDataContainer.cend(), aData.getArray()); + + return aData; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |