Difference between revisions of "Uno/To-Dos"
From Apache OpenOffice Wiki
< Uno
m (Fixed section indentation.) |
|||
Line 1: | Line 1: | ||
− | + | ToDos and potential ToDos. | |
− | + | ==General== | |
* Move documentation from http://udk.openoffice.org into the [[Uno|Uno wiki]], see [[Uno/Effort/Migrate Documentation]] for details. | * Move documentation from http://udk.openoffice.org into the [[Uno|Uno wiki]], see [[Uno/Effort/Migrate Documentation]] for details. | ||
− | + | ==Clear Separation between C and C++ and Core Components== | |
* Move C++ stuff from [http://udk.openoffice.org/source/browse/udk/cppu cppu] to [http://udk.openoffice.org/source/browse/udk/cppuhelper cppuhelper]. | * Move C++ stuff from [http://udk.openoffice.org/source/browse/udk/cppu cppu] to [http://udk.openoffice.org/source/browse/udk/cppuhelper cppuhelper]. | ||
* Move cppuhelper bootstrap stuff to Binary UNO and let it provide a 'C' interface. Implement current cppuhelper API as wrappers. | * Move cppuhelper bootstrap stuff to Binary UNO and let it provide a 'C' interface. Implement current cppuhelper API as wrappers. | ||
Line 11: | Line 11: | ||
* Rename [http://udk.openoffice.org/source/browse/udk/cpputools cpputools] to something like "unotools" (unfortunately this name is already in use). | * Rename [http://udk.openoffice.org/source/browse/udk/cpputools cpputools] to something like "unotools" (unfortunately this name is already in use). | ||
− | + | ==(Module) Naming Clean up== | |
* Rename module [http://udk.openoffice.org/source/browse/udk/cppu/ cppu] to reflect that it is implementing [[Uno/Binary | Binary Uno]]. | * Rename module [http://udk.openoffice.org/source/browse/udk/cppu/ cppu] to reflect that it is implementing [[Uno/Binary | Binary Uno]]. | ||
* Rename module [http://udk.openoffice.org/source/browse/udk/cppuhelper cppuhelper] to reflect that it is implementing [[Uno/Cpp | C++ Uno]]. | * Rename module [http://udk.openoffice.org/source/browse/udk/cppuhelper cppuhelper] to reflect that it is implementing [[Uno/Cpp | C++ Uno]]. | ||
Line 20: | Line 20: | ||
* Remove the "lib" prefixes under UNIX from the Binary-UNO bridges. | * Remove the "lib" prefixes under UNIX from the Binary-UNO bridges. | ||
− | + | ==Simplification and Performance== | |
* Remove the Binary Uno ABI (struct uno_Interface) and friends, replace it with one of the platform C++ ABIs. | * Remove the Binary Uno ABI (struct uno_Interface) and friends, replace it with one of the platform C++ ABIs. | ||
* Support direct access of Uno types in [[Uno/Spec/IDL | IDL]], without includes. | * Support direct access of Uno types in [[Uno/Spec/IDL | IDL]], without includes. | ||
Line 33: | Line 33: | ||
* Convert the ProxyFactory service into a library and deprecate it. | * Convert the ProxyFactory service into a library and deprecate it. | ||
− | + | ==Features== | |
* Introduce process lifecycle based on living threads. | * Introduce process lifecycle based on living threads. | ||
* Have Uno package support for the [[Uno/Spec/Ure | URE]]. | * Have Uno package support for the [[Uno/Spec/Ure | URE]]. |
Revision as of 20:07, 6 September 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 cppu to cppuhelper.
- Move cppuhelper bootstrap stuff to Binary UNO and let it provide a 'C' interface. Implement current cppuhelper API as wrappers.
- Move cppuhelper/shlib.cxx into the library loader. Let the library loader provide a C/C++ API.
- Move cppuhelper/component_context.cxx into into its own core component.
- Rename cpputools to something like "unotools" (unfortunately this name is already in use).
(Module) Naming Clean up
- Rename module cppu to reflect that it is implementing Binary Uno.
- Rename module cppuhelper to reflect that it is implementing C++ Uno.
- Move the io module from the util project into the into project.
- Move the jut module into the UDK project.
- Rename the Binary-UNO to JNI-UNO 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.
Simplification and Performance
- Remove the Binary Uno ABI (struct uno_Interface) and friends, replace it with one of the platform C++ ABIs.
- Support direct access of Uno types in 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>]"
.