Hi Felix,

So after the changes that we have discussed on IRC meeting are ready, the next step would be to let the start_office() method return uno::Reference< lang::XMultiServiceFactory > that represents the service manager of the office ( can be retrieved from XComponentContext object using XComponentContext::getServiceManager() method ).

The service manager should be provided to the dispatchMsg() method. It will be used there as an argument to New_Instance() method, this method creates a new SoPluginInstance object. The old implementation connects always from the SoPluginInstance::Connect method, from my point of view it makes more sense that the instance gets the service manager in constructor, since the service manager is retrieved on connection. As Result the Connect method should be removed from the SoPluginInstance class.

The questions, suggestions are welcome.

Best regards,
Mikhail.


Mikhail Voitenko wrote:
Hi Felix,

Zhang Xiaofei wrote:
Hi Mikhail,
Thank you so much for asking, after our last meeting I find there are still a couple of questions.

- In the bootstrap() example in cppuhelper there is the piece of code starting from calling of cppuhelper_detail_findSofficePath() and ends with a conditional calling of Bootstrap::set(), from what I can see all the local defined variables involved here are not referred in the following, so could I assume the bootstrap setting has already been made and can take effect via some implicit mechanism?
This source code sets the correct value to the "path" variable ( that is used for the office startup in osl_executeProcess() ), and sets URE_BOOTSTRAP environment variable.

The documentation in sal/inc/rtl/bootstrap.h looks quited detailed, even though I'm still confused. What is more, is this a necessary part when it comes to our reimplementation?
It looks not to be necessary in our case to set URE_BOOTSTRAP variable. But the path to the executable is necessary for osl_executeProcess() call ( actually it is already retrieved even in current plugin implementation ).


- As I can remember, you have mentioned on different platforms there could be different implementations, in the example however, I can see all are done by simply passing the arguments to osl_executeProcess() - no fork(), no execl(), no windows pipe functions, maybe the work has been done in sal module and we need not do that any more?
Yes, you are right, using of osl_executeProcess() will minimize the difference between the implementations comparing to the current situation. But it will not remove the difference completely, for example, the way to look for the program directory is still different on Windows and Unix.

Best regards,
Mikhail.


Thanks and Best Regards,
Felix.



Mikhail Voitenko
Hi Felix,

How is it going with the office startup reimplementation? Does the approach we have discussed on IRC meeting work?
If there are any questions please do not hesitate to ask.

Best regards,
Mikhail.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to