summaryrefslogtreecommitdiff
path: root/ucb/source/ucp/file/bc.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'ucb/source/ucp/file/bc.hxx')
-rw-r--r--ucb/source/ucp/file/bc.hxx353
1 files changed, 353 insertions, 0 deletions
diff --git a/ucb/source/ucp/file/bc.hxx b/ucb/source/ucp/file/bc.hxx
new file mode 100644
index 000000000000..2163758bfffc
--- /dev/null
+++ b/ucb/source/ucp/file/bc.hxx
@@ -0,0 +1,353 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _BC_HXX_
+#define _BC_HXX_
+
+#include "osl/mutex.hxx"
+#include "rtl/ustring.hxx"
+#include <cppuhelper/weak.hxx>
+#include <ucbhelper/macros.hxx>
+#include <cppuhelper/interfacecontainer.h>
+#include <com/sun/star/uno/XInterface.hpp>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/ucb/XCommandProcessor.hpp>
+#include <com/sun/star/beans/XPropertiesChangeNotifier.hpp>
+#include <com/sun/star/ucb/XContent.hpp>
+#include <com/sun/star/ucb/XContentProvider.hpp>
+#ifndef _COM_SUN_STAR_UCB_XRESULTSET_HPP_
+#include <com/sun/star/ucb/XDynamicResultSet.hpp>
+#endif
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/sdbc/XRow.hpp>
+#include <com/sun/star/beans/PropertyChangeEvent.hpp>
+#include <com/sun/star/beans/Property.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/ucb/XCommandInfo.hpp>
+#include <com/sun/star/ucb/InsertCommandArgument.hpp>
+#include <com/sun/star/beans/XPropertySetInfo.hpp>
+#include <com/sun/star/beans/XPropertyContainer.hpp>
+#include <com/sun/star/beans/XPropertySetInfoChangeNotifier.hpp>
+#include <com/sun/star/beans/XPropertySetInfoChangeListener.hpp>
+#include <com/sun/star/container/XChild.hpp>
+#include <com/sun/star/ucb/XContentCreator.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/ucb/OpenCommandArgument2.hpp>
+#include <com/sun/star/ucb/InteractiveBadTransferURLException.hpp>
+#ifndef _COM_SUN_STAR_UCB_SHELL_HXX_
+#include "shell.hxx"
+#endif
+
+
+namespace fileaccess {
+
+ class PropertyListeners;
+ class shell;
+ class FileProvider;
+
+ class BaseContent:
+ public cppu::OWeakObject,
+ public com::sun::star::lang::XComponent,
+ public com::sun::star::lang::XServiceInfo,
+ public com::sun::star::lang::XTypeProvider,
+ public com::sun::star::ucb::XCommandProcessor,
+ public com::sun::star::beans::XPropertiesChangeNotifier,
+ public com::sun::star::beans::XPropertyContainer,
+ public com::sun::star::beans::XPropertySetInfoChangeNotifier,
+ public com::sun::star::ucb::XContentCreator,
+ public com::sun::star::container::XChild,
+ public com::sun::star::ucb::XContent,
+ public fileaccess::Notifier // implementation class
+ {
+ private:
+
+ // A special creator for inserted contents; Creates an ugly object
+ BaseContent( shell* pMyShell,
+ const rtl::OUString& parentName,
+ sal_Bool bFolder );
+
+ public:
+ BaseContent(
+ shell* pMyShell,
+ const com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier >& xContentIdentifier,
+ const rtl::OUString& aUnqPath );
+
+ virtual ~BaseContent();
+
+ // XInterface
+ virtual com::sun::star::uno::Any SAL_CALL
+ queryInterface(
+ const com::sun::star::uno::Type& aType )
+ throw( com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ acquire(
+ void )
+ throw();
+
+ virtual void SAL_CALL
+ release(
+ void )
+ throw();
+
+
+ // XComponent
+ virtual void SAL_CALL
+ dispose(
+ void )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL
+ addEventListener(
+ const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL
+ removeEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener )
+ throw( com::sun::star::uno::RuntimeException );
+
+
+ // XTypeProvider
+
+ XTYPEPROVIDER_DECL()
+
+
+ // XServiceInfo
+ virtual rtl::OUString SAL_CALL
+ getImplementationName()
+ throw( com::sun::star::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL
+ supportsService( const rtl::OUString& ServiceName )
+ throw( com::sun::star::uno::RuntimeException);
+
+ virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw( com::sun::star::uno::RuntimeException );
+
+
+ // XCommandProcessor
+ virtual sal_Int32 SAL_CALL
+ createCommandIdentifier(
+ void )
+ throw( com::sun::star::uno::RuntimeException );
+
+ 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 );
+
+
+ // XContent
+ virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier > SAL_CALL
+ getIdentifier(
+ void )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual rtl::OUString SAL_CALL
+ getContentType(
+ void )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL
+ addContentEventListener(
+ const com::sun::star::uno::Reference< com::sun::star::ucb::XContentEventListener >& Listener )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL
+ removeContentEventListener(
+ const com::sun::star::uno::Reference< com::sun::star::ucb::XContentEventListener >& Listener )
+ throw( com::sun::star::uno::RuntimeException );
+
+ // XPropertiesChangeNotifier
+
+ virtual void SAL_CALL
+ addPropertiesChangeListener(
+ const com::sun::star::uno::Sequence< rtl::OUString >& PropertyNames,
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertiesChangeListener >& Listener )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL
+ removePropertiesChangeListener( const com::sun::star::uno::Sequence< rtl::OUString >& PropertyNames,
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertiesChangeListener >& Listener )
+ throw( com::sun::star::uno::RuntimeException );
+
+ // XPropertyContainer
+
+ virtual void SAL_CALL
+ addProperty(
+ const rtl::OUString& Name,
+ sal_Int16 Attributes,
+ const com::sun::star::uno::Any& DefaultValue )
+ throw( com::sun::star::beans::PropertyExistException,
+ com::sun::star::beans::IllegalTypeException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ removeProperty(
+ const rtl::OUString& Name )
+ throw( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::beans::NotRemoveableException,
+ com::sun::star::uno::RuntimeException );
+
+ // XPropertySetInfoChangeNotifier
+
+ virtual void SAL_CALL
+ addPropertySetInfoChangeListener(
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertySetInfoChangeListener >& Listener )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL
+ removePropertySetInfoChangeListener(
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertySetInfoChangeListener >& Listener )
+ throw( com::sun::star::uno::RuntimeException );
+
+
+ // XContentCreator
+
+ virtual com::sun::star::uno::Sequence< com::sun::star::ucb::ContentInfo > SAL_CALL
+ queryCreatableContentsInfo(
+ void )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent > SAL_CALL
+ createNewContent(
+ const com::sun::star::ucb::ContentInfo& Info )
+ throw( com::sun::star::uno::RuntimeException );
+
+
+ // XChild
+ virtual com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL
+ getParent(
+ void ) throw( com::sun::star::uno::RuntimeException );
+
+ // Not supported
+ virtual void SAL_CALL
+ setParent( const com::sun::star::uno::Reference< com::sun::star::uno::XInterface >& Parent )
+ throw( com::sun::star::lang::NoSupportException,
+ com::sun::star::uno::RuntimeException);
+
+
+ // Notifier
+
+ ContentEventNotifier* cDEL( void );
+ ContentEventNotifier* cEXC( const rtl::OUString aNewName );
+ ContentEventNotifier* cCEL( void );
+ PropertySetInfoChangeNotifier* cPSL( void );
+ PropertyChangeNotifier* cPCL( void );
+ rtl::OUString getKey( void );
+
+ private:
+ // Data members
+ shell* m_pMyShell;
+ com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier > m_xContentIdentifier;
+ rtl::OUString m_aUncPath;
+
+ enum state { NameForInsertionSet = 1,
+ JustInserted = 2,
+ Deleted = 4,
+ FullFeatured = 8,
+ Connected = 16 };
+ sal_Bool m_bFolder;
+ sal_uInt16 m_nState;
+
+ osl::Mutex m_aMutex;
+
+ osl::Mutex m_aEventListenerMutex;
+ cppu::OInterfaceContainerHelper* m_pDisposeEventListeners;
+ cppu::OInterfaceContainerHelper* m_pContentEventListeners;
+ cppu::OInterfaceContainerHelper* m_pPropertySetInfoChangeListeners;
+ PropertyListeners* m_pPropertyListener;
+
+
+ // Private Methods
+ com::sun::star::uno::Reference< com::sun::star::ucb::XCommandInfo > SAL_CALL
+ getCommandInfo()
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL
+ getPropertySetInfo(
+ sal_Int32 nMyCommandIdentifier )
+ throw( com::sun::star::uno::RuntimeException );
+
+ virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRow > SAL_CALL
+ getPropertyValues(
+ sal_Int32 nMyCommandIdentifier,
+ const com::sun::star::uno::Sequence< com::sun::star::beans::Property >& PropertySet )
+ throw( com::sun::star::uno::RuntimeException );
+
+ com::sun::star::uno::Sequence< com::sun::star::uno::Any > SAL_CALL
+ setPropertyValues(
+ sal_Int32 nMyCommandIdentifier,
+ const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Values )
+ throw( );
+
+ com::sun::star::uno::Reference< com::sun::star::ucb::XDynamicResultSet > SAL_CALL
+ open(
+ sal_Int32 nMyCommandIdentifier,
+ const com::sun::star::ucb::OpenCommandArgument2& aCommandArgument )
+ throw();
+
+ void SAL_CALL
+ deleteContent( sal_Int32 nMyCommandIdentifier )
+ throw();
+
+
+ void SAL_CALL
+ transfer( sal_Int32 nMyCommandIdentifier,
+ const com::sun::star::ucb::TransferInfo& aTransferInfo )
+ throw();
+
+ void SAL_CALL
+ insert( sal_Int32 nMyCommandIdentifier,
+ const com::sun::star::ucb::InsertCommandArgument& aInsertArgument )
+ throw();
+
+ void SAL_CALL endTask( sal_Int32 CommandId );
+
+ friend class ContentEventNotifier;
+ };
+
+} // end namespace fileaccess
+
+#endif
+