-*-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.