Difference between revisions of "Uno/To-Dos"
From Apache OpenOffice Wiki
< Uno
m (→Clear Separation between C and C++ and Core Components: Missing bracket.) |
m (→Clear Separation between C and C++ and Core Components) |
||
Line 7: | Line 7: | ||
* Move C++ stuff from {{Uno/UDKlink|cppu}} to {{Uno/UDKlink|cppuhelper}}. | * Move C++ stuff from {{Uno/UDKlink|cppu}} to {{Uno/UDKlink|cppuhelper}}. | ||
* Move {{Uno/UDKlink|cppuhelper}} bootstrap stuff to [[Uno/Binary|Binary Uno]] and let it provide a 'C' interface. Implement current {{Uno/UDKlink|cppuhelper}} API as wrappers. | * Move {{Uno/UDKlink|cppuhelper}} bootstrap stuff to [[Uno/Binary|Binary Uno]] and let it provide a 'C' interface. Implement current {{Uno/UDKlink|cppuhelper}} API as wrappers. | ||
− | * Move {{Uno/UDKlink|cppuhelper/source/shlib.cxx}} into the library loader ({{Uno/UDKlink|stoc/source/loader}}). Let the library loader provide a C/C++ API. | + | * Move {{Uno/UDKlink|cppuhelper/source/shlib.cxx}} into the library loader ({{Uno/UDKlink|stoc/source/loader}}). Let the library loader provide a C/C++ API. Note, this is not as easy as it may sound, because the module {{Uno/UDKlink|stoc}} already depends on the module {{Uno/UDKlink|cppuhelper}}, which than would depend on module {{Uno/UDKlink|stoc}} stoc again. |
* Move {{Uno/UDKlink|cppuhelper/source/component_context.cxx}} into into its own core component in {{Uno/UDKlink|stoc}}. | * Move {{Uno/UDKlink|cppuhelper/source/component_context.cxx}} into into its own core component in {{Uno/UDKlink|stoc}}. | ||
Revision as of 13:58, 26 October 2006
ToDos and potential ToDos.
Contents
General
- Move documentation from http://udk.openoffice.org into the Uno wiki, see Uno/Effort/Migrate Documentation for details.
Clear Separation between C and C++ and Core Components
- Move C++ stuff from udk/cppu to udk/cppuhelper.
- Move udk/cppuhelper bootstrap stuff to Binary Uno and let it provide a 'C' interface. Implement current udk/cppuhelper API as wrappers.
- Move udk/cppuhelper/source/shlib.cxx into the library loader (udk/stoc/source/loader). Let the library loader provide a C/C++ API. Note, this is not as easy as it may sound, because the module udk/stoc already depends on the module udk/cppuhelper, which than would depend on module udk/stoc stoc again.
- Move udk/cppuhelper/source/component_context.cxx into into its own core component in udk/stoc.
Naming Clean up
- Rename module udk/cppu to reflect that it is implementing the Binary Uno runtime.
- Rename module udk/cppuhelper to reflect that it is implementing the C++ Uno runtime.
- Move the util/io module from the util project into the UDK project.
- Move the udk/jut/util module into the UDK project.
- Rename the Binary Uno to JNI (Jave Native Interface) bridge: java_uno -> jni_uno. Because that is what the bridge is about.
- Rename the Binary Uno to Remote Uno bridge: urp_uno -> remote_uno. Because that is what the bridge is about (actually, there is no URP object to program against, at least not in Binary Uno).
- Remove the "lib" prefixes under UNIX from the Binary Uno bridges.
- Rename udk/cpputools to something like "unotools" (unfortunately this name is already in use).
Simplification and Performance
- Remove the Binary Uno Object Binary Interface (OBI) (struct uno_Interface) and friends, replace it with one of the platform C++ OBIs.
- Support direct access of Uno types in Uno IDL, without includes.
- Let the *makers retrieve type information from the type providers and not from rdb files.
- Harmonize initial object access for Remote Uno and components -> it is actually the same. E.g.
"uno:library;[gcc3];<implementation name>"
may be used to access an instance factory, or any other object of interest. - Leverage Purpose Bridges for global variables, e.g. the "ServiceManager" or the "ComponentContext". Use this for bootstrapping as well. E.g.
Reference<XComponentContext> cppu::getComponentContext();
always returns the current component context. It is usable in components, libraries or applications and may even bootstrap Uno, if no context is available yet. - Remove all exception specifications.
- Consolidate the Binary Uno structs "uno_Environment" and "uno_ExtEnvironment".
- Remove
#ifndef EXCEPTIONS_OFF
macros, actually C++ Uno is not usable without exceptions anyway. - Is SAL_CALL really necessary for "inline" stuff? If not, remove it.
- Unify command line interface for all Uno tools.
- Convert the ProxyFactory service into a library and deprecate it.
Features
- Introduce process lifecycle based on living threads.
- Have Uno package support for the URE.
- Move the UCB into the URE.
- Move the configr mgr. into the URE.
- Uno alien type support e.g. for Java (e.g. a type description provider implemented in Java based on Java reflection).
- A Uno-SOAP Bridge.
- Allow (remote) proxy detection, needed for remote detection and optimizations.
- Zones.
- Write
man
pages. - Various IDE integrations.
- Allow connection parameters in environment descriptions for remote environments, e.g.
"remote[urp,socket=<port>,host=<name>]"
.