Difference between revisions of "Uno/To-Dos"

From Apache OpenOffice Wiki
< Uno
Jump to: navigation, search
m (Features)
m (General: Fixed link.)
Line 2: Line 2:
  
 
===General===
 
===General===
* Move documentation from http://udk.openoffice.org into the Uno wiki (http://wiki.services.openoffice.org/wiki/Category:Uno).
+
* Move documentation from http://udk.openoffice.org into the [[Uno|Uno wiki]].
  
 
===Clear Separation between C and C++ and Core Components===
 
===Clear Separation between C and C++ and Core Components===

Revision as of 10:54, 19 July 2006

ToDos and potential ToDos

General

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.
  • 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 useable 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