diff options
Diffstat (limited to 'ucb')
22 files changed, 0 insertions, 4476 deletions
diff --git a/ucb/Library_ucpodma1.mk b/ucb/Library_ucpodma1.mk deleted file mode 100644 index 1c0f950e632a..000000000000 --- a/ucb/Library_ucpodma1.mk +++ /dev/null @@ -1,58 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# Major Contributor(s): -# Copyright (C) 2012 Matúš Kukan <matus.kukan@gmail.com> (initial developer) -# -# All Rights Reserved. -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -$(eval $(call gb_Library_Library,ucpodma1)) - -$(eval $(call gb_Library_set_componentfile,ucpodma1,ucb/source/ucp/odma/ucpodma1)) - -$(eval $(call gb_Library_use_sdk_api,ucpodma1)) - -$(eval $(call gb_Library_use_libraries,ucpodma1,\ - comphelper \ - cppu \ - cppuhelper \ - sal \ - salhelper \ - ucbhelper \ - $(gb_UWINAPI) \ -)) - -$(eval $(call gb_Library_use_static_libraries,ucpodma1,\ - odma_lib \ -)) - -$(eval $(call gb_Library_add_exception_objects,ucpodma1,\ - ucb/source/ucp/odma/odma_contentcaps \ - ucb/source/ucp/odma/odma_content \ - ucb/source/ucp/odma/odma_datasupplier \ - ucb/source/ucp/odma/odma_inputstream \ - ucb/source/ucp/odma/odma_provider \ - ucb/source/ucp/odma/odma_resultset \ - ucb/source/ucp/odma/odma_services \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/ucb/Module_ucb.mk b/ucb/Module_ucb.mk index f84cc84637f7..6eb5522c40e0 100644 --- a/ucb/Module_ucb.mk +++ b/ucb/Module_ucb.mk @@ -42,14 +42,6 @@ $(eval $(call gb_Module_add_targets,ucb,\ Library_ucptdoc1 \ )) -ifeq ($(OS),WNT) -$(eval $(call gb_Module_add_targets,ucb,\ - Library_ucpodma1 \ - Package_odma_inc \ - StaticLibrary_odma_lib \ -)) -endif - ifneq ($(DISABLE_NEON),TRUE) $(eval $(call gb_Module_add_targets,ucb,\ Library_ucpdav1 \ diff --git a/ucb/Package_odma_inc.mk b/ucb/Package_odma_inc.mk deleted file mode 100644 index e9cd52af6cef..000000000000 --- a/ucb/Package_odma_inc.mk +++ /dev/null @@ -1,33 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# Major Contributor(s): -# Copyright (C) 2012 Matúš Kukan <matus.kukan@gmail.com> (initial developer) -# -# All Rights Reserved. -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -$(eval $(call gb_Package_Package,ucb_odma_inc,$(SRCDIR)/ucb/source/ucp/odma)) - -$(eval $(call gb_Package_add_file,ucb_odma_inc,inc/odma.h,odma.h)) -$(eval $(call gb_Package_add_file,ucb_odma_inc,inc/odma_lib.hxx,odma_lib.hxx)) - -# vim: set noet sw=4 ts=4: diff --git a/ucb/StaticLibrary_odma_lib.mk b/ucb/StaticLibrary_odma_lib.mk deleted file mode 100644 index d6100b621dfa..000000000000 --- a/ucb/StaticLibrary_odma_lib.mk +++ /dev/null @@ -1,41 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# Major Contributor(s): -# Copyright (C) 2012 Matúš Kukan <matus.kukan@gmail.com> (initial developer) -# -# All Rights Reserved. -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -$(eval $(call gb_StaticLibrary_StaticLibrary,odma_lib)) - -$(eval $(call gb_StaticLibrary_use_package,odma_lib,ucb_odma_inc)) - -$(eval $(call gb_StaticLibrary_use_api,odma_lib,\ - offapi \ - udkapi \ -)) - -$(eval $(call gb_StaticLibrary_add_exception_objects,odma_lib,\ - ucb/source/ucp/odma/odma_lib \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/ucb/source/ucp/odma/odma.h b/ucb/source/ucp/odma/odma.h deleted file mode 100644 index c75f21c844af..000000000000 --- a/ucb/source/ucp/odma/odma.h +++ /dev/null @@ -1,361 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* odma.h - Definitions, prototypes, etc. for Open Document Managment API - (ODMA) version 2.0. - OPEN DOCUMENT MANAGEMENT API LICENSE 1.0 - - ODMA 2.0 SPECIFICATIONS AND SOFTWARE - ------------------------------------ - - Copyright 1994-1998 AIIM International - -LICENSE: - - Redistribution and use in source and binary forms, with or - without modifications, are permitted provided that the - following conditions are met: - - * Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - - * Redistributions in binary form must reproduce the - above copyright notice, this list of conditions and - the following disclaimer in the documentation and/or - other materials provided with the distribution. - - * Neither the name of AIIM International nor the names - of its contributors may be used to endorse or promote - products derived from this software without specific - prior written permission. - -DISCLAIMER: - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - COPYRIGHT (C) 1994, 1995 - AIIM International - All Right Reserved -*/ - -#ifndef ODMA_H -#define ODMA_H - -/* Type definitions */ -typedef LPVOID ODMHANDLE; -typedef LPSTR (*ODMSAVEASCALLBACK)(DWORD dwEnvData, LPSTR lpszFormat, LPVOID pInstanceData); -typedef int ODMSTATUS; - -/* Constants */ -#define ODM_API_VERSION 200 /* Version of the API */ - -#ifdef WIN32 - #define ODM_DOCID_MAX 255 /* Win32 */ - -#elif defined( _WINDOWS_ ) || defined( _MSDOS ) - #define ODM_DOCID_MAX 80 /* Windows 3.x */ - -#else - #define ODM_DOCID_MAX 255 /* Other platforms */ -#endif - -#define ODM_DMSID_MAX 9 /* Max length of a DMS ID including the - terminating NULL character. */ - -#define ODM_APPID_MAX 16 /* Max length of a application ID including - the terminating NULL character. */ - -// ODMA 2.0 -#define ODM_QUERYID_MAX 255 // Max length of a query ID including - // the terminating NULL character. - -#define ODM_FORMAT_MAX 81 // Max length of a format including - // the terminating NULL character. - -// Maximum length of a filename returned by ODMA including the terminating -// NULL character. Platform dependent. - -#ifdef WIN32 - #define ODM_FILENAME_MAX 255 /* Win32 */ - -#elif defined( _WINDOWS_ ) || defined( _MSDOS ) - #define ODM_FILENAME_MAX 128 /* Windows 3.x */ - -#elif defined( unix ) || defined( _UNIX ) - #define ODM_FILENAME_MAX 1024 /* Unix */ - -#else - #define ODM_FILENAME_MAX 255 /* Other platforms */ -#endif - - -/* Common format type names */ -#define ODM_FORMAT_TEXT "Text" -#define ODM_FORMAT_RTF "Rich text format" -#define ODM_FORMAT_DCA "DCA RFT" /* IBM DCA Rich Format Text */ -#define ODM_FORMAT_TIFF "Tiff" -#define ODM_FORMAT_GIF "Gif" /* Compuserve Graphics Interchange Format */ -#define ODM_FORMAT_BMP "Windows bitmap" -#define ODM_FORMAT_PCX "PCX" -#define ODM_FORMAT_CGM "CGM" /* Computer Graphics Metafile */ -#define ODM_FORMAT_EXE "Executable file" -#define ODM_FORMAT_PCL "PCL" /* HP Printer Control Language */ -#define ODM_FORMAT_PS "PostScript" - - -/* Error returns */ -#define ODM_SUCCESS 0 // Success! -#define ODM_E_FAIL 1 /* Unspecified failure */ -#define ODM_E_CANCEL 2 /* Action was cancelled at user's request */ -#define ODM_E_NODMS 3 /* DMS not registered */ -#define ODM_E_CANTINIT 4 /* DMS failed to initalize */ -#define ODM_E_VERSION 5 /* DMS doesn't support the requested - version of ODMA */ -#define ODM_E_APPSELECT 6 /* User has indicated that he wants to use - the application's file selection - capabilities rather than those of the - DMS. */ -#define ODM_E_USERINT 7 /* Requested action cannot be performed - without user interaction, but silent - mode was specified. */ -#define ODM_E_HANDLE 8 /* The DMHANDLE argument was invalid. */ -#define ODM_E_ACCESS 9 /* User does not have requested access - rights to specified document. */ -#define ODM_E_INUSE 10 /* Document is currently in use and cannot - be accessed in specified mode. */ -#define ODM_E_DOCID 11 /* Invalid document ID */ -#define ODM_E_OPENMODE 12 /* The specified action is incompatible - with the mode in which the document was - opened. */ -#define ODM_E_NOOPEN 13 /* The specified document is not open. */ -#define ODM_E_ITEM 14 /* Invalid item specifier. */ -#define ODM_E_OTHERAPP 15 /* Selected document was for another app. */ -#define ODM_E_NOMOREDATA 16 /* No more data is available */ -#define ODM_E_PARTIALSUCCESS 17 /* */ -// Additional Error code from ODMA 2.0 -#define ODM_E_REQARG 18 /* */ -#define ODM_E_NOSUPPORT 19 /* */ -#define ODM_E_TRUNCATED 20 /* */ -#define ODM_E_INVARG 21 -#define ODM_E_OFFLINE 22 /* */ - - -// ODMOpenDoc modes -#define ODM_MODIFYMODE 1 /* Open document in a modifiable mode. */ -#define ODM_VIEWMODE 2 /* Open document in non-modifiable mode. */ -// ODMA 2.0 -#define ODM_REFCOPY 3 - - -// Actions for ODMActivate -#define ODM_NONE 0 /* No specific action is requested. */ -#define ODM_DELETE 1 /* Delete the specified document. */ -#define ODM_SHOWATTRIBUTES 2 /* Display the specified document's profile - or attributes. */ -#define ODM_EDITATTRIBUTES 3 /* Edit the specified document's profile or - attributes. */ -#define ODM_VIEWDOC 4 /* Display the specified document in a - viewer window. */ -#define ODM_OPENDOC 5 /* Open the specified document in its - native application. */ -// ODMA 2.0 -#define ODM_NEWDOC 6 -#define ODM_CHECKOUT 7 -#define ODM_CANCELCHECKOUT 8 -#define ODM_CHECKIN 9 -#define ODM_SHOWHISTORY 10 - - -// Item selectors for ODMGetDocInfo and ODMSetDocInfo -#define ODM_AUTHOR 1 /* Author of the document. */ -#define ODM_NAME 2 /* Descriptive name of the document. */ -#define ODM_TYPE 3 /* Type of the document. */ -#define ODM_TITLETEXT 4 /* Suggested text to display in the - document window's title bar. */ -#define ODM_DMS_DEFINED 5 /* DMS defined data. */ -#define ODM_CONTENTFORMAT 6 /* String describing document's format */ -// ODMA 2.0 -#define ODM_ALTERNATE_RENDERINGS 7 -#define ODM_CHECKEDOUTBY 8 -#define ODM_CHECKOUTCOMMENT 9 -#define ODM_CHECKOUTDATE 10 -#define ODM_CREATEDBY 11 -#define ODM_CREATEDDATE 12 -#define ODM_DOCID_LATEST 13 -#define ODM_DOCID_RELEASED 14 -#define ODM_DOCVERSION 15 -#define ODM_DOCVERSION_LATEST 16 -#define ODM_DOCVERSION_RELEASED 17 -#define ODM_LOCATION 18 -#define ODM_KEYWORDS 19 -#define ODM_LASTCHECKINBY 20 -#define ODM_LASTCHECKINDATE 21 -#define ODM_MODIFYDATE 22 -#define ODM_MODIFYDATE_LATEST 23 -#define ODM_MODIFYDATE_RELEASED 24 -#define ODM_OWNER 25 -#define ODM_SUBJECT 26 -#define ODM_TITLETEXT_RO 27 -#define ODM_URL 28 - - -// Item selectors for ODMQueryCapability ODMA 2.0 -#define ODM_QC_ACTIVATE 1 -#define ODM_QC_CLOSEDOC 2 -#define ODM_QC_CLOSEDOCEX 3 -#define ODM_QC_GETALTERNATECONTENT 4 -#define ODM_QC_GETDMSINFO 5 -#define ODM_QC_GETDOCINFO 6 -#define ODM_QC_GETDOCRELATION 7 -#define ODM_QC_GETLEADMONIKER 8 -#define ODM_QC_NEWDOC 9 -#define ODM_QC_OPENDOC 10 -#define ODM_QC_QUERYCLOSE 11 -#define ODM_QC_QUERYEXECUTE 12 -#define ODM_QC_QUERYGETRESULTS 13 -#define ODM_QC_SAVEAS 14 -#define ODM_QC_SAVEASEX 15 -#define ODM_QC_SAVEDOC 16 -#define ODM_QC_SAVEDOCEX 17 -#define ODM_QC_SELECTDOC 18 -#define ODM_QC_SELECTDOCEX 19 -#define ODM_QC_SETALTERNATECONTENT 20 -#define ODM_QC_SETDOCEVENT 21 -#define ODM_QC_SETDOCRELATION 22 -#define ODM_QC_SETDOCINFO 23 - - -// Misc. modes, flags -#define ODM_SILENT 16 /* Don't interact with the user while - fulfilling this request. */ -//ODMA 2.0 -#define ODM_VERSION_SAME 1 -#define ODM_VERSION_MAJOR 2 -#define ODM_VERSION_MINOR 4 -#define ODM_VERSION_CHANGED 8 -#define ODM_ALT_DELETE 32 - -//ODMA 2.0 DMS Info Flags -#define ODM_EXT_QUERY 1 -#define ODM_EXT_WORKFLOW 2 - -// Flags for Query Interface -#define ODM_ALL 1 // All DMS's should be searched -#define ODM_SPECIFIC 2 // Only specific DMS's should be searched - - -// Function prototypes -#ifdef __cplusplus -extern "C" { -#endif - -ODMSTATUS WINAPI ODMRegisterApp(ODMHANDLE FAR *pOdmHandle, WORD version, - LPSTR lpszAppId, DWORD dwEnvData, LPVOID pReserved); - -void WINAPI ODMUnRegisterApp(ODMHANDLE odmHandle); - -ODMSTATUS WINAPI ODMSelectDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPDWORD pdwFlags); - -ODMSTATUS WINAPI ODMOpenDoc(ODMHANDLE odmHandle, DWORD flags, - LPSTR lpszDocId, LPSTR lpszDocLocation); - -ODMSTATUS WINAPI ODMSaveDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPSTR lpszNewDocId); - -ODMSTATUS WINAPI ODMCloseDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, - DWORD activeTime, DWORD pagesPrinted, LPVOID sessionData, WORD dataLen); - -ODMSTATUS WINAPI ODMNewDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, - DWORD dwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation); - -ODMSTATUS WINAPI ODMSaveAs(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPSTR lpszNewDocId, LPSTR lpszFormat, ODMSAVEASCALLBACK pcbCallBack, - LPVOID pInstanceData); - -ODMSTATUS WINAPI ODMActivate(ODMHANDLE odmHandle, WORD action, - LPSTR lpszDocId); - -ODMSTATUS WINAPI ODMGetDocInfo(ODMHANDLE odmHandle, LPSTR lpszDocId, - WORD item, LPSTR lpszData, WORD dataLen); - -ODMSTATUS WINAPI ODMSetDocInfo(ODMHANDLE odmHandle, LPSTR lpszDocId, - WORD item, LPSTR lpszData); - -ODMSTATUS WINAPI ODMGetDMSInfo(ODMHANDLE odmHandle, LPSTR lpszDmsId, - LPWORD pwVerNo, LPDWORD pdwExtensions); - -/* Query Enhancements */ -WORD WINAPI ODMGetDMSCount(); - -WORD WINAPI ODMGetDMSList( LPSTR buffer, WORD buffer_size ); - -ODMSTATUS WINAPI ODMGetDMS( LPCSTR lpszAppId, LPSTR lpszDMSId ); - -ODMSTATUS WINAPI ODMSetDMS( LPCSTR lpszAppId, LPCSTR lpszDMSId ); - -ODMSTATUS WINAPI ODMQueryExecute(ODMHANDLE odmHandle, LPCSTR lpszQuery, - DWORD flags, LPCSTR lpszDMSList, LPSTR queryId ); - -ODMSTATUS WINAPI ODMQueryGetResults(ODMHANDLE odmHandle, LPCSTR queryId, - LPSTR lpszDocId, LPSTR lpszDocName, WORD docNameLen, - WORD *docCount ); - -ODMSTATUS WINAPI ODMQueryClose(ODMHANDLE odmHandle, LPCSTR queryId ); - -/* ODMA 2.0 Enhancements */ -ODMSTATUS WINAPI ODMCloseDocEx(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPDWORD pdwFlags, DWORD activeTime, DWORD pagesPrinted, - LPVOID sessionData, WORD dataLen); - -ODMSTATUS WINAPI ODMSaveAsEx(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPSTR lpszNewDocId, LPSTR lpszFormat, ODMSAVEASCALLBACK pcbCallBack, - LPVOID pInstanceData, LPDWORD pdwFlags); - -ODMSTATUS WINAPI ODMSaveDocEx(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPSTR lpszNewDocId, LPDWORD pdwFlags); - -ODMSTATUS WINAPI ODMSelectDocEx(ODMHANDLE odmHandle, LPSTR lpszDocIds, - LPWORD pwDocIdsLen, LPWORD pwDocCount, LPDWORD pdwFlags, - LPSTR lpszFormatFilter); - -ODMSTATUS WINAPI ODMQueryCapability(ODMHANDLE odmHandle, LPCSTR lpszDmsId, - DWORD function, DWORD item, DWORD flags); - -ODMSTATUS WINAPI ODMSetDocEvent(ODMHANDLE odmHandle, LPSTR lpszDocId, - DWORD flags, DWORD event, LPVOID lpData, DWORD dwDataLen, - LPSTR lpszComment); - -ODMSTATUS WINAPI ODMGetAlternateContent(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPDWORD pdwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation); - -ODMSTATUS WINAPI ODMSetAlternateContent(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPDWORD pdwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation); - -ODMSTATUS WINAPI ODMGetDocRelation(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPDWORD pdwFlags, LPSTR lpszLinkedId, LPSTR lpszFormat, - LPSTR lpszPreviousId); - -ODMSTATUS WINAPI ODMSetDocRelation(ODMHANDLE odmHandle, LPSTR lpszDocId, - LPDWORD pdwFlags, LPSTR lpszLinkedId, LPSTR lpszFormat, - LPSTR lpszPreviousId); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_content.cxx b/ucb/source/ucp/odma/odma_content.cxx deleted file mode 100644 index 0789bd663bda..000000000000 --- a/ucb/source/ucp/odma/odma_content.cxx +++ /dev/null @@ -1,1053 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#include <osl/diagnose.h> -#include <com/sun/star/ucb/XDynamicResultSet.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/beans/XPropertyAccess.hpp> -#include <com/sun/star/lang/IllegalAccessException.hpp> -#include <com/sun/star/ucb/UnsupportedDataSinkException.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/io/XOutputStream.hpp> -#include <com/sun/star/io/XActiveDataSink.hpp> -#include <com/sun/star/ucb/OpenCommandArgument2.hpp> -#include <com/sun/star/ucb/OpenMode.hpp> -#include <com/sun/star/ucb/XCommandInfo.hpp> -#include <com/sun/star/ucb/XPersistentPropertySet.hpp> -#include <ucbhelper/contentidentifier.hxx> -#include <ucbhelper/propertyvalueset.hxx> -#include <ucbhelper/cancelcommandexecution.hxx> -#include <com/sun/star/ucb/UnsupportedOpenModeException.hpp> -#include <com/sun/star/ucb/MissingInputStreamException.hpp> -#include <com/sun/star/ucb/InsertCommandArgument.hpp> -#include <com/sun/star/ucb/MissingPropertiesException.hpp> -#include <com/sun/star/io/XActiveDataStreamer.hpp> -#include <com/sun/star/ucb/TransferInfo.hpp> -#include <com/sun/star/ucb/NameClash.hpp> -#ifdef WNT -#include <windows.h> -#endif -#include "odma_content.hxx" -#include "odma_contentprops.hxx" -#include "odma_provider.hxx" -#include "odma_resultset.hxx" -#include "odma_inputstream.hxx" -#include <ucbhelper/content.hxx> -#include <com/sun/star/uno/Exception.hpp> -#include <rtl/ref.hxx> -#include <osl/file.hxx> - -using namespace com::sun::star; -using namespace odma; - -//========================================================================= -//========================================================================= -// -// Content Implementation. -// -//========================================================================= -//========================================================================= - -Content::Content( const uno::Reference< uno::XComponentContext >& rxContext, - ContentProvider* pProvider, - const uno::Reference< ucb::XContentIdentifier >& Identifier, - const ::rtl::Reference<ContentProperties>& _rProps) - : ContentImplHelper( rxContext, pProvider, Identifier ) - ,m_aProps(_rProps) - ,m_pProvider(pProvider) - ,m_pContent(NULL) -{ - OSL_ENSURE(m_aProps.is(),"No valid ContentPropeties!"); -} - -//========================================================================= -// virtual -Content::~Content() -{ - delete m_pContent; -} - -//========================================================================= -// -// XInterface methods. -// -//========================================================================= - -// virtual -void SAL_CALL Content::acquire() throw() -{ - ContentImplHelper::acquire(); -} - -//========================================================================= -// virtual -void SAL_CALL Content::release() throw() -{ - ContentImplHelper::release(); -} - -//========================================================================= -// virtual -uno::Any SAL_CALL Content::queryInterface( const uno::Type & rType ) - throw ( uno::RuntimeException ) -{ - uno::Any aRet; - - // @@@ Add support for additional interfaces. - - return aRet.hasValue() ? aRet : ContentImplHelper::queryInterface( rType ); -} - -//========================================================================= -// -// XTypeProvider methods. -// -//========================================================================= - -XTYPEPROVIDER_COMMON_IMPL( Content ); - -//========================================================================= -// virtual -uno::Sequence< uno::Type > SAL_CALL Content::getTypes() - throw( uno::RuntimeException ) -{ - // @@@ Add own interfaces. - - static cppu::OTypeCollection* pCollection = 0; - - if ( !pCollection ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if ( !pCollection ) - { - static cppu::OTypeCollection aCollection( - CPPU_TYPE_REF( lang::XTypeProvider ), - CPPU_TYPE_REF( lang::XServiceInfo ), - CPPU_TYPE_REF( lang::XComponent ), - CPPU_TYPE_REF( ucb::XContent ), - CPPU_TYPE_REF( ucb::XCommandProcessor ), - CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ), - CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ), - CPPU_TYPE_REF( beans::XPropertyContainer ), - CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ), - CPPU_TYPE_REF( container::XChild ) ); - pCollection = &aCollection; - } - } - - return (*pCollection).getTypes(); -} - -//========================================================================= -// -// XServiceInfo methods. -// -//========================================================================= - -// virtual -rtl::OUString SAL_CALL Content::getImplementationName() - throw( uno::RuntimeException ) -{ - // @@@ Adjust implementation name. Keep the prefix "com.sun.star.comp."! - return rtl::OUString("com.sun.star.comp.odma.Content"); -} - -//========================================================================= -// virtual -uno::Sequence< rtl::OUString > SAL_CALL Content::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - // @@@ Adjust macro name. - uno::Sequence< rtl::OUString > aSNS( 1 ); - aSNS.getArray()[ 0 ] - = rtl::OUString( ODMA_CONTENT_SERVICE_NAME ); - return aSNS; -} - -//========================================================================= -// -// XContent methods. -// -//========================================================================= - -// virtual -rtl::OUString SAL_CALL Content::getContentType() - throw( uno::RuntimeException ) -{ - // @@@ Adjust macro name ( def in odma_provider.hxx ). - return rtl::OUString( ODMA_CONTENT_TYPE ); -} - -//========================================================================= -// -// XCommandProcessor methods. -// -//========================================================================= - -// virtual -uno::Any SAL_CALL Content::execute( - const ucb::Command& aCommand, - sal_Int32 /*CommandId*/, - const uno::Reference< ucb::XCommandEnvironment >& Environment ) - throw( uno::Exception, - ucb::CommandAbortedException, - uno::RuntimeException ) -{ - uno::Any aRet; - - if ( aCommand.Name == "getPropertyValues" ) - { - ////////////////////////////////////////////////////////////////// - // getPropertyValues - ////////////////////////////////////////////////////////////////// - - uno::Sequence< beans::Property > Properties; - if ( !( aCommand.Argument >>= Properties ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - aRet <<= getPropertyValues( Properties, Environment ); - } - else if ( aCommand.Name == "setPropertyValues" ) - { - ////////////////////////////////////////////////////////////////// - // setPropertyValues - ////////////////////////////////////////////////////////////////// - - uno::Sequence< beans::PropertyValue > aProperties; - if ( !( aCommand.Argument >>= aProperties ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - if ( !aProperties.getLength() ) - { - OSL_FAIL( "No properties!" ); - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - aRet <<= setPropertyValues( aProperties, Environment ); - } - else if ( aCommand.Name == "getPropertySetInfo" ) - { - ////////////////////////////////////////////////////////////////// - // getPropertySetInfo - ////////////////////////////////////////////////////////////////// - - // Note: Implemented by base class. - aRet <<= getPropertySetInfo( Environment ); - } - else if ( aCommand.Name == "getCommandInfo" ) - { - ////////////////////////////////////////////////////////////////// - // getCommandInfo - ////////////////////////////////////////////////////////////////// - - // Note: Implemented by base class. - aRet <<= getCommandInfo( Environment ); - } - else if ( aCommand.Name == "open" ) - { - ucb::OpenCommandArgument2 aOpenCommand; - if ( !( aCommand.Argument >>= aOpenCommand ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - sal_Bool bOpenFolder = - ( ( aOpenCommand.Mode == ucb::OpenMode::ALL ) || - ( aOpenCommand.Mode == ucb::OpenMode::FOLDERS ) || - ( aOpenCommand.Mode == ucb::OpenMode::DOCUMENTS ) ); - - if ( bOpenFolder) - { - // open as folder - return result set - - uno::Reference< ucb::XDynamicResultSet > xSet - = new DynamicResultSet( m_xContext, - this, - aOpenCommand, - Environment ); - aRet <<= xSet; - } - - if ( aOpenCommand.Sink.is() ) - { - // Open document - supply document data stream. - - // Check open mode - if ( ( aOpenCommand.Mode - == ucb::OpenMode::DOCUMENT_SHARE_DENY_NONE ) || - ( aOpenCommand.Mode - == ucb::OpenMode::DOCUMENT_SHARE_DENY_WRITE ) ) - { - // Unsupported. - ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedOpenModeException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - sal_Int16( aOpenCommand.Mode ) ) ), - Environment ); - // Unreachable - } - - - rtl::OUString aURL = m_xIdentifier->getContentIdentifier(); - rtl::OUString sFileURL = openDoc(); - delete m_pContent; - m_pContent = new ::ucbhelper::Content( sFileURL, NULL, m_xContext ); - if(!m_pContent->isDocument()) - { - rtl::OUString sErrorMsg("File: "); - sErrorMsg += sFileURL; - sErrorMsg += rtl::OUString(" could not be found."); - ucbhelper::cancelCommandExecution( - uno::makeAny( io::IOException( - sErrorMsg, - static_cast< cppu::OWeakObject * >( this )) ), - Environment ); - } - - uno::Reference< io::XOutputStream > xOut - = uno::Reference< io::XOutputStream >( - aOpenCommand.Sink, uno::UNO_QUERY ); - if ( xOut.is() ) - { - // @@@ PUSH: write data into xOut - m_pContent->openStream(xOut); - } - else - { - uno::Reference< io::XActiveDataSink > xDataSink - = uno::Reference< io::XActiveDataSink >( - aOpenCommand.Sink, uno::UNO_QUERY ); - if ( xDataSink.is() ) - { - // @@@ PULL: wait for client read - uno::Reference< io::XInputStream > xIn; - try - { - xIn = m_pContent->openStream(); - } - catch(uno::Exception&) - { - OSL_FAIL("Exception occurred while creating the file content!"); - } - xDataSink->setInputStream( xIn ); - } - else - { - uno::Reference< io::XActiveDataStreamer > activeDataStreamer( aOpenCommand.Sink,uno::UNO_QUERY ); - if(activeDataStreamer.is()) - { - activeDataStreamer->setStream(new OOdmaStream(m_pContent,getContentProvider(),m_aProps)); - m_pContent = NULL; // don't delete here because the stream is now the owner - } - else - { - // Note: aOpenCommand.Sink may contain an XStream - // implementation. Support for this type of - // sink is optional... - ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedDataSinkException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - aOpenCommand.Sink ) ), - Environment ); - // Unreachable - } - } - } - } - } - else if ( aCommand.Name == "close" ) - { - getContentProvider()->closeDocument(m_aProps->m_sDocumentId); - } - else if ( aCommand.Name == "delete" ) - { - ////////////////////////////////////////////////////////////////// - // delete - ////////////////////////////////////////////////////////////////// - - // Remove own and all children's Additional Core Properties. - removeAdditionalPropertySet( sal_True ); - // Remove own and all childrens(!) persistent data. - if(!getContentProvider()->deleteDocument(m_aProps)) - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - } - else if ( aCommand.Name == "insert" ) - { - ////////////////////////////////////////////////////////////////// - // insert - ////////////////////////////////////////////////////////////////// - - ucb::InsertCommandArgument arg; - if ( !( aCommand.Argument >>= arg ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - insert( arg.Data, arg.ReplaceExisting, Environment ); - } - else if( ! aCommand.Name.compareToAscii( "transfer" ) ) - { - // So far I have determined that this command is called when - // doing "Save As" to copy an already written backup copy of - // the document in the file system into the DMS. - - // Maybe also in other situations. - - ucb::TransferInfo aTransferInfo; - if( ! ( aCommand.Argument >>= aTransferInfo ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - ::rtl::Reference<ContentProperties> aProp = m_aProps; - if(aProp->m_bIsFolder) - { - aProp = getContentProvider()->getContentPropertyWithDocumentId(aTransferInfo.NewTitle); - if(!aProp.is()) - aProp = getContentProvider()->getContentPropertyWithSavedAsName(aTransferInfo.NewTitle); - sal_Bool bError = !aProp.is(); - - // There used to be code below that called ODMSaveAsEx, - // but that was very broken. We have already called - // ODMSaveAsEx in the ODMA file picker when selecting the - // name for a new document, or the document already exists - // in the DMS and we don't need any ODMSaveAsEx. The ODMA - // file picker tells odma::ContentProvider about the new - // document's DOCID, so the - // getContentPropertyWithDocumentId() call above should - // succeed. - - if(bError) - ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - } - rtl::OUString sFileURL = ContentProvider::openDoc(aProp); - - sal_Int32 nLastIndex = sFileURL.lastIndexOf( sal_Unicode('/') ); - // Create a new Content object for the "shadow" file - // corresponding to the opened document from the DMS. - ::ucbhelper::Content aContent(sFileURL.copy(0,nLastIndex),NULL, m_xContext); - // aTransferInfo.NameClash = ucb::NameClash::OVERWRITE; - aTransferInfo.NewTitle = sFileURL.copy( 1 + nLastIndex ); - // Copy our saved backup copy to the "shadow" file. - aContent.executeCommand(::rtl::OUString("transfer"),uno::makeAny(aTransferInfo)); - // Tell the DMS that the "shadow" file is done and can be - // imported. - getContentProvider()->saveDocument(aProp->m_sDocumentId); - } - else if ( aCommand.Name == "getCasePreservingURL" ) - { - rtl::OUString CasePreservingURL = openDoc(); - aRet <<= CasePreservingURL; - } - else - { - ////////////////////////////////////////////////////////////////// - // Unsupported command - ////////////////////////////////////////////////////////////////// - - OSL_FAIL( "Content::execute - unsupported command!" ); - - ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedCommandException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ) ) ), - Environment ); - // Unreachable - } - - return aRet; -} - -//========================================================================= -// virtual -void SAL_CALL Content::abort( sal_Int32 /*CommandId*/ ) - throw( uno::RuntimeException ) -{ - // @@@ Implement logic to abort running commands, if this makes - // sense for your content. -} - -//========================================================================= -// -// Non-interface methods. -// -//========================================================================= - -// virtual -::rtl::OUString Content::getParentURL() -{ - ::rtl::OUString sURL = m_xIdentifier->getContentIdentifier(); - - // @@@ Extract URL of parent from aURL and return it... - static ::rtl::OUString sScheme1(ODMA_URL_SCHEME ODMA_URL_SHORT "/"); - static ::rtl::OUString sScheme2(ODMA_URL_SCHEME ODMA_URL_SHORT); - if(sURL == sScheme1 || sURL == sScheme2) - sURL = ::rtl::OUString(); - else - sURL = sScheme1; - - return sURL; -} - -//========================================================================= -// static -uno::Reference< sdbc::XRow > Content::getPropertyValues( - const uno::Reference< uno::XComponentContext >& rxContext, - const uno::Sequence< beans::Property >& rProperties, - const rtl::Reference<ContentProperties>& rData, - const rtl::Reference< ::ucbhelper::ContentProviderImplHelper >& rProvider, - const rtl::OUString& rContentId ) -{ - // Note: Empty sequence means "get values of all supported properties". - - rtl::Reference< ::ucbhelper::PropertyValueSet > xRow - = new ::ucbhelper::PropertyValueSet( rxContext ); - - sal_Int32 nCount = rProperties.getLength(); - if ( nCount ) - { - uno::Reference< beans::XPropertySet > xAdditionalPropSet; - sal_Bool bTriedToGetAdditonalPropSet = sal_False; - - const beans::Property* pProps = rProperties.getConstArray(); - for ( sal_Int32 n = 0; n < nCount; ++n ) - { - const beans::Property& rProp = pProps[ n ]; - - // Process Core properties. - - if ( rProp.Name == "ContentType" ) - { - xRow->appendString ( rProp, rData->m_sContentType ); - } - else if ( rProp.Name == "Title" ) - { - xRow->appendString ( rProp, rData->m_sTitle ); - } - else if ( rProp.Name == "IsDocument" ) - { - xRow->appendBoolean( rProp, rData->m_bIsDocument ); - } - else if ( rProp.Name == "IsFolder" ) - { - xRow->appendBoolean( rProp, rData->m_bIsFolder ); - } - else if ( rProp.Name == "DateCreated" ) - { - xRow->appendTimestamp( rProp, rData->m_aDateCreated ); - } - else if ( rProp.Name == "DateModified" ) - { - xRow->appendTimestamp( rProp, rData->m_aDateModified ); - } - else if ( rProp.Name == "IsReadOnly" ) - { - xRow->appendBoolean( rProp, rData->m_bIsReadOnly ); - } - else if ( rProp.Name == "Author" ) - { - xRow->appendString ( rProp, rData->m_sAuthor ); - } - else if ( rProp.Name == "Subject" ) - { - xRow->appendString ( rProp, rData->m_sSubject ); - } - else if ( rProp.Name == "Keywords" ) - { - xRow->appendString ( rProp, rData->m_sKeywords ); - } - else - { - // @@@ Note: If your data source supports adding/removing - // properties, you should implement the interface - // XPropertyContainer by yourself and supply your own - // logic here. The base class uses the service - // "com.sun.star.ucb.Store" to maintain Additional Core - // properties. But using server functionality is preferred! - - // Not a Core Property! Maybe it's an Additional Core Property?! - - if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() ) - { - xAdditionalPropSet - = uno::Reference< beans::XPropertySet >( - rProvider->getAdditionalPropertySet( rContentId, - sal_False ), - uno::UNO_QUERY ); - bTriedToGetAdditonalPropSet = sal_True; - } - - if ( xAdditionalPropSet.is() ) - { - if ( !xRow->appendPropertySetValue( - xAdditionalPropSet, - rProp ) ) - { - // Append empty entry. - xRow->appendVoid( rProp ); - } - } - else - { - // Append empty entry. - xRow->appendVoid( rProp ); - } - } - } - } - else - { - // Append all Core Properties. - xRow->appendString ( - beans::Property( rtl::OUString("ContentType"), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData->m_sContentType ); - xRow->appendString ( - beans::Property( rtl::OUString("Title"), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND ), - rData->m_sTitle ); - xRow->appendBoolean( - beans::Property( rtl::OUString("IsDocument"), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData->m_bIsDocument ); - xRow->appendBoolean( - beans::Property( rtl::OUString("IsFolder"), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData->m_bIsFolder ); - - // @@@ Append other properties supported directly. - xRow->appendTimestamp( - beans::Property( rtl::OUString("DateCreated"), - -1, - getCppuType(static_cast< const util::DateTime * >( 0 ) ), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData->m_aDateCreated ); - xRow->appendTimestamp( - beans::Property( rtl::OUString("DateModified"), - -1, - getCppuType(static_cast< const util::DateTime * >( 0 ) ), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData->m_aDateModified ); - xRow->appendBoolean( - beans::Property( rtl::OUString("IsReadOnly"), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData->m_bIsReadOnly ); - xRow->appendString ( - beans::Property( rtl::OUString("Author"), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND ), - rData->m_sAuthor ); - xRow->appendString ( - beans::Property( rtl::OUString("Subject"), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND ), - rData->m_sSubject ); - xRow->appendString ( - beans::Property( rtl::OUString("Keywords"), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND ), - rData->m_sKeywords ); - - // @@@ Note: If your data source supports adding/removing - // properties, you should implement the interface - // XPropertyContainer by yourself and supply your own - // logic here. The base class uses the service - // "com.sun.star.ucb.Store" to maintain Additional Core - // properties. But using server functionality is preferred! - - // Append all Additional Core Properties. - - uno::Reference< beans::XPropertySet > xSet( - rProvider->getAdditionalPropertySet( rContentId, sal_False ), - uno::UNO_QUERY ); - xRow->appendPropertySet( xSet ); - } - - return uno::Reference< sdbc::XRow >( xRow.get() ); -} - -//========================================================================= -uno::Reference< sdbc::XRow > Content::getPropertyValues( - const uno::Sequence< beans::Property >& rProperties, - const uno::Reference< ucb::XCommandEnvironment >& /*xEnv*/ ) -{ - osl::Guard< osl::Mutex > aGuard( m_aMutex ); - return getPropertyValues( m_xContext, - rProperties, - m_aProps, - rtl::Reference< - ::ucbhelper::ContentProviderImplHelper >( - m_xProvider.get() ), - m_xIdentifier->getContentIdentifier() ); -} - -//========================================================================= -uno::Sequence< uno::Any > Content::setPropertyValues( - const uno::Sequence< beans::PropertyValue >& rValues, - const uno::Reference< ucb::XCommandEnvironment >& /*xEnv*/ ) -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex ); - - uno::Sequence< uno::Any > aRet( rValues.getLength() ); - uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() ); - sal_Int32 nChanged = 0; - - beans::PropertyChangeEvent aEvent; - aEvent.Source = static_cast< cppu::OWeakObject * >( this ); - aEvent.Further = sal_False; -// aEvent.PropertyName = - aEvent.PropertyHandle = -1; -// aEvent.OldValue = -// aEvent.NewValue = - - const beans::PropertyValue* pValues = rValues.getConstArray(); - sal_Int32 nCount = rValues.getLength(); - - uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet; - sal_Bool bTriedToGetAdditonalPropSet = sal_False; - - for ( sal_Int32 n = 0; n < nCount; ++n ) - { - const beans::PropertyValue& rValue = pValues[ n ]; - - if ( rValue.Name == "Title" ) - { - changePropertyValue(rValue,n,m_aProps->m_sTitle,nChanged,aRet,aChanges); - } - else if ( rValue.Name == "Author" ) - { - changePropertyValue(rValue,n,m_aProps->m_sAuthor,nChanged,aRet,aChanges); - } - else if ( rValue.Name == "Keywords" ) - { - changePropertyValue(rValue,n,m_aProps->m_sKeywords,nChanged,aRet,aChanges); - } - else if ( rValue.Name == "Subject" ) - { - changePropertyValue(rValue,n,m_aProps->m_sSubject,nChanged,aRet,aChanges); - } - else if ( rValue.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) || - rValue.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) || - rValue.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) || - rValue.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "DateCreated" ) ) || - rValue.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "DateModified" ) ) || - rValue.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "IsReadOnly" ) ) ) - { - // Read-only property! - aRet[ n ] <<= lang::IllegalAccessException( - rtl::OUString( "Property is read-only!" ), - static_cast< cppu::OWeakObject * >( this ) ); - } - else - { - // @@@ Note: If your data source supports adding/removing - // properties, you should implement the interface - // XPropertyContainer by yourself and supply your own - // logic here. The base class uses the service - // "com.sun.star.ucb.Store" to maintain Additional Core - // properties. But using server functionality is preferred! - - // Not a Core Property! Maybe it's an Additional Core Property?! - - if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() ) - { - xAdditionalPropSet = getAdditionalPropertySet( sal_False ); - bTriedToGetAdditonalPropSet = sal_True; - } - - if ( xAdditionalPropSet.is() ) - { - try - { - uno::Any aOldValue - = xAdditionalPropSet->getPropertyValue( rValue.Name ); - if ( aOldValue != rValue.Value ) - { - xAdditionalPropSet->setPropertyValue( - rValue.Name, rValue.Value ); - - aEvent.PropertyName = rValue.Name; - aEvent.OldValue = aOldValue; - aEvent.NewValue = rValue.Value; - - aChanges.getArray()[ nChanged ] = aEvent; - nChanged++; - } - else - { - // Old value equals new value. No error! - } - } - catch ( beans::UnknownPropertyException const & e ) - { - aRet[ n ] <<= e; - } - catch ( lang::WrappedTargetException const & e ) - { - aRet[ n ] <<= e; - } - catch ( beans::PropertyVetoException const & e ) - { - aRet[ n ] <<= e; - } - catch ( lang::IllegalArgumentException const & e ) - { - aRet[ n ] <<= e; - } - } - else - { - aRet[ n ] <<= uno::Exception( - rtl::OUString( "No property set for storing the value!" ), - static_cast< cppu::OWeakObject * >( this ) ); - } - } - } - - if ( nChanged > 0 ) - { - // @@@ Save changes. -// storeData(); - - aGuard.clear(); - aChanges.realloc( nChanged ); - notifyPropertiesChange( aChanges ); - } - - return aRet; -} -//========================================================================= -void Content::insert( - const uno::Reference< io::XInputStream > & xInputStream, - sal_Bool bReplaceExisting, - const uno::Reference< ucb::XCommandEnvironment >& Environment ) - throw( uno::Exception ) -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex ); - - // Check, if all required properties were set. - if ( !m_aProps->m_sTitle.getLength()) - { - OSL_FAIL( "Content::insert - property value missing!" ); - - uno::Sequence< rtl::OUString > aProps( 1 ); - aProps[ 0 ] = rtl::OUString("zzzz"); - ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::MissingPropertiesException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - aProps ) ), - Environment ); - // Unreachable - } - - if ( !xInputStream.is() ) - { - OSL_FAIL( "Content::insert - No data stream!" ); - - ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::MissingInputStreamException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ) ) ), - Environment ); - // Unreachable - } - - // Assemble new content identifier... - - // uno::Reference< ucb::XContentIdentifier > xId = ...; - - // Fail, if a resource with given id already exists. - if ( !bReplaceExisting ) // && hasData( m_xIdentifier ) ) - { - ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedCommandException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ) ) ), - Environment ); -// ucbhelper::cancelCommandExecution( -// ucb::IOErrorCode_ALREADY_EXISTING, -// Environment, -// uno::makeAny(static_cast< cppu::OWeakObject * >( this )) -// ); - // Unreachable - } - - // m_xIdentifier = xId; - -// @@@ -// storeData(); - - aGuard.clear(); - inserted(); -} - -// ----------------------------------------------------------------------------- -::rtl::OUString Content::openDoc() -{ - OSL_ENSURE(m_aProps.is(),"No valid content properties!"); - return ContentProvider::openDoc(m_aProps); -} -// ----------------------------------------------------------------------------- -void Content::changePropertyValue(const beans::PropertyValue& _rValue, - sal_Int32 _rnCurrentPos, - ::rtl::OUString& _rsMemberValue, - sal_Int32& _rnChanged, - uno::Sequence< uno::Any >& _rRet, - uno::Sequence< beans::PropertyChangeEvent >& _rChanges) throw (beans::IllegalTypeException) -{ - rtl::OUString sNewValue; - sal_Bool bError = sal_False; - if ( _rValue.Value >>= sNewValue ) - { - if ( sNewValue != _rsMemberValue ) - { - osl::Guard< osl::Mutex > aGuard( m_aMutex ); - // first we have to check if we could change the property inside the DMS - ::rtl::OString sDocInfoValue = ::rtl::OUStringToOString(sNewValue,RTL_TEXTENCODING_ASCII_US); - WORD nDocInfo = 0; - if(&_rsMemberValue == &m_aProps->m_sTitle) - nDocInfo = ODM_TITLETEXT; - else if(&_rsMemberValue == &m_aProps->m_sAuthor) - nDocInfo = ODM_AUTHOR; - else if(&_rsMemberValue == &m_aProps->m_sSubject) - nDocInfo = ODM_SUBJECT; - else if(&_rsMemberValue == &m_aProps->m_sKeywords) - nDocInfo = ODM_KEYWORDS; - else - bError = sal_True; - - if(!bError) - { - ODMSTATUS odm = NODMSetDocInfo( ContentProvider::getHandle(), - const_cast<sal_Char*>(m_aProps->m_sDocumentId.getStr()), - nDocInfo, - const_cast<sal_Char*>(sDocInfoValue.getStr()) - ); - if(odm == ODM_SUCCESS) - { - beans::PropertyChangeEvent aEvent; - aEvent.Source = static_cast< cppu::OWeakObject * >( this ); - aEvent.Further = sal_False; - aEvent.PropertyHandle = -1; - aEvent.PropertyName = _rValue.Name; - aEvent.OldValue = uno::makeAny( _rsMemberValue ); - aEvent.NewValue = uno::makeAny( sNewValue ); - - _rChanges.getArray()[ _rnChanged ] = aEvent; - - _rsMemberValue = sNewValue; - ++_rnChanged; - } - } - } - else - { - // Old value equals new value. No error! - } - } - else - bError = sal_True; - - if(bError) - { - _rRet[ _rnCurrentPos ] <<= beans::IllegalTypeException( - rtl::OUString( "Property value has wrong type!" ), - static_cast< cppu::OWeakObject * >( this ) ); - } -} -// ----------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_content.hxx b/ucb/source/ucp/odma/odma_content.hxx deleted file mode 100644 index 21608870da18..000000000000 --- a/ucb/source/ucp/odma/odma_content.hxx +++ /dev/null @@ -1,190 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef ODMA_CONTENT_HXX -#define ODMA_CONTENT_HXX - -#include <list> -#include <ucbhelper/contenthelper.hxx> - -namespace com { namespace sun { namespace star { - namespace beans { - struct Property; - struct PropertyValue; - } - namespace sdbc { - class XRow; - } - namespace io { - class XInputStream; - } -}}} -namespace ucbhelper -{ - class Content; -} - - -// @@@ Adjust namespace name. -namespace odma -{ - -//========================================================================= - -// @@@ Adjust service name. - -// UNO service name for the content. -#define ODMA_CONTENT_SERVICE_NAME \ - "com.sun.star.ucb.ODMAContent" - -//========================================================================= -class ContentProvider; -class ContentProperties; -class Content : public ::ucbhelper::ContentImplHelper -{ - ::rtl::Reference<ContentProperties> m_aProps; - ContentProvider* m_pProvider; - ::ucbhelper::Content* m_pContent; - -private: - virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property > - getProperties( const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment > & xEnv ); - virtual com::sun::star::uno::Sequence< com::sun::star::ucb::CommandInfo > - getCommands( const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment > & xEnv ); - virtual ::rtl::OUString getParentURL(); - - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow > - getPropertyValues( const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::Property >& rProperties, - const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XCommandEnvironment >& xEnv ); - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > - setPropertyValues( const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rValues, - const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XCommandEnvironment >& xEnv ); - - /** openDoc returns the file URL for the DOC ID - @return the url of the temporary file - */ - ::rtl::OUString openDoc(); - - /** changePropertyValue sets the property referenced by _sMemberValue to the new value - @param _rValue the new value to set - @param _rnCurrentPos the current position inside the Any sequence _rRet - @param _sMemberValue the place where to set the property - @param _rnChanged will be incremented when property changed - @param _rRet collect the exceptions - @param _rChanges contains the changes done - */ - void changePropertyValue(const ::com::sun::star::beans::PropertyValue& _rValue, - sal_Int32 _rnCurrentPos, - ::rtl::OUString& _rsMemberValue, - sal_Int32& _rnChanged, - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& _rRet, - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyChangeEvent >& _rChanges) throw (::com::sun::star::beans::IllegalTypeException); - -// typedef rtl::Reference< Content > ContentRef; -// typedef std::list< ContentRef > ContentRefList; -// void queryChildren( ContentRefList& rChildren ); - - // Command "insert" - void insert( const ::com::sun::star::uno::Reference< - ::com::sun::star::io::XInputStream > & xInputStream, - sal_Bool bReplaceExisting, - const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment >& Environment ) - throw( ::com::sun::star::uno::Exception ); - -// // Command "delete" -// void destroy( sal_Bool bDeletePhysical ) -// throw( ::com::sun::star::uno::Exception ); - -public: - Content( const ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext >& rxContext, - ContentProvider* pProvider, - const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XContentIdentifier >& Identifier, - const ::rtl::Reference<ContentProperties>& _rProps); - virtual ~Content(); - - // XInterface - XINTERFACE_DECL() - - // XTypeProvider - XTYPEPROVIDER_DECL() - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL - getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL - getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XContent - virtual rtl::OUString SAL_CALL - getContentType() - throw( com::sun::star::uno::RuntimeException ); - - // XCommandProcessor - virtual com::sun::star::uno::Any SAL_CALL - execute( const com::sun::star::ucb::Command& aCommand, - sal_Int32 CommandId, - const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment >& Environment ) - throw( com::sun::star::uno::Exception, - com::sun::star::ucb::CommandAbortedException, - com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL - abort( sal_Int32 CommandId ) - throw( com::sun::star::uno::RuntimeException ); - - ////////////////////////////////////////////////////////////////////// - // Additional interfaces - ////////////////////////////////////////////////////////////////////// - - // @@@ Add additional interfaces ( like com::sun:.star::ucb::XContentCreator ). - - ////////////////////////////////////////////////////////////////////// - // Non-interface methods. - ////////////////////////////////////////////////////////////////////// - - // Called from resultset data supplier. - static ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow > - getPropertyValues( const ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext >& rxContext, - const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::Property >& rProperties, - const ::rtl::Reference<ContentProperties>& rData, - const ::rtl::Reference< - ::ucbhelper::ContentProviderImplHelper >& rProvider, - const ::rtl::OUString& rContentId ); - - ContentProvider* getContentProvider() const { return m_pProvider; } -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_contentcaps.cxx b/ucb/source/ucp/odma/odma_contentcaps.cxx deleted file mode 100644 index b27c920d188a..000000000000 --- a/ucb/source/ucp/odma/odma_contentcaps.cxx +++ /dev/null @@ -1,236 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#include <com/sun/star/beans/Property.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <com/sun/star/ucb/CommandInfo.hpp> -#include <com/sun/star/ucb/InsertCommandArgument.hpp> -#include <com/sun/star/ucb/OpenCommandArgument2.hpp> -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/util/DateTime.hpp> -#include <com/sun/star/ucb/TransferInfo.hpp> -#ifdef WNT -#include <windows.h> -#endif -#include "odma_content.hxx" - -using namespace com::sun::star; -using namespace odma; - -//========================================================================= -// -// Content implementation. -// -//========================================================================= - -//========================================================================= -// -// IMPORTENT: If any property data ( name / type / ... ) are changed, then -// Content::getPropertyValues(...) must be adapted too! -// -//========================================================================= - -// virtual -uno::Sequence< beans::Property > Content::getProperties( - const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ ) -{ - // @@@ Add additional properties... - - // @@@ Note: If your data source supports adding/removing properties, - // you should implement the interface XPropertyContainer - // by yourself and supply your own logic here. The base class - // uses the service "com.sun.star.ucb.Store" to maintain - // Additional Core properties. But using server functionality - // is preferred! In fact you should return a table conatining - // even that dynamicly added properties. - -// osl::Guard< osl::Mutex > aGuard( m_aMutex ); - - //================================================================= - // - // Supported properties - // - //================================================================= - - #define PROPERTY_COUNT 10 - - static beans::Property aPropertyInfoTable[] = - { - /////////////////////////////////////////////////////////////// - // Required properties - /////////////////////////////////////////////////////////////// - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - ), - /////////////////////////////////////////////////////////////// - // Optional standard properties - /////////////////////////////////////////////////////////////// - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateCreated" ) ), - -1, - getCppuType(static_cast< const util::DateTime * >( 0 ) ), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateModified" ) ), - -1, - getCppuType(static_cast< const util::DateTime * >( 0 ) ), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsReadOnly" ) ), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - /////////////////////////////////////////////////////////////// - // New properties - /////////////////////////////////////////////////////////////// - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Author" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Subject" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Keywords" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - ) - }; - return uno::Sequence< - beans::Property >( aPropertyInfoTable, PROPERTY_COUNT ); -} - -//========================================================================= -// virtual -uno::Sequence< ucb::CommandInfo > Content::getCommands( - const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ ) -{ - // @@@ Add additional commands... - -// osl::Guard< osl::Mutex > aGuard( m_aMutex ); - - //================================================================= - // - // Supported commands - // - //================================================================= - - #define COMMAND_COUNT 8 - - static ucb::CommandInfo aCommandInfoTable[] = - { - /////////////////////////////////////////////////////////////// - // Required commands - /////////////////////////////////////////////////////////////// - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), - -1, - getCppuVoidType() - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), - -1, - getCppuVoidType() - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), - -1, - getCppuType( - static_cast< uno::Sequence< beans::Property > * >( 0 ) ) - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), - -1, - getCppuType( - static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) ) - ), - /////////////////////////////////////////////////////////////// - // Optional standard commands - /////////////////////////////////////////////////////////////// -/* - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ), - -1, - getCppuBooleanType() - ), -*/ - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ), - -1, - getCppuType( - static_cast< ucb::InsertCommandArgument * >( 0 ) ) - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ), - -1, - getCppuType( static_cast< ucb::OpenCommandArgument2 * >( 0 ) ) - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "close" ) ), - -1, - getCppuVoidType( ) - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ), - -1, - getCppuType( static_cast< ucb::TransferInfo * >( 0 ) ) - ) - - /////////////////////////////////////////////////////////////// - // New commands - /////////////////////////////////////////////////////////////// - }; - - return uno::Sequence< - ucb::CommandInfo >( aCommandInfoTable, COMMAND_COUNT ); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_contentprops.hxx b/ucb/source/ucp/odma/odma_contentprops.hxx deleted file mode 100644 index 5b0aeba113a5..000000000000 --- a/ucb/source/ucp/odma/odma_contentprops.hxx +++ /dev/null @@ -1,79 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef ODMA_CONTENTPROPS_HXX -#define ODMA_CONTENTPROPS_HXX - -#include "rtl/ref.hxx" -#include "salhelper/simplereferenceobject.hxx" -#include <rtl/ustring.hxx> -#include <com/sun/star/util/DateTime.hpp> -#include <functional> - -namespace odma -{ - class ContentProperties : public salhelper::SimpleReferenceObject - { - public: - com::sun::star::util::DateTime m_aDateCreated; // when was the document created - com::sun::star::util::DateTime m_aDateModified; // when was the document last modified - ::rtl::OUString m_sTitle; // Title - ::rtl::OUString m_sContentType; // ContentType - ::rtl::OString m_sDocumentId; // the document id given from the DMS - ::rtl::OUString m_sDocumentName;// document name - ::rtl::OUString m_sFileURL; // the temporary file location - ::rtl::OUString m_sAuthor; // the Author of the document - ::rtl::OUString m_sSubject; // the subject of the document - ::rtl::OUString m_sKeywords; // the keywords of the document - ::rtl::OUString m_sSavedAsName; // the name which was used to save it - sal_Bool m_bIsDocument; // IsDocument - sal_Bool m_bIsFolder; // IsFolder - sal_Bool m_bIsOpen; // is true when OpenDoc was called - sal_Bool m_bIsReadOnly; // true when the document is read-only - - // @@@ Add other properties supported by your content. - - ContentProperties() - :m_bIsDocument( sal_True ) - ,m_bIsFolder( sal_False ) - ,m_bIsOpen( sal_False ) - ,m_bIsReadOnly( sal_False ) - {} - - inline ::rtl::OUString getTitle() const { return m_sTitle; } - inline ::rtl::OUString getDocumentId() const { return ::rtl::OStringToOUString( m_sDocumentId, RTL_TEXTENCODING_ASCII_US ); } - inline ::rtl::OUString getSavedAsName() const { return m_sSavedAsName; } - }; - typedef ::std::binary_function< ::rtl::Reference<ContentProperties>, ::rtl::OUString,bool> TContentPropertiesFunctorBase; - /// binary_function Functor object for class ContentProperties return type is bool - class ContentPropertiesMemberFunctor : public TContentPropertiesFunctorBase - { - ::std::const_mem_fun_t< ::rtl::OUString,ContentProperties> m_aFunction; - public: - ContentPropertiesMemberFunctor(const ::std::const_mem_fun_t< ::rtl::OUString,ContentProperties>& _rFunc) - : m_aFunction(_rFunc){} - - inline bool operator()(const ::rtl::Reference<ContentProperties>& lhs,const ::rtl::OUString& rhs) const - { - return !!(m_aFunction(lhs.get()) == rhs); - } - }; -} -#endif // ODMA_CONTENTPROPS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_datasupplier.cxx b/ucb/source/ucp/odma/odma_datasupplier.cxx deleted file mode 100644 index 5b2daf928d02..000000000000 --- a/ucb/source/ucp/odma/odma_datasupplier.cxx +++ /dev/null @@ -1,447 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#ifdef WNT -#include <windows.h> -#endif -#include <vector> -#include <comphelper/processfactory.hxx> -#include <ucbhelper/contentidentifier.hxx> -#include <ucbhelper/providerhelper.hxx> -#include "odma_datasupplier.hxx" -#include "odma_content.hxx" -#include "odma_contentprops.hxx" -#include "odma_provider.hxx" - -using namespace com::sun::star::beans; -using namespace com::sun::star::lang; -using namespace com::sun::star::ucb; -using namespace com::sun::star::uno; -using namespace com::sun::star::sdbc; - -using namespace odma; - -namespace odma -{ - -//========================================================================= -// -// struct ResultListEntry. -// -//========================================================================= - -struct ResultListEntry -{ - ::rtl::OUString aId; - Reference< XContentIdentifier > xId; - Reference< XContent > xContent; - Reference< XRow > xRow; - ::rtl::Reference<ContentProperties> rData; - - ResultListEntry( const ::rtl::Reference<ContentProperties>& rEntry ) : rData( rEntry ) {} -}; - -//========================================================================= -// -// ResultList. -// -//========================================================================= - -typedef std::vector< ResultListEntry* > ResultList; - -//========================================================================= -// -// struct DataSupplier_Impl. -// -//========================================================================= - -struct DataSupplier_Impl -{ - osl::Mutex m_aMutex; - ResultList m_aResults; - rtl::Reference< Content > m_xContent; - Reference< XMultiServiceFactory > m_xSMgr; -// @@@ The data source and an iterator for it -// Entry m_aFolder; -// Entry::iterator m_aIterator; - sal_Int32 m_nOpenMode; - sal_Bool m_bCountFinal; - - DataSupplier_Impl( const Reference< XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rContent, - sal_Int32 nOpenMode ) - : m_xContent( rContent ), m_xSMgr( rxSMgr ), -// m_aFolder( rxSMgr, rContent->getIdentifier()->getContentIdentifier() ), - m_nOpenMode( nOpenMode ), m_bCountFinal( sal_False ) {} - ~DataSupplier_Impl(); -}; - -//========================================================================= -DataSupplier_Impl::~DataSupplier_Impl() -{ - ResultList::const_iterator it = m_aResults.begin(); - ResultList::const_iterator end = m_aResults.end(); - - while ( it != end ) - { - delete (*it); - ++it; - } -} - -} - -//========================================================================= -//========================================================================= -// -// DataSupplier Implementation. -// -//========================================================================= -//========================================================================= - -DataSupplier::DataSupplier( const Reference<XMultiServiceFactory >& rxSMgr, - const rtl::Reference< ::odma::Content >& rContent, - sal_Int32 nOpenMode ) -: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) ) -{ -} - -//========================================================================= -// virtual -DataSupplier::~DataSupplier() -{ - delete m_pImpl; -} - -//========================================================================= -// virtual -::rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - ::rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aId; - if ( aId.getLength() ) - { - // Already cached. - return aId; - } - } - - if ( getResult( nIndex ) ) - { - ::rtl::OUString aId - = m_pImpl->m_xContent->getIdentifier()->getContentIdentifier(); - - aId += m_pImpl->m_aResults[ nIndex ]->rData->m_sTitle; - - m_pImpl->m_aResults[ nIndex ]->aId = aId; - return aId; - } - return ::rtl::OUString(); -} - -//========================================================================= -// virtual -Reference< XContentIdentifier > DataSupplier::queryContentIdentifier( - sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - Reference< XContentIdentifier > xId - = m_pImpl->m_aResults[ nIndex ]->xId; - if ( xId.is() ) - { - // Already cached. - return xId; - } - } - - ::rtl::OUString aId = queryContentIdentifierString( nIndex ); - if ( aId.getLength() ) - { - Reference< XContentIdentifier > xId - = new ucbhelper::ContentIdentifier( aId ); - m_pImpl->m_aResults[ nIndex ]->xId = xId; - return xId; - } - return Reference< XContentIdentifier >(); -} - -//========================================================================= -// virtual -Reference< XContent > DataSupplier::queryContent( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - Reference< XContent > xContent - = m_pImpl->m_aResults[ nIndex ]->xContent; - if ( xContent.is() ) - { - // Already cached. - return xContent; - } - } - - Reference< XContentIdentifier > xId = queryContentIdentifier( nIndex ); - if ( xId.is() ) - { - try - { - Reference< XContent > xContent - = m_pImpl->m_xContent->getProvider()->queryContent( xId ); - m_pImpl->m_aResults[ nIndex ]->xContent = xContent; - return xContent; - - } - catch ( IllegalIdentifierException& ) - { - } - } - return Reference< XContent >(); -} - -//========================================================================= -// virtual -sal_Bool DataSupplier::getResult( sal_uInt32 nIndex ) -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( m_pImpl->m_aResults.size() > nIndex ) - { - // Result already present. - return sal_True; - } - - // Result not (yet) present. - - if ( m_pImpl->m_bCountFinal ) - return sal_False; - - // Try to obtain result... - - sal_uInt32 nOldCount = m_pImpl->m_aResults.size(); - sal_Bool bFound = sal_False; -// sal_uInt32 nPos = nOldCount; - - // @@@ Obtain data and put it into result list... -/* - while ( m_pImpl->m_aFolder.next( m_pImpl->m_aIterator ) ) - { - m_pImpl->m_aResults.push_back( - new ResultListEntry( *m_pImpl->m_aIterator ) ); - - if ( nPos == nIndex ) - { - // Result obtained. - bFound = sal_True; - break; - } - - nPos++; - } -*/ - // now query for all documents in the DMS - OSL_ENSURE(ContentProvider::getHandle(),"No Handle!"); - sal_Char* pQueryId = new sal_Char[ODM_QUERYID_MAX]; - sal_Char* lpszDMSList = new sal_Char[ODM_DMSID_MAX]; - - ODMSTATUS odm = NODMGetDMS(ODMA_ODMA_REGNAME, lpszDMSList); - lpszDMSList[strlen(lpszDMSList)+1] = '\0'; - - const char sQuery[] = "SELECT ODM_DOCID_LATEST, ODM_NAME"; - - DWORD dwFlags = ODM_SPECIFIC; - odm = NODMQueryExecute(ContentProvider::getHandle(), sQuery, dwFlags, lpszDMSList, pQueryId ); - if(odm != ODM_SUCCESS) { - delete[] pQueryId; - delete[] lpszDMSList; - return sal_False; - } - - sal_uInt16 nCount = 10; - sal_uInt16 nMaxCount = 10; - sal_Char* lpszDocId = new sal_Char[ODM_DOCID_MAX * nMaxCount]; - sal_Char* lpszDocName = new sal_Char[ODM_NAME_MAX * nMaxCount]; - - - ::rtl::OUString sContentType(RTL_CONSTASCII_USTRINGPARAM(ODMA_CONTENT_TYPE)); - sal_uInt32 nCurrentCount = 0; - do - { - if(nCount >= nMaxCount) - { - nCount = nMaxCount; - odm = NODMQueryGetResults(ContentProvider::getHandle(), pQueryId,lpszDocId, lpszDocName, ODM_NAME_MAX, (WORD*)&nCount); - nCurrentCount += nCount; - } - if(odm == ODM_SUCCESS && nIndex < nCurrentCount) - { - bFound = sal_True; - for(sal_uInt16 i = 0; i < nCount; ++i) - { - ::rtl::Reference<ContentProperties> rProps = new ContentProperties(); - rProps->m_sDocumentId = ::rtl::OString(&lpszDocId[ODM_DOCID_MAX*i]); - rProps->m_sContentType = sContentType; - m_pImpl->m_xContent->getContentProvider()->append(rProps); - m_pImpl->m_aResults.push_back( new ResultListEntry(rProps)); - } - } - } - while(nCount > nMaxCount); - - - // now close the query - odm = NODMQueryClose(ContentProvider::getHandle(), pQueryId); - - delete [] lpszDMSList; - delete [] pQueryId; - delete [] lpszDocId; - delete [] lpszDocName; - - if ( !bFound ) - m_pImpl->m_bCountFinal = sal_True; - - rtl::Reference< ucbhelper::ResultSet > xResultSet = getResultSet(); - if ( xResultSet.is() ) - { - // Callbacks follow! - aGuard.clear(); - - if ( nOldCount < m_pImpl->m_aResults.size() ) - xResultSet->rowCountChanged( - nOldCount, m_pImpl->m_aResults.size() ); - - if ( m_pImpl->m_bCountFinal ) - xResultSet->rowCountFinal(); - } - - return bFound; -} - -//========================================================================= -// virtual -sal_uInt32 DataSupplier::totalCount() -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( m_pImpl->m_bCountFinal ) - return m_pImpl->m_aResults.size(); - - sal_uInt32 nOldCount = m_pImpl->m_aResults.size(); - - // @@@ Obtain data and put it into result list... -/* - while ( m_pImpl->m_aFolder.next( m_pImpl->m_aIterator ) ) - m_pImpl->m_aResults.push_back( - new ResultListEntry( *m_pImpl->m_aIterator ) ); -*/ - m_pImpl->m_bCountFinal = sal_True; - - rtl::Reference< ucbhelper::ResultSet > xResultSet = getResultSet(); - if ( xResultSet.is() ) - { - // Callbacks follow! - aGuard.clear(); - - if ( nOldCount < m_pImpl->m_aResults.size() ) - xResultSet->rowCountChanged( - nOldCount, m_pImpl->m_aResults.size() ); - - xResultSet->rowCountFinal(); - } - - return m_pImpl->m_aResults.size(); -} - -//========================================================================= -// virtual -sal_uInt32 DataSupplier::currentCount() -{ - return m_pImpl->m_aResults.size(); -} - -//========================================================================= -// virtual -sal_Bool DataSupplier::isCountFinal() -{ - return m_pImpl->m_bCountFinal; -} - -//========================================================================= -// virtual -Reference< XRow > DataSupplier::queryPropertyValues( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - Reference< XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow; - if ( xRow.is() ) - { - // Already cached. - return xRow; - } - } - - if ( getResult( nIndex ) ) - { - Reference< XRow > xRow = Content::getPropertyValues( - comphelper::getComponentContext(m_pImpl->m_xSMgr), - getResultSet()->getProperties(), - m_pImpl->m_aResults[ nIndex ]->rData, - m_pImpl->m_xContent->getProvider(), - queryContentIdentifierString( nIndex ) ); - m_pImpl->m_aResults[ nIndex ]->xRow = xRow; - return xRow; - } - - return Reference< XRow >(); -} - -//========================================================================= -// virtual -void DataSupplier::releasePropertyValues( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - m_pImpl->m_aResults[ nIndex ]->xRow = Reference< XRow >(); -} - -//========================================================================= -// virtual -void DataSupplier::close() -{ -} - -//========================================================================= -// virtual -void DataSupplier::validate() - throw( ResultSetException ) -{ -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_datasupplier.hxx b/ucb/source/ucp/odma/odma_datasupplier.hxx deleted file mode 100644 index 2e0adb4bd270..000000000000 --- a/ucb/source/ucp/odma/odma_datasupplier.hxx +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef ODMA_DATASUPPLIER_HXX -#define ODMA_DATASUPPLIER_HXX - -#include <ucbhelper/resultset.hxx> - -namespace odma { - -struct DataSupplier_Impl; -class Content; - -class DataSupplier : public ucbhelper::ResultSetDataSupplier -{ - DataSupplier_Impl* m_pImpl; - -public: - DataSupplier( const com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rContent, - sal_Int32 nOpenMode ); - virtual ~DataSupplier(); - - virtual rtl::OUString queryContentIdentifierString( sal_uInt32 nIndex ); - virtual com::sun::star::uno::Reference< - com::sun::star::ucb::XContentIdentifier > - queryContentIdentifier( sal_uInt32 nIndex ); - virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent > - queryContent( sal_uInt32 nIndex ); - - virtual sal_Bool getResult( sal_uInt32 nIndex ); - - virtual sal_uInt32 totalCount(); - virtual sal_uInt32 currentCount(); - virtual sal_Bool isCountFinal(); - - virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRow > - queryPropertyValues( sal_uInt32 nIndex ); - virtual void releasePropertyValues( sal_uInt32 nIndex ); - - virtual void close(); - - virtual void validate() - throw( com::sun::star::ucb::ResultSetException ); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_inputstream.cxx b/ucb/source/ucp/odma/odma_inputstream.cxx deleted file mode 100644 index 839e5ccbb273..000000000000 --- a/ucb/source/ucp/odma/odma_inputstream.cxx +++ /dev/null @@ -1,281 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "com/sun/star/io/IOException.hpp" -#include <com/sun/star/ucb/OpenCommandArgument2.hpp> -#include <com/sun/star/ucb/OpenMode.hpp> -#include <ucbhelper/content.hxx> -#include <com/sun/star/io/XActiveDataStreamer.hpp> -#include <cppuhelper/implbase1.hxx> -#ifdef WNT -#include <windows.h> -#endif -#include "odma_inputstream.hxx" -#include "odma_contentprops.hxx" -#include "odma_provider.hxx" - -using namespace odma; -using namespace com::sun::star; - -class OActiveDataStreamer : public ::cppu::WeakImplHelper1< io::XActiveDataStreamer> -{ - uno::Reference< io::XStream > m_xStream; -public: - OActiveDataStreamer(){} - virtual void SAL_CALL setStream( const uno::Reference< io::XStream >& _rStream ) throw (uno::RuntimeException) - { - m_xStream = _rStream; - } - virtual uno::Reference< io::XStream > SAL_CALL getStream( ) throw (uno::RuntimeException) - { - return m_xStream; - } -}; -// ----------------------------------------------------------------------------- -OOdmaStream::OOdmaStream(::ucbhelper::Content* _pContent, - ContentProvider* _pProvider, - const ::rtl::Reference<ContentProperties>& _rProp) - :m_aProp(_rProp) - ,m_pContent(_pContent) - ,m_pProvider(_pProvider) - ,m_bInputStreamCalled(sal_False) - ,m_bOutputStreamCalled(sal_False) - ,m_bModified(sal_False) -{ -} -// ----------------------------------------------------------------------------- -OOdmaStream::~OOdmaStream() -{ - try - { - closeStream(); - delete m_pContent; - } - catch (io::IOException const &) - { - OSL_FAIL("unexpected situation"); - } - catch (uno::RuntimeException const &) - { - OSL_FAIL("unexpected situation"); - } -} -// ----------------------------------------------------------------------------- -uno::Reference< io::XInputStream > SAL_CALL OOdmaStream::getInputStream( ) throw( uno::RuntimeException) -{ - { - osl::MutexGuard aGuard( m_aMutex ); - m_bInputStreamCalled = sal_True; - } - return uno::Reference< io::XInputStream >( this ); -} -// ----------------------------------------------------------------------------- -uno::Reference< io::XOutputStream > SAL_CALL OOdmaStream::getOutputStream( ) throw( uno::RuntimeException ) -{ - { - osl::MutexGuard aGuard( m_aMutex ); - m_bOutputStreamCalled = sal_True; - } - return uno::Reference< io::XOutputStream >( this ); -} -// ----------------------------------------------------------------------------- -sal_Int32 SAL_CALL OOdmaStream::readBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead ) - throw( io::NotConnectedException, - io::BufferSizeExceededException, - io::IOException, - uno::RuntimeException) -{ - ensureInputStream(); - - return m_xInput->readBytes(aData,nBytesToRead); -} -// ----------------------------------------------------------------------------- -sal_Int32 SAL_CALL OOdmaStream::readSomeBytes( uno::Sequence< sal_Int8 >& aData,sal_Int32 nMaxBytesToRead ) - throw( io::NotConnectedException, - io::BufferSizeExceededException, - io::IOException, - uno::RuntimeException) -{ - return readBytes( aData,nMaxBytesToRead ); -} -// ----------------------------------------------------------------------------- -void SAL_CALL OOdmaStream::skipBytes( sal_Int32 nBytesToSkip ) - throw( io::NotConnectedException, - io::BufferSizeExceededException, - io::IOException, - uno::RuntimeException ) -{ - ensureInputStream(); - m_xInput->skipBytes(nBytesToSkip ); -} -// ----------------------------------------------------------------------------- -sal_Int32 SAL_CALL OOdmaStream::available() - throw( io::NotConnectedException, - io::IOException, - uno::RuntimeException) -{ - ensureInputStream(); - return m_xInput->available(); -} -// ----------------------------------------------------------------------------- -void SAL_CALL OOdmaStream::writeBytes( const uno::Sequence< sal_Int8 >& aData ) - throw( io::NotConnectedException, - io::BufferSizeExceededException, - io::IOException, - uno::RuntimeException) -{ - ensureOutputStream(); - m_xOutput->writeBytes(aData); - m_bModified = sal_True; -} -// ----------------------------------------------------------------------------- -void SAL_CALL OOdmaStream::closeStream() throw( io::NotConnectedException,io::IOException,uno::RuntimeException ) -{ - if( m_xInput.is() ) - { - m_xInput->closeInput(); - m_xInput = NULL; - m_xInputSeek = NULL; - } - if(m_xOutput.is()) - { - m_xOutput->closeOutput(); - m_xOutput = NULL; - m_xTruncate = NULL; - if(m_bModified) - m_pProvider->saveDocument(m_aProp->m_sDocumentId); - } -} -// ----------------------------------------------------------------------------- -void SAL_CALL OOdmaStream::closeInput() - throw( io::NotConnectedException, - io::IOException, - uno::RuntimeException ) -{ - osl::MutexGuard aGuard( m_aMutex ); - m_bInputStreamCalled = sal_False; - - if( ! m_bOutputStreamCalled ) - closeStream(); -} -// ----------------------------------------------------------------------------- -void SAL_CALL OOdmaStream::closeOutput() - throw( io::NotConnectedException, - io::IOException, - uno::RuntimeException ) -{ - osl::MutexGuard aGuard( m_aMutex ); - m_bOutputStreamCalled = sal_False; - - if( ! m_bInputStreamCalled ) - closeStream(); -} -// ----------------------------------------------------------------------------- -void SAL_CALL OOdmaStream::flush() - throw( io::NotConnectedException, - io::BufferSizeExceededException, - io::IOException, - uno::RuntimeException ) -{ - ensureOutputStream(); - m_xOutput->flush(); -} -// ----------------------------------------------------------------------------- -void OOdmaStream::ensureInputStream() throw( io::IOException ) -{ - try - { - if(!m_xInput.is()) - { - m_xInput = m_pContent->openStream(); - m_xInputSeek = uno::Reference< io::XSeekable>(m_xInput,uno::UNO_QUERY); - } - } - catch(const uno::Exception&) - { - } - if(!m_xInput.is()) - throw io::IOException(); -} -// ----------------------------------------------------------------------------- -void OOdmaStream::ensureOutputStream() throw( io::IOException ) -{ - try - { - if(!m_xOutput.is()) - { - ucb::OpenCommandArgument2 aCommand; - aCommand.Mode = ucb::OpenMode::DOCUMENT; - uno::Reference< io::XActiveDataStreamer > xActiveStreamer = new OActiveDataStreamer(); - aCommand.Sink = xActiveStreamer; - m_pContent->executeCommand(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("open")),uno::makeAny(aCommand)); - if(xActiveStreamer.is()) - { - uno::Reference< io::XStream> xStream = xActiveStreamer->getStream(); - if(xStream.is()) - m_xOutput = xStream->getOutputStream(); - } - } - } - catch(const uno::Exception&) - { - } - if(!m_xOutput.is()) - throw io::IOException(); - m_xTruncate = uno::Reference< io::XTruncate>(m_xOutput,uno::UNO_QUERY); -} -// ----------------------------------------------------------------------------- -// XTruncate -void SAL_CALL OOdmaStream::truncate( void ) - throw( io::IOException, - uno::RuntimeException ) -{ - if(m_xTruncate.is()) - m_xTruncate->truncate(); -} -// ----------------------------------------------------------------------------- -// XSeekable -void SAL_CALL OOdmaStream::seek(sal_Int64 location ) - throw( lang::IllegalArgumentException, - io::IOException, - uno::RuntimeException ) -{ - ensureInputStream(); - if(m_xInputSeek.is()) - m_xInputSeek->seek(location); -} -// ----------------------------------------------------------------------------- -sal_Int64 SAL_CALL OOdmaStream::getPosition() - throw( io::IOException, - uno::RuntimeException ) -{ - ensureInputStream(); - return m_xInputSeek.is() ? m_xInputSeek->getPosition() : sal_Int64(0); -} -// ----------------------------------------------------------------------------- -sal_Int64 SAL_CALL OOdmaStream::getLength() - throw( io::IOException, - uno::RuntimeException ) -{ - ensureInputStream(); - return m_xInputSeek.is() ? m_xInputSeek->getLength() : sal_Int64(0); -} -// ----------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_inputstream.hxx b/ucb/source/ucp/odma/odma_inputstream.hxx deleted file mode 100644 index 7250367062e3..000000000000 --- a/ucb/source/ucp/odma/odma_inputstream.hxx +++ /dev/null @@ -1,132 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef ODMA_INPUTSTREAM_HXX -#define ODMA_INPUTSTREAM_HXX - -#include <osl/mutex.hxx> -#include <com/sun/star/io/XInputStream.hpp> -#include <com/sun/star/io/XStream.hpp> -#include <com/sun/star/io/XOutputStream.hpp> -#include <com/sun/star/io/XTruncate.hpp> -#include <com/sun/star/io/XSeekable.hpp> -#include <cppuhelper/implbase5.hxx> - -#include "rtl/ref.hxx" - -namespace ucbhelper -{ - class Content; -} -namespace odma -{ - typedef ::cppu::WeakImplHelper5< ::com::sun::star::io::XInputStream, - ::com::sun::star::io::XStream, - ::com::sun::star::io::XTruncate, - ::com::sun::star::io::XSeekable, - ::com::sun::star::io::XOutputStream> OOdmaStreamBase; - - class ContentProvider; - class ContentProperties; - class OOdmaStream : public OOdmaStreamBase - { - ::osl::Mutex m_aMutex; - ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream> m_xOutput; - ::com::sun::star::uno::Reference< ::com::sun::star::io::XTruncate> m_xTruncate; - ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream> m_xInput; - ::com::sun::star::uno::Reference< ::com::sun::star::io::XSeekable> m_xInputSeek; - - ::rtl::Reference<ContentProperties> m_aProp; - ::ucbhelper::Content* m_pContent; - ContentProvider* m_pProvider; - sal_Bool m_bInputStreamCalled; - sal_Bool m_bOutputStreamCalled; - sal_Bool m_bModified; - - void ensureInputStream() throw( ::com::sun::star::io::IOException ); - void ensureOutputStream() throw( ::com::sun::star::io::IOException ); - void SAL_CALL closeStream() throw( ::com::sun::star::io::NotConnectedException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::RuntimeException ); - public: - OOdmaStream(::ucbhelper::Content* _pContent, - ContentProvider* _pProvider, - const ::rtl::Reference<ContentProperties>& _rProp); - virtual ~OOdmaStream(); - // com::sun::star::io::XInputStream - virtual sal_Int32 SAL_CALL readBytes( ::com::sun::star::uno::Sequence<sal_Int8>& aData, sal_Int32 nBytesToRead ) - throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, - ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); - - virtual sal_Int32 SAL_CALL readSomeBytes( ::com::sun::star::uno::Sequence<sal_Int8>& aData, sal_Int32 nMaxBytesToRead ) - throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, - ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip ) - throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, - ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); - - virtual sal_Int32 SAL_CALL available( ) - throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL closeInput( ) - throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); - - // com::sun::star::io::XStream - virtual com::sun::star::uno::Reference< com::sun::star::io::XInputStream > SAL_CALL getInputStream( ) throw( com::sun::star::uno::RuntimeException ); - virtual com::sun::star::uno::Reference< com::sun::star::io::XOutputStream > SAL_CALL getOutputStream( ) throw( com::sun::star::uno::RuntimeException ); - - // com::sun::star::io::XOutputStream - void SAL_CALL writeBytes( const com::sun::star::uno::Sequence< sal_Int8 >& aData ) - throw( com::sun::star::io::NotConnectedException, - com::sun::star::io::BufferSizeExceededException, - com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException); - - void SAL_CALL flush() - throw( com::sun::star::io::NotConnectedException, - com::sun::star::io::BufferSizeExceededException, - com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException); - void SAL_CALL closeOutput() - throw( com::sun::star::io::NotConnectedException, - com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException ); - // XTruncate - virtual void SAL_CALL truncate( void ) - throw( com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException ); - // XSeekable - void SAL_CALL seek(sal_Int64 location ) - throw( com::sun::star::lang::IllegalArgumentException, - com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException ); - - sal_Int64 SAL_CALL getPosition() - throw( com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException ); - - sal_Int64 SAL_CALL getLength() - throw( com::sun::star::io::IOException, - com::sun::star::uno::RuntimeException ); - }; -} -#endif // ODMA_INPUTSTREAM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_lib.cxx b/ucb/source/ucp/odma/odma_lib.cxx deleted file mode 100644 index 157fad76196b..000000000000 --- a/ucb/source/ucp/odma/odma_lib.cxx +++ /dev/null @@ -1,142 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifdef WNT -#include <windows.h> -#endif -#include <osl/module.h> -#include <rtl/ustring.hxx> -#include "odma_lib.hxx" - - -namespace odma -{ - - TODMRegisterApp pODMRegisterApp; - TODMUnRegisterApp pODMUnRegisterApp; - TODMSelectDoc pODMSelectDoc; - TODMOpenDoc pODMOpenDoc; - TODMSaveDoc pODMSaveDoc; - TODMCloseDoc pODMCloseDoc; - TODMNewDoc pODMNewDoc; - TODMSaveAs pODMSaveAs; - TODMActivate pODMActivate; - TODMGetDocInfo pODMGetDocInfo; - TODMSetDocInfo pODMSetDocInfo; - TODMGetDMSInfo pODMGetDMSInfo; - TODMGetDMSCount pODMGetDMSCount; - TODMGetDMSList pODMGetDMSList; - TODMGetDMS pODMGetDMS; - TODMSetDMS pODMSetDMS; - TODMQueryExecute pODMQueryExecute; - TODMQueryGetResults pODMQueryGetResults; - TODMQueryClose pODMQueryClose; - TODMCloseDocEx pODMCloseDocEx; - TODMSaveAsEx pODMSaveAsEx; - TODMSaveDocEx pODMSaveDocEx; - TODMSelectDocEx pODMSelectDocEx; - TODMQueryCapability pODMQueryCapability; - TODMSetDocEvent pODMSetDocEvent; - TODMGetAlternateContent pODMGetAlternateContent; - TODMSetAlternateContent pODMSetAlternateContent; - TODMGetDocRelation pODMGetDocRelation; - TODMSetDocRelation pODMSetDocRelation; - - sal_Bool LoadFunctions(oslModule _pODMA); - - sal_Bool DMSsAvailable() - { - static sal_Bool bLoaded = sal_False; - static sal_Bool bBeenHere = sal_False; - oslModule pODMA = NULL; - - if (bBeenHere) - return bLoaded; - - bBeenHere = sal_True; - - ::rtl::OUString sPath; - #ifdef WNT - OSL_ASSERT( sizeof( wchar_t ) == sizeof( sal_Unicode ) ); - - wchar_t system32[MAX_PATH]; - UINT n = GetSystemDirectoryW( system32, MAX_PATH ); - - if (n == 0) - return sal_False; - - sPath = ::rtl::OUString( reinterpret_cast< const sal_Unicode* >( system32 ), n ) + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\\ODMA32.DLL")); - - #endif - #ifdef UNX - sPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("libodma.so")); - #endif - - pODMA = osl_loadModule( sPath.pData,SAL_LOADMODULE_NOW ); - if( !pODMA) - return sal_False; - - if (!LoadFunctions(pODMA)) - return sal_False; - - bLoaded = (NODMGetDMSCount() > 0); - - if (getenv ("NO_ODMA")) - bLoaded = sal_False; - - return bLoaded; - } - // ------------------------------------------------------------------------- - - sal_Bool LoadFunctions(oslModule pODMA) - { - if ( ( pODMRegisterApp = (TODMRegisterApp)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMRegisterApp")).pData)) == NULL ) return sal_False; - if ( ( pODMUnRegisterApp = (TODMUnRegisterApp)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMUnRegisterApp")).pData)) == NULL ) return sal_False; - if ( ( pODMSelectDoc = (TODMSelectDoc)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSelectDoc")).pData)) == NULL ) return sal_False; - if ( ( pODMOpenDoc = (TODMOpenDoc)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMOpenDoc")).pData)) == NULL ) return sal_False; - if ( ( pODMSaveDoc = (TODMSaveDoc)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSaveDoc")).pData)) == NULL ) return sal_False; - if ( ( pODMCloseDoc = (TODMCloseDoc)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMCloseDoc")).pData)) == NULL ) return sal_False; - if ( ( pODMNewDoc = (TODMNewDoc)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMNewDoc")).pData)) == NULL ) return sal_False; - if ( ( pODMSaveAs = (TODMSaveAs)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSaveAs")).pData)) == NULL ) return sal_False; - if ( ( pODMActivate = (TODMActivate)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMActivate")).pData)) == NULL ) return sal_False; - if ( ( pODMGetDocInfo = (TODMGetDocInfo)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetDocInfo")).pData)) == NULL ) return sal_False; - if ( ( pODMSetDocInfo = (TODMSetDocInfo)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSetDocInfo")).pData)) == NULL ) return sal_False; - if ( ( pODMGetDMSInfo = (TODMGetDMSInfo)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetDMSInfo")).pData)) == NULL ) return sal_False; - if ( ( pODMGetDMSCount = (TODMGetDMSCount)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetDMSCount")).pData)) == NULL ) return sal_False; - if ( ( pODMGetDMSList = (TODMGetDMSList)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetDMSList")).pData)) == NULL ) return sal_False; - if ( ( pODMGetDMS = (TODMGetDMS)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetDMS")).pData)) == NULL ) return sal_False; - if ( ( pODMSetDMS = (TODMSetDMS)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSetDMS")).pData)) == NULL ) return sal_False; - if ( ( pODMQueryExecute = (TODMQueryExecute)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMQueryExecute")).pData)) == NULL ) return sal_False; - if ( ( pODMQueryGetResults = (TODMQueryGetResults)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMQueryGetResults")).pData)) == NULL ) return sal_False; - if ( ( pODMQueryClose = (TODMQueryClose)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMQueryClose")).pData)) == NULL ) return sal_False; - if ( ( pODMCloseDocEx = (TODMCloseDocEx)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMCloseDocEx")).pData)) == NULL ) return sal_False; - if ( ( pODMSaveAsEx = (TODMSaveAsEx)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSaveAsEx")).pData)) == NULL ) return sal_False; - if ( ( pODMSaveDocEx = (TODMSaveDocEx)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSaveDocEx")).pData)) == NULL ) return sal_False; - if ( ( pODMSelectDocEx = (TODMSelectDocEx)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSelectDocEx")).pData)) == NULL ) return sal_False; - if ( ( pODMQueryCapability = (TODMQueryCapability)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMQueryCapability")).pData)) == NULL ) return sal_False; - if ( ( pODMSetDocEvent = (TODMSetDocEvent)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSetDocEvent")).pData)) == NULL ) return sal_False; - if ( ( pODMGetAlternateContent = (TODMGetAlternateContent)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetAlternateContent")).pData)) == NULL ) return sal_False; - if ( ( pODMSetAlternateContent = (TODMSetAlternateContent)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSetAlternateContent")).pData)) == NULL ) return sal_False; - if ( ( pODMGetDocRelation = (TODMGetDocRelation)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMGetDocRelation")).pData)) == NULL ) return sal_False; - if ( ( pODMSetDocRelation = (TODMSetDocRelation)osl_getSymbol(pODMA,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMSetDocRelation")).pData)) == NULL ) return sal_False; - return sal_True; - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_lib.hxx b/ucb/source/ucp/odma/odma_lib.hxx deleted file mode 100644 index e40f0c2d012e..000000000000 --- a/ucb/source/ucp/odma/odma_lib.hxx +++ /dev/null @@ -1,254 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef ODMA_LIB_HXX -#define ODMA_LIB_HXX - -#include <odma.h> - -namespace odma -{ - typedef ODMSTATUS (WINAPI *TODMRegisterApp) ( ODMHANDLE FAR *pOdmHandle, - WORD version, - LPSTR lpszAppId, - DWORD dwEnvData, - LPVOID pReserved); - - typedef void (WINAPI *TODMUnRegisterApp)(ODMHANDLE odmHandle); - - - typedef ODMSTATUS (WINAPI *TODMSelectDoc)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPDWORD pdwFlags); - - - typedef ODMSTATUS (WINAPI *TODMOpenDoc)( ODMHANDLE odmHandle, - DWORD flags, - LPSTR lpszDocId, - LPSTR lpszDocLocation); - - typedef ODMSTATUS (WINAPI *TODMSaveDoc)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPSTR lpszNewDocId); - - typedef ODMSTATUS (WINAPI *TODMCloseDoc)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - DWORD activeTime, - DWORD pagesPrinted, - LPVOID sessionData, - WORD dataLen); - - typedef ODMSTATUS (WINAPI *TODMNewDoc)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - DWORD dwFlags, - LPSTR lpszFormat, - LPSTR lpszDocLocation); - - typedef ODMSTATUS (WINAPI *TODMSaveAs)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPSTR lpszNewDocId, - LPSTR lpszFormat, - ODMSAVEASCALLBACK pcbCallBack, - LPVOID pInstanceData); - - typedef ODMSTATUS (WINAPI *TODMActivate)( ODMHANDLE odmHandle, - WORD action, - LPSTR lpszDocId); - - typedef ODMSTATUS (WINAPI *TODMGetDocInfo)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - WORD item, - LPSTR lpszData, - WORD dataLen); - - typedef ODMSTATUS (WINAPI *TODMSetDocInfo)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - WORD item, - LPSTR lpszData); - - typedef ODMSTATUS (WINAPI *TODMGetDMSInfo)( ODMHANDLE odmHandle, - LPSTR lpszDmsId, - LPWORD pwVerNo, - LPDWORD pdwExtensions); - - /* Query Enhancements */ - typedef WORD (WINAPI *TODMGetDMSCount)(); - - typedef WORD (WINAPI *TODMGetDMSList)( LPSTR buffer, - WORD buffer_size ); - - typedef ODMSTATUS (WINAPI *TODMGetDMS)( LPCSTR lpszAppId, - LPSTR lpszDMSId ); - - typedef ODMSTATUS (WINAPI *TODMSetDMS)( LPCSTR lpszAppId, - LPCSTR lpszDMSId ); - - typedef ODMSTATUS (WINAPI *TODMQueryExecute)( ODMHANDLE odmHandle, - LPCSTR lpszQuery, - DWORD flags, - LPCSTR lpszDMSList, - LPSTR queryId ); - - typedef ODMSTATUS (WINAPI *TODMQueryGetResults)(ODMHANDLE odmHandle, - LPCSTR queryId, - LPSTR lpszDocId, - LPSTR lpszDocName, - WORD docNameLen, - WORD *docCount ); - - typedef ODMSTATUS (WINAPI *TODMQueryClose)( ODMHANDLE odmHandle, - LPCSTR queryId ); - - /* ODMA 2.0 Enhancements */ - typedef ODMSTATUS (WINAPI *TODMCloseDocEx)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPDWORD pdwFlags, - DWORD activeTime, - DWORD pagesPrinted, - LPVOID sessionData, - WORD dataLen); - - typedef ODMSTATUS (WINAPI *TODMSaveAsEx)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPSTR lpszNewDocId, - LPSTR lpszFormat, - ODMSAVEASCALLBACK pcbCallBack, - LPVOID pInstanceData, - LPDWORD pdwFlags); - - typedef ODMSTATUS (WINAPI *TODMSaveDocEx)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPSTR lpszNewDocId, - LPDWORD pdwFlags); - - typedef ODMSTATUS (WINAPI *TODMSelectDocEx)( ODMHANDLE odmHandle, - LPSTR lpszDocIds, - LPWORD pwDocIdsLen, - LPWORD pwDocCount, - LPDWORD pdwFlags, - LPSTR lpszFormatFilter); - - typedef ODMSTATUS (WINAPI *TODMQueryCapability)(ODMHANDLE odmHandle, - LPCSTR lpszDmsId, - DWORD function, - DWORD item, - DWORD flags); - - typedef ODMSTATUS (WINAPI *TODMSetDocEvent)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - DWORD flags, - DWORD event, - LPVOID lpData, - DWORD dwDataLen, - LPSTR lpszComment); - - typedef ODMSTATUS (WINAPI *TODMGetAlternateContent)(ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPDWORD pdwFlags, - LPSTR lpszFormat, - LPSTR lpszDocLocation); - - typedef ODMSTATUS (WINAPI *TODMSetAlternateContent)(ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPDWORD pdwFlags, - LPSTR lpszFormat, - LPSTR lpszDocLocation); - - typedef ODMSTATUS (WINAPI *TODMGetDocRelation)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPDWORD pdwFlags, - LPSTR lpszLinkedId, - LPSTR lpszFormat, - LPSTR lpszPreviousId); - - typedef ODMSTATUS (WINAPI *TODMSetDocRelation)( ODMHANDLE odmHandle, - LPSTR lpszDocId, - LPDWORD pdwFlags, - LPSTR lpszLinkedId, - LPSTR lpszFormat, - LPSTR lpszPreviousId); - - // now we define some macros - - #define NODMRegisterApp(a,b,c,d,e) (*(::odma::pODMRegisterApp))(a,b,c,d,e) - #define NODMUnRegisterApp(a) (*(::odma::pODMUnRegisterApp))(a) - #define NODMSelectDoc(a,b,c) (*(::odma::pODMSelectDoc))(a,b,c) - #define NODMOpenDoc(a,b,c,d) (*(::odma::pODMOpenDoc))(a,b,c,d) - #define NODMSaveDoc(a,b,c) (*(::odma::pODMSaveDoc))(a,b,c) - #define NODMCloseDoc(a,b,c,d,e,f) (*(::odma::pODMCloseDoc))(a,b,c,d,e,f) - #define NODMNewDoc(a,b,c,d,e) (*(::odma::pODMNewDoc))(a,b,c,d,e) - #define NODMSaveAs(a,b,c,d,e,f) (*(::odma::pODMSaveAs))(a,b,c,d,e,f) - #define NODMActivate(a,b,c) (*(::odma::pODMActivate))(a,b,c) - #define NODMGetDocInfo(a,b,c,d,e) (*(::odma::pODMGetDocInfo))(a,b,c,d,e) - #define NODMSetDocInfo(a,b,c,d) (*(::odma::pODMSetDocInfo))(a,b,c,d) - #define NODMGetDMSInfo(a,b,c,d) (*(::odma::pODMGetDMSInfo))(a,b,c,d) - #define NODMGetDMSCount() (*(::odma::pODMGetDMSCount))() - #define NODMGetDMSList(a,b) (*(::odma::pODMGetDMSList))(a,b) - #define NODMGetDMS(a,b) (*(::odma::pODMGetDMS))(a,b) - #define NODMSetDMS(a,b) (*(::odma::pODMSetDMS))(a,b) - #define NODMQueryExecute(a,b,c,d,e) (*(::odma::pODMQueryExecute))(a,b,c,d,e) - #define NODMQueryGetResults(a,b,c,d,e,f) (*(::odma::pODMQueryGetResults))(a,b,c,d,e,f) - #define NODMQueryClose(a,b) (*(::odma::pODMQueryClose))(a,b) - #define NODMCloseDocEx(a,b,c,d,e,f,g) (*(::odma::pODMCloseDocEx))(a,b,c,d,e,f,g) - #define NODMSaveAsEx(a,b,c,d,e,f,g) (*(::odma::pODMSaveAsEx))(a,b,c,d,e,f,g) - #define NODMSaveDocEx(a,b,c,d) (*(::odma::pODMSaveDocEx))(a,b,c,d) - #define NODMSelectDocEx(a,b,c,d,e,f) (*(::odma::pODMSelectDocEx))(a,b,c,d,e,f) - #define NODMQueryCapability(a,b,c,d,e) (*(::odma::pODMQueryCapability))(a,b,c,d,e) - #define NODMSetDocEvent(a,b,c,d,e,f,g) (*(::odma::pODMSetDocEvent))(a,b,c,d,e,f,g) - #define NODMGetAlternateContent(a,b,c,d,e) (*(::odma::pODMGetAlternateContent))(a,b,c,d,e) - #define NODMSetAlternateContent(a,b,c,d,e) (*(::odma::pODMSetAlternateContent))(a,b,c,d,e) - #define NODMGetDocRelation(a,b,c,d,e,f) (*(::odma::pODMGetDocRelation))(a,b,c,d,e,f) - #define NODMSetDocRelation(a,b,c,d,e,f) (*(::odma::pODMSetDocRelation))(a,b,c,d,e,f) - - sal_Bool DMSsAvailable(); - - extern TODMRegisterApp pODMRegisterApp; - extern TODMUnRegisterApp pODMUnRegisterApp; - extern TODMSelectDoc pODMSelectDoc; - extern TODMOpenDoc pODMOpenDoc; - extern TODMSaveDoc pODMSaveDoc; - extern TODMCloseDoc pODMCloseDoc; - extern TODMNewDoc pODMNewDoc; - extern TODMSaveAs pODMSaveAs; - extern TODMActivate pODMActivate; - extern TODMGetDocInfo pODMGetDocInfo; - extern TODMSetDocInfo pODMSetDocInfo; - extern TODMGetDMSInfo pODMGetDMSInfo; - extern TODMGetDMSCount pODMGetDMSCount; - extern TODMGetDMSList pODMGetDMSList; - extern TODMGetDMS pODMGetDMS; - extern TODMSetDMS pODMSetDMS; - extern TODMQueryExecute pODMQueryExecute; - extern TODMQueryGetResults pODMQueryGetResults; - extern TODMQueryClose pODMQueryClose; - extern TODMCloseDocEx pODMCloseDocEx; - extern TODMSaveAsEx pODMSaveAsEx; - extern TODMSaveDocEx pODMSaveDocEx; - extern TODMSelectDocEx pODMSelectDocEx; - extern TODMQueryCapability pODMQueryCapability; - extern TODMSetDocEvent pODMSetDocEvent; - extern TODMGetAlternateContent pODMGetAlternateContent; - extern TODMSetAlternateContent pODMSetAlternateContent; - extern TODMGetDocRelation pODMGetDocRelation; - extern TODMSetDocRelation pODMSetDocRelation; - -} - -#endif // ODMA_LIB_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_main.cxx b/ucb/source/ucp/odma/odma_main.cxx deleted file mode 100644 index 8d47eb90c03b..000000000000 --- a/ucb/source/ucp/odma/odma_main.cxx +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#ifdef WNT -#include <windows.h> -#endif -#include <osl/process.h> -#include "odma_provider.hxx" - -#ifdef WNT -#define SOFFICE "soffice.exe" -#else -#define SOFFICE "soffice" -#endif - -/** our main program to convert ODMAIDs to ODMA URLs -*/ - -#if (defined UNX) -void main( int argc, char * argv[] ) -#else -#if (defined GCC) -int _cdecl main( int argc, char * argv[] ) -#else -void _cdecl main( int argc, char * argv[] ) -#endif -#endif -{ - static ::rtl::OUString sProcess(RTL_CONSTASCII_USTRINGPARAM(SOFFICE)); - if(argc > 1) - { - ::rtl::OUString* pArguments = new ::rtl::OUString[argc-1]; - for(int i = 0; i < argc-1; ++i) - { - pArguments[i] = ::rtl::OUString::createFromAscii(argv[i+1]); - if( pArguments[i].matchIgnoreAsciiCaseAsciiL( - RTL_CONSTASCII_STRINGPARAM(ODMA_URL_ODMAID))) - { - ::rtl::OUString sArgument - = ::rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM( - ODMA_URL_SCHEME ODMA_URL_SHORT "/")); - sArgument += pArguments[i]; - pArguments[i] = sArgument; - } - } - - rtl_uString ** ustrArgumentList = new rtl_uString * [argc-1]; - for (int i = 0; i < argc-1; i++) - ustrArgumentList[i] = pArguments[i].pData; - - oslProcess aProcess; - - if ( osl_Process_E_None == osl_executeProcess( - sProcess.pData, - ustrArgumentList, - argc-1, - osl_Process_DETACHED, - NULL, - NULL, - NULL, - 0, - &aProcess ) - ) - osl_freeProcessHandle( aProcess ); - - delete [] ustrArgumentList; - delete [] pArguments; - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_provider.cxx b/ucb/source/ucp/odma/odma_provider.cxx deleted file mode 100644 index 61aaf76f2914..000000000000 --- a/ucb/source/ucp/odma/odma_provider.cxx +++ /dev/null @@ -1,593 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#ifdef WNT -#include <windows.h> -#endif -#include <ucbhelper/contentidentifier.hxx> -#include "odma_provider.hxx" -#include "odma_content.hxx" -#include "odma_contentprops.hxx" -#include <com/sun/star/util/Date.hpp> -#include <com/sun/star/util/Time.hpp> -#include <rtl/uri.hxx> -#include <algorithm> -#include <osl/file.hxx> - -#include <o3tl/compat_functional.hxx> - -using namespace com::sun::star; -using namespace odma; - -//========================================================================= -//========================================================================= -// -// ContentProvider Implementation. -// -//========================================================================= -//========================================================================= -ODMHANDLE ContentProvider::m_aOdmHandle = NULL; - -ContentProvider::ContentProvider( - const uno::Reference< uno::XComponentContext >& rContext ) -: ::ucbhelper::ContentProviderImplHelper( rContext ) -{ - -} - -//========================================================================= -// virtual -ContentProvider::~ContentProvider() -{ - ContentsMap::iterator aIter = m_aContents.begin(); - for (;aIter != m_aContents.end() ;++aIter ) - { - if(aIter->second->m_bIsOpen) - closeDocument(aIter->first); - } - if(m_aOdmHandle) - { - NODMUnRegisterApp(m_aOdmHandle); - m_aOdmHandle = NULL; - } -} -// ----------------------------------------------------------------------------- -inline bool is_current_process_window(HWND hwnd) -{ - DWORD pid; - GetWindowThreadProcessId(hwnd, &pid); - return (pid == GetCurrentProcessId()); -} - -HWND choose_parent_window() -{ - HWND hwnd_parent = GetForegroundWindow(); - if (!is_current_process_window(hwnd_parent)) - hwnd_parent = GetDesktopWindow(); - return hwnd_parent; -} - -ODMHANDLE ContentProvider::getHandle() -{ - if(!m_aOdmHandle) - { - ODMSTATUS odm = NODMRegisterApp(&m_aOdmHandle,ODM_API_VERSION,const_cast<char*>(ODMA_ODMA_REGNAME),(DWORD) choose_parent_window( ),NULL); - switch(odm) - { - case ODM_SUCCESS: - break; - case ODM_E_NODMS: - break; - case ODM_E_CANTINIT: - break; - case ODM_E_VERSION: - break; - default: - break; - } - } - return m_aOdmHandle; -} -// ----------------------------------------------------------------------------- - -//========================================================================= -// -// XInterface methods. -// -//========================================================================= - -// @@@ Add own interfaces. -XINTERFACE_IMPL_3( ContentProvider, - lang::XTypeProvider, - lang::XServiceInfo, - ucb::XContentProvider ); - -//========================================================================= -// -// XTypeProvider methods. -// -//========================================================================= - -// @@@ Add own interfaces. -XTYPEPROVIDER_IMPL_3( ContentProvider, - lang::XTypeProvider, - lang::XServiceInfo, - ucb::XContentProvider ); - -//========================================================================= -// -// XServiceInfo methods. -// -//========================================================================= - -// @@@ Adjust implementation name. Keep the prefix "com.sun.star.comp."! -// @@@ Adjust service name. -XSERVICEINFO_IMPL_1_CTX( ContentProvider, - rtl::OUString( "com.sun.star.comp.odma.ContentProvider" ), - rtl::OUString(ODMA_CONTENT_PROVIDER_SERVICE_NAME ) ); - -//========================================================================= -// -// Service factory implementation. -// -//========================================================================= - -ONE_INSTANCE_SERVICE_FACTORY_IMPL( ContentProvider ); - -//========================================================================= -// -// XContentProvider methods. -// -//========================================================================= - -// virtual -uno::Reference< ucb::XContent > SAL_CALL ContentProvider::queryContent( - const uno::Reference< ucb::XContentIdentifier >& Identifier ) - throw( ucb::IllegalIdentifierException, uno::RuntimeException ) -{ - // Check URL scheme... - if(!getHandle()) - throw ucb::IllegalIdentifierException(); - - rtl::OUString aScheme( rtl::OUString( ODMA_URL_SCHEME ) ); - sal_Int32 nIndex = 0; - rtl::OUString sOdma = aScheme.getToken(3,'.',nIndex); - rtl::OUString sCanonicURL = Identifier->getContentIdentifier(); - // check if url starts with odma - if ( !(Identifier->getContentProviderScheme().equalsIgnoreAsciiCase( aScheme ) || - Identifier->getContentProviderScheme().equalsIgnoreAsciiCase( sOdma )) ) - throw ucb::IllegalIdentifierException(); - - if(!( sCanonicURL.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(ODMA_URL_SCHEME_SHORT ODMA_URL_SHORT)) || - sCanonicURL.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(ODMA_URL_SCHEME ODMA_URL_SHORT)))) - throw ucb::IllegalIdentifierException(); - - - // @@@ Id normalization may go here... - - uno::Reference< ucb::XContentIdentifier > xCanonicId = Identifier; - - osl::MutexGuard aGuard( m_aMutex ); - - // Check, if a content with given id already exists... - uno::Reference< ucb::XContent > xContent - = queryExistingContent( xCanonicId ).get(); - if ( xContent.is() ) - return xContent; - - // @@@ Decision, which content implementation to instanciate may be - // made here ( in case you have different content classes ). - - // Create a new content. - - sCanonicURL = convertURL(sCanonicURL); - - ::rtl::Reference<ContentProperties> aProp; - // first check if we got an ODMA ID from outside - if( sCanonicURL.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(ODMA_URL_ODMAID))) - {// we get an orignal ODMA id so we have to look for the name - ::rtl::OString sDocId = ::rtl::OUStringToOString(sCanonicURL,RTL_TEXTENCODING_MS_1252); - sal_Char* lpszDocName = new sal_Char[ODM_NAME_MAX]; - - ODMSTATUS odm = NODMGetDocInfo( getHandle(), - const_cast<sal_Char*>(sDocId.getStr()), - ODM_NAME, - lpszDocName, - ODM_NAME_MAX - ); - if(odm == ODM_SUCCESS) - { - aProp = new ContentProperties(); - aProp->m_sDocumentName = ::rtl::OStringToOUString(rtl::OString(lpszDocName),RTL_TEXTENCODING_ASCII_US); - aProp->m_sDocumentId = sDocId; - aProp->m_sContentType = ::rtl::OUString(ODMA_CONTENT_TYPE); - append(aProp); - } - delete [] lpszDocName; - } - else // we got an already fetched name here so look for it - { - // we have a valid document name - aProp = getContentPropertyWithTitle(sCanonicURL); - if(!aProp.is()) - aProp = getContentPropertyWithSavedAsName(sCanonicURL); - if(!aProp.is()) - { - if(sCanonicURL.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("/"))) - { // found only the scheme - aProp = new ContentProperties(); - aProp->m_sDocumentId = "/"; - aProp->m_sTitle = sCanonicURL; - aProp->m_bIsFolder = sal_True; - aProp->m_bIsDocument = !aProp->m_bIsFolder; - m_aContents.insert(ContentsMap::value_type(aProp->m_sDocumentId,aProp)); - } - else - aProp = queryContentProperty(sCanonicURL); - } - } - if(!aProp.is()) - throw ucb::IllegalIdentifierException(); - - xContent = new Content( m_xContext, this, xCanonicId ,aProp); - registerNewContent( xContent ); - - if ( !xContent->getIdentifier().is() ) - throw ucb::IllegalIdentifierException(); - - return xContent; -} -// ----------------------------------------------------------------------------- -void ContentProvider::closeDocument(const ::rtl::OString& _sDocumentId) -{ - ContentsMap::iterator aIter = m_aContents.find(_sDocumentId); - if(aIter != m_aContents.end()) - { - DWORD dwFlags = ODM_SILENT; - ODMSTATUS odm = NODMCloseDocEx( ContentProvider::getHandle(), - const_cast<sal_Char*>(_sDocumentId.getStr()), - &dwFlags, - 0xFFFFFFFF, - 0xFFFFFFFF, - NULL, - 0); - OSL_ENSURE(odm == ODM_SUCCESS,"Error while closing a document!"); - if(odm == ODM_SUCCESS) - aIter->second->m_bIsOpen = sal_False; - } -} -// ----------------------------------------------------------------------------- -void ContentProvider::saveDocument(const ::rtl::OString& _sDocumentId) -{ - ContentsMap::iterator aIter = m_aContents.find(_sDocumentId); - if(aIter != m_aContents.end()) - { - sal_Char* lpszDocId = new sal_Char[ODM_DOCID_MAX]; - DWORD dwFlags = ODM_SILENT; - ODMSTATUS odm = NODMSaveDocEx(getHandle(), - const_cast<sal_Char*>(_sDocumentId.getStr()), - lpszDocId, - &dwFlags); - OSL_ENSURE(odm == ODM_SUCCESS,"Could not save document!"); - if(odm != ODM_SUCCESS) - { - delete [] lpszDocId; - throw uno::Exception(); - } - aIter->second->m_sDocumentId = rtl::OString(lpszDocId); - delete [] lpszDocId; - } -} -// ----------------------------------------------------------------------------- -util::Date toDate(const ::rtl::OString& _sSQLString) -{ - sal_uInt16 nYear = 0, - nMonth = 0, - nDay = 0; - nYear = (sal_uInt16)_sSQLString.copy(0,4).toInt32(); - nMonth = (sal_uInt16)_sSQLString.copy(4,2).toInt32(); - nDay = (sal_uInt16)_sSQLString.copy(6,2).toInt32(); - - return util::Date(nDay,nMonth,nYear); -} -//----------------------------------------------------------------------------- -util::Time toTime(const ::rtl::OString& _sSQLString) -{ - sal_uInt16 nHour = 0, - nMinute = 0, - nSecond = 0; - nHour = (sal_uInt16)_sSQLString.copy(8,2).toInt32(); - nMinute = (sal_uInt16)_sSQLString.copy(10,2).toInt32(); - nSecond = (sal_uInt16)_sSQLString.copy(12,2).toInt32(); - - return util::Time(0,nHour,nMinute,nSecond); -} -//----------------------------------------------------------------------------- -util::DateTime toDateTime(const ::rtl::OString& _sSQLString) -{ - util::Date aDate = toDate(_sSQLString); - util::Time aTime = toTime(_sSQLString); - - return util::DateTime(0,aTime.Seconds,aTime.Minutes,aTime.Hours,aDate.Day,aDate.Month,aDate.Year); -} -// ----------------------------------------------------------------------------- -void ContentProvider::fillDocumentProperties(const ::rtl::Reference<ContentProperties>& _rProp) -{ - // read some properties from the DMS - sal_Char* lpszDocInfo = new sal_Char[ODM_DOCID_MAX]; - sal_Char* pDocId = const_cast<sal_Char*>(_rProp->m_sDocumentId.getStr()); - - // read the create date of the document - ODMSTATUS odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_CREATEDDATE, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_aDateCreated = toDateTime(::rtl::OString(lpszDocInfo)); - - // read the modified date of the document - odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_MODIFYDATE, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_aDateModified = toDateTime(::rtl::OString(lpszDocInfo)); - - // read the title of the document - odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_TITLETEXT, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_sTitle = ::rtl::OStringToOUString(rtl::OString(lpszDocInfo),RTL_TEXTENCODING_ASCII_US); - - // read the name of the document - odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_NAME, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_sDocumentName = ::rtl::OStringToOUString(rtl::OString(lpszDocInfo),RTL_TEXTENCODING_ASCII_US); - - // read the author of the document - odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_AUTHOR, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_sAuthor = ::rtl::OStringToOUString(rtl::OString(lpszDocInfo),RTL_TEXTENCODING_ASCII_US); - - // read the subject of the document - odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_SUBJECT, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_sSubject = ::rtl::OStringToOUString(rtl::OString(lpszDocInfo),RTL_TEXTENCODING_ASCII_US); - - // read the keywords of the document - odm = NODMGetDocInfo( getHandle(), - pDocId, - ODM_KEYWORDS, - lpszDocInfo, - ODM_DOCID_MAX); - if(odm == ODM_SUCCESS) - _rProp->m_sKeywords = ::rtl::OStringToOUString(rtl::OString(lpszDocInfo),RTL_TEXTENCODING_ASCII_US); - - delete [] lpszDocInfo; -} -// ----------------------------------------------------------------------------- -void ContentProvider::append(const ::rtl::Reference<ContentProperties>& _rProp) -{ - // now fill some more properties - fillDocumentProperties(_rProp); - // and append them - m_aContents.insert(ContentsMap::value_type(_rProp->m_sDocumentId,_rProp)); -} -// ----------------------------------------------------------------------------- -::rtl::Reference<ContentProperties> ContentProvider::queryContentProperty(const ::rtl::OUString& _sDocumentName) -{ - ::rtl::Reference<ContentProperties> aReturn; - sal_Char* lpszDMSList = new sal_Char[ODM_DMSID_MAX]; - - ODMSTATUS odm = NODMGetDMS(ODMA_ODMA_REGNAME, lpszDMSList); - if(odm == ODM_SUCCESS) - { - sal_Char* pQueryId = new sal_Char[ODM_QUERYID_MAX]; - lpszDMSList[strlen(lpszDMSList)+1] = '\0'; - - ::rtl::OString sTitleText(::rtl::OUStringToOString(_sDocumentName,RTL_TEXTENCODING_ASCII_US)); - ::rtl::OString sQuery("SELECT ODM_DOCID_LATEST, ODM_NAME WHERE ODM_TITLETEXT = '"); - sQuery += sTitleText; - sQuery += "'"; - - DWORD dwFlags = ODM_SPECIFIC; - odm = NODMQueryExecute(getHandle(), sQuery.getStr(), dwFlags, lpszDMSList, pQueryId ); - if(odm == ODM_SUCCESS) - { - sal_uInt16 nCount = 10; - sal_uInt16 nMaxCount = 10; - sal_Char* lpszDocId = new sal_Char[ODM_DOCID_MAX * nMaxCount]; - sal_Char* lpszDocName = new sal_Char[ODM_NAME_MAX * nMaxCount]; - sal_Char* lpszDocInfo = new sal_Char[ODM_DOCID_MAX]; - - ::rtl::OUString sContentType(ODMA_CONTENT_TYPE); - do - { - if(nCount >= nMaxCount) - { - // get the result - nCount = nMaxCount; - odm = NODMQueryGetResults(getHandle(), pQueryId,lpszDocId, lpszDocName, ODM_NAME_MAX, (WORD*)&nCount); - } - if(odm == ODM_SUCCESS) - for(sal_uInt16 i = 0; i < nCount; ++i) - { - odm = NODMGetDocInfo( getHandle(), - &lpszDocId[ODM_DOCID_MAX*i], - ODM_TITLETEXT, - lpszDocInfo, - ODM_DOCID_MAX); - if( odm == ODM_SUCCESS && sTitleText == ::rtl::OString(lpszDocInfo)) - { - aReturn = new ContentProperties(); - aReturn->m_sDocumentName = ::rtl::OStringToOUString(rtl::OString(&lpszDocName[ODM_NAME_MAX*i]),RTL_TEXTENCODING_ASCII_US); - aReturn->m_sDocumentId = ::rtl::OString(&lpszDocId[ODM_DOCID_MAX*i]); - aReturn->m_sContentType = sContentType; - append(aReturn); - nCount = 0; // break condition from outer loop - break; - } - } - } - while(nCount > nMaxCount); - - delete [] lpszDocInfo; - delete [] lpszDocId; - delete [] lpszDocName; - } - - // now close the query - odm = NODMQueryClose(ContentProvider::getHandle(), pQueryId); - delete [] pQueryId; - } - delete [] lpszDMSList; - - - return aReturn; -} -// ----------------------------------------------------------------------------- -::rtl::Reference<ContentProperties> ContentProvider::getContentProperty(const ::rtl::OUString& _sName, - const ContentPropertiesMemberFunctor& _aFunctor) const -{ - ::rtl::Reference<ContentProperties> aReturn; - ContentsMap::const_iterator aFind = ::std::find_if( m_aContents.begin(), - m_aContents.end(), - ::o3tl::compose1( - ::std::bind2nd(_aFunctor,_sName), - ::o3tl::select2nd<ContentsMap::value_type>() - ) - ); - if(aFind != m_aContents.end()) - aReturn = aFind->second; - return aReturn; -} -// ----------------------------------------------------------------------------- -::rtl::Reference<ContentProperties> ContentProvider::getContentPropertyWithSavedAsName(const ::rtl::OUString& _sSaveAsName) const -{ - ContentPropertiesMemberFunctor aFunc(::std::mem_fun(&ContentProperties::getSavedAsName)); - return getContentProperty(_sSaveAsName,aFunc); -} -// ----------------------------------------------------------------------------- -::rtl::Reference<ContentProperties> ContentProvider::getContentPropertyWithTitle(const ::rtl::OUString& _sTitle) const -{ - ContentPropertiesMemberFunctor aFunc(::std::mem_fun(&ContentProperties::getTitle)); - return getContentProperty(_sTitle,aFunc); -} -// ----------------------------------------------------------------------------- -::rtl::Reference<ContentProperties> ContentProvider::getContentPropertyWithDocumentId(const ::rtl::OUString& _sDocumentId) const -{ - ContentPropertiesMemberFunctor aFunc(::std::mem_fun(&ContentProperties::getDocumentId)); - return getContentProperty(_sDocumentId,aFunc); -} -// ----------------------------------------------------------------------------- -::rtl::OUString ContentProvider::openDoc(const ::rtl::Reference<ContentProperties>& _rProp) throw (uno::Exception) -{ - OSL_ENSURE(_rProp.is(),"No valid content properties!"); - if(!_rProp->m_bIsOpen) - { - sal_Char *pFileName = new sal_Char[ODM_FILENAME_MAX]; - - DWORD dwFlag = ODM_MODIFYMODE | ODM_SILENT; - ODMSTATUS odm = NODMOpenDoc(getHandle(), dwFlag, const_cast<sal_Char*>(_rProp->m_sDocumentId.getStr()), pFileName); - switch(odm) - { - case ODM_E_INUSE: - dwFlag = ODM_VIEWMODE; - if( NODMOpenDoc(getHandle(), dwFlag, const_cast<sal_Char*>(_rProp->m_sDocumentId.getStr()), pFileName) != ODM_SUCCESS) - break; - // else run through - case ODM_SUCCESS: - ::osl::FileBase::getFileURLFromSystemPath(::rtl::OStringToOUString(rtl::OString(pFileName),RTL_TEXTENCODING_ASCII_US) - ,_rProp->m_sFileURL); - _rProp->m_bIsOpen = sal_True; - break; - default: - delete [] pFileName; - throw uno::Exception(); // TODO give a more precise error message here - } - - delete [] pFileName; - } - return _rProp->m_sFileURL; -} -// ----------------------------------------------------------------------------- -::rtl::OUString ContentProvider::convertURL(const ::rtl::OUString& _sCanonicURL) -{ - sal_Int32 nPos = 0; - // check if url starts with odma - if(_sCanonicURL.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(ODMA_URL_SCHEME_SHORT ODMA_URL_SHORT))) - { // URL starts with odma:// so we have to remove this - nPos = ODMA_URL_SHORT_LGTH; - } - else if(_sCanonicURL.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(ODMA_URL_SCHEME ODMA_URL_SHORT))) - { // URL starts with vnd.sun.star.odma:/// so we have to remove this - nPos = ODMA_URL_LGTH; - } - - ::rtl::OUString sCanonicURL = _sCanonicURL; - // now check what formats we allow - if(nPos == _sCanonicURL.getLength()) // only ask for root entry - sCanonicURL = ::rtl::OUString("/"); - - if(nPos < sCanonicURL.getLength()) - { - sCanonicURL = sCanonicURL.copy(nPos); - sCanonicURL = rtl::Uri::decode(sCanonicURL,rtl_UriDecodeWithCharset,RTL_TEXTENCODING_UTF8); - } - if(sCanonicURL.getLength() > 1 && sCanonicURL.getStr()[0] == sal_Unicode('/')) - { - sCanonicURL = sCanonicURL.copy(1); - if(sCanonicURL.getLength() == 1 && sCanonicURL.getStr()[0] == sal_Unicode('.')) - sCanonicURL = ::rtl::OUString("/"); - } - return sCanonicURL; -} -// ----------------------------------------------------------------------------- -sal_Bool ContentProvider::deleteDocument(const ::rtl::Reference<ContentProperties>& _rProp) -{ - closeDocument(_rProp->m_sDocumentId); - ODMSTATUS odm = NODMActivate(ContentProvider::getHandle(), - ODM_DELETE, - const_cast< sal_Char*>(_rProp->m_sDocumentId.getStr())); - if(odm == ODM_SUCCESS) - m_aContents.erase(_rProp->m_sDocumentId); - - return odm == ODM_SUCCESS; -} -// ----------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_provider.hxx b/ucb/source/ucp/odma/odma_provider.hxx deleted file mode 100644 index 4aa5285d599d..000000000000 --- a/ucb/source/ucp/odma/odma_provider.hxx +++ /dev/null @@ -1,175 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef ODMA_PROVIDER_HXX -#define ODMA_PROVIDER_HXX - -#include <ucbhelper/providerhelper.hxx> -#include "odma_lib.hxx" - -#include "rtl/ref.hxx" - -#include <map> -#include "odma_contentprops.hxx" - -namespace odma { - -//========================================================================= - -// UNO service name for the provider. This name will be used by the UCB to -// create instances of the provider. -#define ODMA_CONTENT_PROVIDER_SERVICE_NAME \ - "com.sun.star.ucb.ODMAContentProvider" -// #define ODMA_CONTENT_PROVIDER_SERVICE_NAME_LENGTH 34 - -// URL scheme. This is the scheme the provider will be able to create -// contents for. The UCB will select the provider ( i.e. in order to create -// contents ) according to this scheme. -#define ODMA_URL_ODMAID "::ODMA" -#define ODMA_URL_SCHEME "vnd.sun.star.odma" -#define ODMA_URL_SCHEME_SHORT "odma" -#define ODMA_URL_SHORT ":" -#define ODMA_URL_SHORT_LGTH 5 -#define ODMA_URL_LGTH 18 -#define ODMA_URL_ODMAID_LGTH 6 - -// UCB Content Type. -#define ODMA_CONTENT_TYPE "application/" ODMA_URL_SCHEME "-content" -#define ODMA_ODMA_REGNAME "sodma" -#define ODM_NAME_MAX 64 // Max length of a name document including - // the terminating NULL character. - -//========================================================================= -class ContentProperties; -class ContentProvider : public ::ucbhelper::ContentProviderImplHelper -{ - typedef ::std::map< ::rtl::OString, ::rtl::Reference<ContentProperties> > ContentsMap; - ContentsMap m_aContents; // contains all ContentProperties - static ODMHANDLE m_aOdmHandle; // the one and only ODMA handle to our DMS - - /** fillDocumentProperties fills the given _rProp with ODMA properties - @param _rProp the ContentProperties - */ - void fillDocumentProperties(const ::rtl::Reference<ContentProperties>& _rProp); - - /** - */ - ::rtl::Reference<ContentProperties> getContentProperty(const ::rtl::OUString& _sName, - const ContentPropertiesMemberFunctor& _aFunctor) const; -public: - ContentProvider( const ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext >& rContext ); - virtual ~ContentProvider(); - - // XInterface - XINTERFACE_DECL() - - // XTypeProvider - XTYPEPROVIDER_DECL() - - // XServiceInfo - XSERVICEINFO_DECL() - - // XContentProvider - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XContent > SAL_CALL - queryContent( const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XContentIdentifier >& Identifier ) - throw( ::com::sun::star::ucb::IllegalIdentifierException, - ::com::sun::star::uno::RuntimeException ); - - ////////////////////////////////////////////////////////////////////// - // Additional interfaces - ////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////// - // Non-interface methods. - ////////////////////////////////////////////////////////////////////// - static ODMHANDLE getHandle(); - - /** append add an entry to the internal map - @param _rProp the content properties - */ - void append(const ::rtl::Reference<ContentProperties>& _rProp); - - /** closeDocument closes the document - @param _sDocumentId the id of the document - */ - void closeDocument(const ::rtl::OString& _sDocumentId); - - /** saveDocument saves the document in DMS - @param _sDocumentId the id of the document - */ - void saveDocument(const ::rtl::OString& _sDocumentId); - - /** queryContentProperty query in the DMS for a content which document name is equal to _sDocumentName - @param _sDocumentName the document to query for - - @return the content properties for this content or an empty refernce - */ - ::rtl::Reference<ContentProperties> queryContentProperty(const ::rtl::OUString& _sDocumentName); - - /** getContentPropertyWithTitle returns the ContentProperties for the first content with that title - @param _sTitle the title of the document - - @return the content properties - */ - ::rtl::Reference<ContentProperties> getContentPropertyWithTitle(const ::rtl::OUString& _sTitle) const; - - /** getContentPropertyWithDocumentId returns the ContentProperties for the first content with that title - @param _sTitle the title of the document - - @return the content properties - */ - ::rtl::Reference<ContentProperties> getContentPropertyWithDocumentId(const ::rtl::OUString& _sDocumentId) const; - - /** getContentPropertyWithSavedAsName returns the ContentProperties for the first content with that SavedAsName - @param _sSaveAsName the SavedAsName of the document - - @return the content properties - */ - ::rtl::Reference<ContentProperties> getContentPropertyWithSavedAsName(const ::rtl::OUString& _sSaveAsName) const; - - /** openDoc returns the URL for the temporary file for the specific Content and opens it - @param _rProp used for check if already open, the member m_sFileURL will be set if is wan't opened yet - - @return the URL of the temporary file - */ - static ::rtl::OUString openDoc(const ::rtl::Reference<ContentProperties>& _rProp) throw (::com::sun::star::uno::Exception); - - /** convertURL converts a normal URL into an ODMA understandable name - @param _sCanonicURL the URL from ContentIndentifier - - @return the ODMA name - */ - static ::rtl::OUString convertURL(const ::rtl::OUString& _sCanonicURL); - - /** deleteDocument deletes the document inside the DMS and remove the content properties from inside list - @param _rProp the ContentProperties - - @return true when successful - */ - sal_Bool deleteDocument(const ::rtl::Reference<ContentProperties>& _rProp); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_resultset.cxx b/ucb/source/ucp/odma/odma_resultset.cxx deleted file mode 100644 index 27f2c2b0d876..000000000000 --- a/ucb/source/ucp/odma/odma_resultset.cxx +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#ifdef WNT -#include <windows.h> -#endif - -/************************************************************************** - TODO - ************************************************************************** - - - This implementation is not a dynamic result set!!! It only implements - the necessary interfaces, but never recognizes/notifies changes!!! - - *************************************************************************/ -#include "odma_datasupplier.hxx" -#include "odma_resultset.hxx" -#include "comphelper/processfactory.hxx" - -using namespace com::sun::star::lang; -using namespace com::sun::star::ucb; -using namespace com::sun::star::uno; - -using namespace odma; - -//========================================================================= -//========================================================================= -// -// DynamicResultSet Implementation. -// -//========================================================================= -//========================================================================= - -DynamicResultSet::DynamicResultSet( - const Reference< XComponentContext >& rxContext, - const rtl::Reference< Content >& rxContent, - const OpenCommandArgument2& rCommand, - const Reference< XCommandEnvironment >& rxEnv ) -: ResultSetImplHelper( rxContext, rCommand ), - m_xContent( rxContent ), - m_xEnv( rxEnv ) -{ -} - -//========================================================================= -// -// Non-interface methods. -// -//========================================================================= - -void DynamicResultSet::initStatic() -{ - m_xResultSet1 - = new ::ucbhelper::ResultSet( m_xContext, - m_aCommand.Properties, - new DataSupplier( Reference<XMultiServiceFactory>(m_xContext->getServiceManager(), UNO_QUERY_THROW), - m_xContent, - m_aCommand.Mode ), - m_xEnv ); -} - -//========================================================================= -void DynamicResultSet::initDynamic() -{ - m_xResultSet1 - = new ::ucbhelper::ResultSet( m_xContext, - m_aCommand.Properties, - new DataSupplier( Reference<XMultiServiceFactory>(m_xContext->getServiceManager(), UNO_QUERY_THROW), - m_xContent, - m_aCommand.Mode ), - m_xEnv ); - m_xResultSet2 = m_xResultSet1; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_resultset.hxx b/ucb/source/ucp/odma/odma_resultset.hxx deleted file mode 100644 index 9fcabf6aca3d..000000000000 --- a/ucb/source/ucp/odma/odma_resultset.hxx +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef ODMA_RESULTSET_HXX -#define ODMA_RESULTSET_HXX - -#include <ucbhelper/resultsethelper.hxx> - -#include "rtl/ref.hxx" -#include "odma_content.hxx" - -namespace odma { - -class DynamicResultSet : public ::ucbhelper::ResultSetImplHelper -{ - rtl::Reference< Content > m_xContent; - com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment > m_xEnv; - -private: - virtual void initStatic(); - virtual void initDynamic(); - -public: - DynamicResultSet( - const com::sun::star::uno::Reference< - com::sun::star::uno::XComponentContext >& rxContext, - const rtl::Reference< Content >& rxContent, - const com::sun::star::ucb::OpenCommandArgument2& rCommand, - const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment >& rxEnv ); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/odma_services.cxx b/ucb/source/ucp/odma/odma_services.cxx deleted file mode 100644 index e118e19d7b25..000000000000 --- a/ucb/source/ucp/odma/odma_services.cxx +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifdef WNT -#include <windows.h> -#endif -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XSingleServiceFactory.hpp> -#include <com/sun/star/registry/XRegistryKey.hpp> -#include "odma_contentprops.hxx" -#include "odma_provider.hxx" - -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::registry; - -//========================================================================= -extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL ucpodma1_component_getFactory( - const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ ) -{ - void * pRet = 0; - - Reference< XMultiServiceFactory > xSMgr( - reinterpret_cast< XMultiServiceFactory * >( pServiceManager ) ); - Reference< XSingleServiceFactory > xFactory; - - ////////////////////////////////////////////////////////////////////// - // Create factory, if implementation name matches. - ////////////////////////////////////////////////////////////////////// - - // @@@ Adjust namespace names. - if ( ::odma::ContentProvider::getImplementationName_Static(). - compareToAscii( pImplName ) == 0 ) - { - if(::odma::DMSsAvailable()) - xFactory = ::odma::ContentProvider::createServiceFactory( xSMgr ); - } - - ////////////////////////////////////////////////////////////////////// - - if ( xFactory.is() ) - { - xFactory->acquire(); - pRet = xFactory.get(); - } - - return pRet; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/odma/ucpodma1.component b/ucb/source/ucp/odma/ucpodma1.component deleted file mode 100644 index 754e8ae98983..000000000000 --- a/ucb/source/ucp/odma/ucpodma1.component +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . ---> -<component loader="com.sun.star.loader.SharedLibrary" prefix="ucpodma1" - xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="com.sun.star.comp.ucb.FileProvider"> - <service name="com.sun.star.ucb.ODMAContentProvider"/> - </implementation> -</component> |