summaryrefslogtreecommitdiff
path: root/framework/inc/jobs/jobdata.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'framework/inc/jobs/jobdata.hxx')
-rw-r--r--framework/inc/jobs/jobdata.hxx298
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: */