diff options
author | Carsten Driesner <cd@openoffice.org> | 2010-11-04 15:43:13 +0100 |
---|---|---|
committer | Carsten Driesner <cd@openoffice.org> | 2010-11-04 15:43:13 +0100 |
commit | ecc7ab4b75d4fe46e4f6d51018506f7ceb745f44 (patch) | |
tree | 2df144b5ec4ba90434aba904fd00dea133694c87 /framework/inc/jobs | |
parent | 8d22455d3e7c7e8e25bcb8724754fc764f0e713c (diff) |
fwk160: #i107568# Jobs service enhancement to instantiate services only on matching application module context
Diffstat (limited to 'framework/inc/jobs')
-rw-r--r-- | framework/inc/jobs/jobdata.hxx | 10 | ||||
-rw-r--r-- | framework/inc/jobs/jobdispatch.hxx | 3 | ||||
-rw-r--r-- | framework/inc/jobs/jobexecutor.hxx | 4 |
3 files changed, 17 insertions, 0 deletions
diff --git a/framework/inc/jobs/jobdata.hxx b/framework/inc/jobs/jobdata.hxx index 21aa027cc874..e9cc79030770 100644 --- a/framework/inc/jobs/jobdata.hxx +++ b/framework/inc/jobs/jobdata.hxx @@ -80,6 +80,8 @@ class JobData : private ThreadHelpBase 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; @@ -105,6 +107,7 @@ class JobData : private ThreadHelpBase 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 @@ -210,6 +213,12 @@ class JobData : private ThreadHelpBase ::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 @@ -255,6 +264,7 @@ class JobData : private ThreadHelpBase 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 ); diff --git a/framework/inc/jobs/jobdispatch.hxx b/framework/inc/jobs/jobdispatch.hxx index 85e501e866e1..49b6b31b8cac 100644 --- a/framework/inc/jobs/jobdispatch.hxx +++ b/framework/inc/jobs/jobdispatch.hxx @@ -101,6 +101,9 @@ class JobDispatch : public css::lang::XTypeProvider /** reference to the frame, inside which this dispatch is used */ css::uno::Reference< css::frame::XFrame > m_xFrame; + /** name of module (writer, impress etc.) the frame is for */ + ::rtl::OUString m_sModuleIdentifier; + //___________________________________ // native interface methods diff --git a/framework/inc/jobs/jobexecutor.hxx b/framework/inc/jobs/jobexecutor.hxx index ead1022df2ec..955b2978f791 100644 --- a/framework/inc/jobs/jobexecutor.hxx +++ b/framework/inc/jobs/jobexecutor.hxx @@ -48,6 +48,7 @@ #include <com/sun/star/container/XContainerListener.hpp> #include <com/sun/star/lang/XEventListener.hpp> #include <com/sun/star/document/XEventListener.hpp> +#include <com/sun/star/frame/XModuleManager.hpp> //_______________________________________ // other includes @@ -85,6 +86,9 @@ class JobExecutor : public css::lang::XTypeProvider /** reference to the uno service manager */ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + /** reference to the module info service */ + css::uno::Reference< css::frame::XModuleManager > m_xModuleManager; + /** cached list of all registered event names of cfg for call optimization. */ OUStringList m_lEvents; |