-*-Mode: Outline;-*-

* Transactions.
  Transaction handling (or the use of mnesia:async_dirty) is not very
  good at error checking. Code to handle errors from transactions must
  be added. Right now it is not possible to mix atomic transactions
  with dirty 'transactions' (i.e. async_dirty) and still check the
  results consistently. This must be fixed if we are to read with
  async_dirty instead of transaction, since we still want to do all
  the writes with transaction and not async_dirty.
  (This point might be moot. Simple reads are now done with
  mnesia:dirty_read/1 outside of transactions).

* Unresolved issues.
  There are some places in the source code marked with '***' where the
  code should be verified. It mostly concerns minor unresolved
  unclarities in the specification.

** orber_ifr_contained.erl
  In move/4 there is a call to orber_ifr_contained:lookup_name/5. The
  third argument, Levels_to_search, is set to -1, which means search
  all contained objects. This is probably correct.

** orber_ifr_interfacedef.erl
  The function describe_interface/1 describes the interface without
  its inherited interfaces. It is not clear whether this is correct or
  not. It is possible to get a description of the inherited interfaces
  by mapping describe_interface/1 on the list if interfaces returned
  by get_base_interfaces/1. Also, since the structs
  InterfaceDescription and FullInterfaceDescription both have a field
  named base_interfaces, it is possible to get a description of the
  inherited attributes by examining that field and applying a describe
  function.

** orber_ifr_orb.erl
  create_union_tc/4 sets the fifth element in the typecode tuple to
  -1, meaning no default case.

** orber_ifr_repository.erl
  The PrimitiveDef with kind pk_objref has an empty Id and an empty
  Name. This is perhaps not correct.

** orber_ifr_typecode.erl
  None of the functions in this module are fully implemented and they
  should not be used.

** orber_ifr_uniondef.erl
*** '_set_members'/2
  What should the value of the discriminator-typecode be when updating
  the type attribute? (CORBA 2.0, p 6-20). For now we just leave it
  unchanged, but this is perhaps not the right thing to do.

*  Exceptions should give more information about the failure.
