Difference between revisions of "Uno/To-Dos"

From Apache OpenOffice Wiki
< Uno
Jump to: navigation, search
m (Fixed section indentation.)
m (Added links.)
Line 5: Line 5:
  
 
==Clear Separation between C and C++ and Core Components==
 
==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 {{Uno/UDKlink|cppu}} to {{Uno/UDKlink|cppuhelper}}.
* Move cppuhelper bootstrap stuff to Binary UNO and let it provide a 'C' interface. Implement current 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 cppuhelper/shlib.cxx into the library 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.
* Move cppuhelper/component_context.cxx into into its own core component.
+
* Move {{Uno/UDKlink|cppuhelper/source/component_context.cxx}} into into its own core component in {{Uno/UDKlink|stoc}}.
* 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==
+
==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 {{Uno/UDKlink|cppu}} to reflect that it is implementing the [[Uno/Binary|Binary Uno]] runtime.
* Rename module [http://udk.openoffice.org/source/browse/udk/cppuhelper cppuhelper] to reflect that it is implementing [[Uno/Cpp | C++ Uno]].
+
* Rename module {{Uno/UDKlink|cppuhelper}} to reflect that it is implementing the [[Uno/Cpp|C++ Uno]] runtime.
* Move the [http://util.openoffice.org/source/browse/util/io/ io] module from the [http://util.openoffice.org/ util] project into the [http://udk.openoffice.org into] project.
+
* Move the {{Uno/UDKlink|io|util}} module from the [http://util.openoffice.org/ util] project into the [http://udk.openoffice.org UDK] project.
* Move the [http://util.openoffice.org/source/browse/util/jut jut] module into the [http://udk.openoffice.org UDK] project.
+
* Move the {{Uno/UDKlink|jut/util}} module into the [http://udk.openoffice.org UDK] project.
* Rename the Binary-UNO to JNI-UNO bridge: java_uno -> jni_uno. Because that is what the bridge is about.
+
* Rename the [[Uno/Binary|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).
+
* Rename the [[Uno/Binary|Binary Uno]] to [[Uno/Remote|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 [[Uno/Binary|Binary Uno]]).
* Remove the "lib" prefixes under UNIX from the Binary-UNO bridges.
+
* Remove the "lib" prefixes under UNIX from the [[Uno/Binary|Binary Uno]] bridges.
 +
* Rename {{Uno/UDKlink|cpputools}} to something like "unotools" (unfortunately this name is already in use).
  
 
==Simplification and Performance==
 
==Simplification and Performance==
* Remove the Binary Uno ABI (struct uno_Interface) and friends, replace it with one of the platform C++ ABIs.
+
* Remove the [[Uno/Binary|Binary Uno]] [[Uno/Term/Object Binary Interface|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/Spec/IDL | IDL]], without includes.
+
* Support direct access of Uno types in [[Uno/Spec/IDL|Uno IDL]], without includes.
 
* Let the *makers retrieve type information from the type providers and not from rdb files.
 
* Let the *makers retrieve type information from the type providers and not from rdb files.
* Harmonize initial object access for [[Uno/Remote | Remote Uno]] and components -> it is actually the same. E.g. <pre>"uno:library;[gcc3];<implementation name>"</pre> may be used to access an instance factory, or any other object of interest.
+
* Harmonize initial object access for [[Uno/Remote|Remote Uno]] and components -> it is actually the same. E.g. <pre>"uno:library;[gcc3];<implementation name>"</pre> may be used to access an instance factory, or any other object of interest.
* Leverage [[Uno/Spec/Purpose Bridge|Purpose Bridges]] for global variables, e.g. the "ServiceManager" or the "ComponentContext". Use this for bootstrapping as well. E.g. <pre>Reference<XComponentContext> cppu::getComponentContext();</pre> 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.  
+
* Leverage [[Uno/Spec/Purpose Bridge|Purpose Bridges]] for global variables, e.g. the "ServiceManager" or the "ComponentContext". Use this for bootstrapping as well. E.g. <pre>Reference<XComponentContext> cppu::getComponentContext();</pre> 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.
 
* Remove all exception specifications.
* Consolidate the [[Uno/Binary | Binary Uno]] structs "uno_Environment" and "uno_ExtEnvironment".
+
* Consolidate the [[Uno/Binary|Binary Uno]] structs "uno_Environment" and "uno_ExtEnvironment".
 
* Remove <code>#ifndef EXCEPTIONS_OFF</code> macros, actually [[Uno/Cpp | C++ Uno]] is not usable without exceptions anyway.
 
* Remove <code>#ifndef EXCEPTIONS_OFF</code> macros, actually [[Uno/Cpp | C++ Uno]] is not usable without exceptions anyway.
 
* Is SAL_CALL really necessary for "inline" stuff? If not, remove it.
 
* Is SAL_CALL really necessary for "inline" stuff? If not, remove it.
Line 35: Line 35:
 
==Features==
 
==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]].
* Move the [http://ucb.openoffice.org UCB] into the [[Uno/Spec/Ure | URE]].
+
* Move the [http://ucb.openoffice.org UCB] into the [[Uno/Spec/Ure|URE]].
* Move the [http://util.openoffice.org configr mgr.] into the [[Uno/Spec/Ure | URE]].
+
* Move the [http://util.openoffice.org configr mgr.] into the [[Uno/Spec/Ure|URE]].
 
* Uno alien type support e.g. for Java (e.g. a type description provider implemented in Java based on Java reflection).
 
* 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.
 
* A Uno-SOAP Bridge.

Revision as of 20:24, 6 September 2006

ToDos and potential ToDos.

General

Clear Separation between C and C++ and Core Components

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>]"
    .
Personal tools