summaryrefslogtreecommitdiff
path: root/framework/inc/jobs
diff options
context:
space:
mode:
authorCarsten Driesner <cd@openoffice.org>2010-11-04 15:43:13 +0100
committerCarsten Driesner <cd@openoffice.org>2010-11-04 15:43:13 +0100
commitecc7ab4b75d4fe46e4f6d51018506f7ceb745f44 (patch)
tree2df144b5ec4ba90434aba904fd00dea133694c87 /framework/inc/jobs
parent8d22455d3e7c7e8e25bcb8724754fc764f0e713c (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.hxx10
-rw-r--r--framework/inc/jobs/jobdispatch.hxx3
-rw-r--r--framework/inc/jobs/jobexecutor.hxx4
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;