diff options
Diffstat (limited to 'framework/inc/jobs/jobdata.hxx')
-rw-r--r-- | framework/inc/jobs/jobdata.hxx | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/framework/inc/jobs/jobdata.hxx b/framework/inc/jobs/jobdata.hxx deleted file mode 100644 index 63f0eee1ee..0000000000 --- a/framework/inc/jobs/jobdata.hxx +++ /dev/null @@ -1,298 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * 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 __FRAMEWORK_JOBS_JOBDATA_HXX_ -#define __FRAMEWORK_JOBS_JOBDATA_HXX_ - -//_______________________________________ -// my own includes - -#include <jobs/configaccess.hxx> -#include <jobs/jobresult.hxx> -#include <threadhelp/threadhelpbase.hxx> -#include <macros/debug.hxx> -#include <stdtypes.h> -#include <general.h> - -//_______________________________________ -// interface includes -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/beans/NamedValue.hpp> -#include <com/sun/star/frame/DispatchResultEvent.hpp> - -//_______________________________________ -// other includes -#include <tools/datetime.hxx> -#include <rtl/ustring.hxx> - -//_______________________________________ -// namespace - -namespace framework{ - -//_______________________________________ -// public const - -//_______________________________________ -// definitions - -/** - @short holds all neccessary informations about a job and - handle it's configuration (if any exist!) - @descr It can be used rom different use cases as a container - (or proxy) for all config data of a registered job. - But it doesn't implement any execute functionality! - */ -class JobData : private ThreadHelpBase -{ - //___________________________________ - // const - - public: - - /// specifies the root package and key to find registered jobs - static const sal_Char* JOBCFG_ROOT; - /// define the cfg key "Arguments" of a job relativ to JOBCFG_ROOT/<job alias> - static const sal_Char* JOBCFG_PROP_ARGUMENTS; - /// define the cfg key "Service" of a job relativ to JOBCFG_ROOT/<job alias> - static const sal_Char* JOBCFG_PROP_SERVICE; - /// define the cfg key "Context" of a job relativ to JOBCFG_ROOT/<job alias> - static const sal_Char* JOBCFG_PROP_CONTEXT; - - /// specifies the root package and key to find event registrations - static const sal_Char* EVENTCFG_ROOT; - /// define the cfg key "JobList" of an event relativ to EVENTCFG_ROOT/<event> - static const sal_Char* EVENTCFG_PATH_JOBLIST; - /// define the cfg key "AdminTime" of a job registration relativ to EVENTCFG_ROOT/<event>/EVENTCFG_PROP_JOBLIST/<job alias> - static const sal_Char* EVENTCFG_PROP_ADMINTIME; - /// define the cfg key "UserTime" of a job registration relativ to EVENTCFG_ROOT/<event>/EVENTCFG_PROP_JOBLIST/<job alias> - static const sal_Char* EVENTCFG_PROP_USERTIME; - - /// mark the starting point of static job data inside argument list of job execution - static const sal_Char* PROPSET_CONFIG; - /// mark the starting point of job specific data inside argument list of job execution - static const sal_Char* PROPSET_OWNCONFIG; - /// mark the starting point of environment data inside argument list of job execution - static const sal_Char* PROPSET_ENVIRONMENT; - /// mark the starting point of any other dynamic generated data inside argument list of job execution (e.g. from a dispatch() request) - static const sal_Char* PROPSET_DYNAMICDATA; - - static const sal_Char* PROP_ALIAS; - static const sal_Char* PROP_EVENTNAME; - static const sal_Char* PROP_ENVTYPE; - static const sal_Char* PROP_FRAME; - static const sal_Char* PROP_MODEL; - static const sal_Char* PROP_SERVICE; - static const sal_Char* PROP_CONTEXT; - - //___________________________________ - // structs - - public: - - /** These values can be used to differe between jobs with and jobs without - a configuration. Of course an "unknown state" should be available too, - to detect a missing initialization. - */ - enum EMode - { - /// indicates a missing initialization - E_UNKNOWN_MODE, - /// indicates a job with configuration (They alias represent the config key name.) - E_ALIAS, - /// indicates a job without configuration (The pure UNO implementation is used only.) - E_SERVICE, - /// indicates a job with configuration, which was triggered by an event - E_EVENT - }; - - /** These values represent the environment type, in which a job can run. - A job must known, from which binding it will be started. Because - it's initialization data depends from that! - */ - enum EEnvironment - { - /// indicates a missing initialization - E_UNKNOWN_ENVIRONMENT, - /// this job is used by the global JobExecutor service - E_EXECUTION, - /// this job is used by the global dispatch framework - E_DISPATCH, - /// this job is used by the global event broadcaster - E_DOCUMENTEVENT - }; - - /** Some jobs can be registered to "logical events", which are generated on demand if another document event - occures. E.g. "onDocumentOpened" in case "OnNew" or "OnLoad" was notified to the JobExecutor instance. - And normaly the original event is transported as parameter set to the executed job. But then such job - cant differ between e.g. "OnNew" and "onDocumentOpened". - That's why we must know, for which type of event the job was realy triggered .-) - - The information "sDocEvent" from this struct must be set on the member JobData::m_sEvent from outside - user of such Jobdata structure. - */ - struct TJob2DocEventBinding - { - ::rtl::OUString m_sJobName; - ::rtl::OUString m_sDocEvent; - - TJob2DocEventBinding(const ::rtl::OUString& sJobName , - const ::rtl::OUString& sDocEvent) - : m_sJobName (sJobName ) - , m_sDocEvent(sDocEvent) - {} - }; - - //___________________________________ - // member - - private: - - /** - reference to the uno service manager. - We need it for creating of own uno services ... e.g. for - opening the configuration. - */ - css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; - - /** - An instance of this class can be used in two different modes: - - as a configured job - - as a job without any configuration - First mode is triggered by an alias, which points to the - configuration entries. Second mode is specified by an uno service - or implementation name. Then we does the same things (use the same interfaces) - but don't handle any configuration data. - The effect: This mode can be detected by this member. - */ - EMode m_eMode; - - /** - Because jobs can be bind to different mechanism inside office, a job - should know inside which environment it runs. E.g. a job can be executed - by the global JobExecutor service (triggered by an event) or e.g. as part - of the global dispatch framework (triggered by an UI control e.g. a menu entry). - */ - EEnvironment m_eEnvironment; - - /** - the alias name of this job. - Is used as entry of configuration set for job registration, to find all - neccessary properties of it.. - */ - ::rtl::OUString m_sAlias; - - /** - the uno implementation name of this job. - It's readed from the configuration. Don't set it from outside! - */ - ::rtl::OUString m_sService; - - /** - the module context list of this job. - It's readed from the configuration. Don't set it from outside! - */ - ::rtl::OUString m_sContext; - - /** - a job can be registered for an event. - It can be an empty value! But it will be set from outside any times. - Because it's not clear which job this instance should represent if an event - (instaed of an alias) comes in. Because there can be multiple registrations - for this event. We use this information only, to merge it with the job specific - arguments. A job can be called so, with a) it's onw config data and b) some dynamic - environment data. - */ - ::rtl::OUString m_sEvent; - - /** - job specific configuration items ... unknown for us! - It's readed from the configuration. Don't set it from outside! - */ - css::uno::Sequence< css::beans::NamedValue > m_lArguments; - - /** - after a job was sucessfully executed (by any outside code using our - informations) it can return a result. This member make it part of this - container too. So it can be used for further things. - We use it also to update our internal state and the configuration - of the job. But note: only the last result will be saved here! - */ - JobResult m_aLastExecutionResult; - - //___________________________________ - // native interface - - public: - - JobData( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); - JobData( const JobData& rCopy ); - virtual ~JobData( ); - - void operator=( const JobData& rCopy ); - - EMode getMode () const; - EEnvironment getEnvironment () const; - ::rtl::OUString getEnvironmentDescriptor() const; - ::rtl::OUString getService () const; - ::rtl::OUString getEvent () const; - css::uno::Sequence< css::beans::NamedValue > getConfig () const; - css::uno::Sequence< css::beans::NamedValue > getJobConfig () const; - - sal_Bool hasConfig () const; - sal_Bool hasCorrectContext ( const ::rtl::OUString& rModuleIdent ) const; - - void setEnvironment ( EEnvironment eEnvironment ); - void setAlias ( const ::rtl::OUString& sAlias ); - void setService ( const ::rtl::OUString& sService ); - void setEvent ( const ::rtl::OUString& sEvent , - const ::rtl::OUString& sAlias ); - void setJobConfig ( const css::uno::Sequence< css::beans::NamedValue >& lArguments ); - void setResult ( const JobResult& aResult ); - void disableJob ( ); - - static css::uno::Sequence< ::rtl::OUString > getEnabledJobsForEvent( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , - const ::rtl::OUString& sEvent ); - - static void appendEnabledJobsForEvent( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , - const ::rtl::OUString& sEvent , - ::comphelper::SequenceAsVector< JobData::TJob2DocEventBinding >& lJobs ); - - //___________________________________ - // private helper - - private: - - void impl_reset(); -}; - -} // namespace framework - -#endif // __FRAMEWORK_JOBS_JOBDATA_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |