diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-08-10 03:25:41 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-08-10 03:25:41 +0000 |
commit | c48487bf6a100719cb5e0d76de19542652443403 (patch) | |
tree | 76b8318ffbf864528f94f679fd94243c3d66ea0d | |
parent | c08cbc4aa22843e772b99a56470f79ec508af200 (diff) | |
download | ATCD-c48487bf6a100719cb5e0d76de19542652443403.tar.gz |
Updated to reflect my new priorities.
-rw-r--r-- | TAO/docs/releasenotes/TODO.html | 119 |
1 files changed, 66 insertions, 53 deletions
diff --git a/TAO/docs/releasenotes/TODO.html b/TAO/docs/releasenotes/TODO.html index 9b09eac6f47..699f1e2bb02 100644 --- a/TAO/docs/releasenotes/TODO.html +++ b/TAO/docs/releasenotes/TODO.html @@ -29,8 +29,18 @@ </CENTER> <UL> - <LI>Move the EC specific things out of this file to the ec.html - file. + <LI>Add suspend and resume operations to the PushConsumerProxy + and PushSupplierProxy interfaces, following the Notification + Service spec. + </LI> + + <LI>The current implementation of octet sequences based on + message blocks has a few problems, it cannot marshall + chains of message blocks properly. + Notice that complete support for chains of message blocks will + complicate the sequence of octets implementation (like + operator[]) and will make others either hard or expensive + (like get_buffer ()). </LI> <LI>The IDL compiler gets confused with paths in NT, this may be @@ -44,22 +54,28 @@ faster. </LI> + <LI>Object references inside structures or sequences are not + decoded properly, the problem starts because the interpreter + expects a CORBA::Object_ptr, but the real type is a T_var; + virtual inheritance adds the last ingredient to the poison. + [STATUS] A possible solution is to use a T_manager_var that + has two fields a Object_ptr and a T_ptr.... + </LI> + <LI>Optimize twoways by delaying memory allocation for the - incoming data buffer. + incoming data buffer, thus improving interleaving between the + client and server (the client does something useful before + starting to wait for the server). </LI> - <LI>Optimize connection lookup in the client side, using "hints" - from the previous lookup, or keeping smaller sets on each IIOP - profile or a combination of both. [STATUS] Irfan is working on - this. - </LI> - <LI>Further optimize memory allocation by using a memory pool for the incoming CDR stream. </LI> <LI>Further optimize the outgoing memory allocation by adding - support for message blocks allocated from a pool. + support for message blocks allocated from a pool (the + Message_Block class itself not the Data_Block or the buffer it + contains). </LI> <LI>Add compiled marshalling [STATUS] Andy is working on this. @@ -80,13 +96,15 @@ subsequent) buffers come out of the allocator, so their sizes could be configured in the already mentioned file </LI> - - <LI>The operation tables do not need to be statics. + + <LI>We need some TAO_TRY_* macro to encapsulate a common use of + the CORBA::Environment argument: checking if it contains an + exception and then returning. </LI> - - <LI>Add suspend and resume operations to the PushConsumerProxy - and PushSupplierProxy interfaces, following the Notification - Service spec. + + <LI>The TypeCode internal (private) state needs locking, double + checked locking is needed to avoid excessive overhead, there + is potential for memory leaks if this locking is not used. </LI> <LI>IDL compiler front-end should be case insensitive (actually @@ -94,8 +112,15 @@ conflict). </LI> - <LI>Support nested upcalls in different concurrency models, like - thread-per-connection. + <LI>Support for 64bit longs in the IDL compiler + </LI> + + <LI>The operation tables do not need to be statics, they could + be created on creation of the first servant of that type. + </LI> + + <LI>Are nested upcalls in different concurrency models, like + thread-per-connection working? </LI> <LI>Add an option to the IDL-compiler (e.g. -rp) meaning @@ -109,22 +134,9 @@ <LI>Add options to the IDL compiler to set the suffixes. </LI> - <LI>We need some TAO_TRY_* macro to encapsulate a common use of - the CORBA::Environment argument: checking if it contains an - exception and then returning. - </LI> - - <LI>The TypeCode internal (private) state needs locking, double - checked locking is needed to avoid excessive overhead, there - is potential for memory leaks if this locking is not used. - </LI> - - <LI>Object references inside structures or sequences are not - decoded properly, the problem starts because the interpreter - expects a CORBA::Object_ptr, but the real type is a T_var; - virtual inheritance adds the last ingredient to the poison. - [STATUS] A possible solution is to use a T_manager_var that - has two fields a Object_ptr and a T_ptr.... + <LI>The IDL compiler should generate the code locally (not in + the directory where the .idl resides) or at least give an + option to do so </LI> <LI>Support for unions with default cases (implicit or explicit) @@ -135,9 +147,6 @@ connector. </LI> - <LI>Support for 64bit longs in the IDL compiler - </LI> - <LI>Support for fixed in the IDL compiler </LI> @@ -168,11 +177,6 @@ ACE_DEBUG output destination in all TAO applications </LI> - <LI>Study the CORBAlite spec and see how we could implement it - with TAO, considering dynamic and static configurations for - the full CORBA support - </LI> - <LI>Add the _raise() method to the exceptions... </LI> @@ -235,9 +239,9 @@ <LI>Implement operation demuxing for clients. </LI> - <LI>The current implementation of octet sequences based on - message blocks has a few problems, it cannot marshall - sequences of message blocks properly. + <LI>Study the CORBAlite spec and see how we could implement it + with TAO, considering dynamic and static configurations for + the full CORBA support </LI> <LI><P>The CORBAlite RFP is very interesting IMHO we just need to @@ -246,22 +250,23 @@ CORBA implementation also, this is an idea: Write the TAOlite version of a class (example TypeCode):</P> - <CODE> + <PRE> class TAO_CORBAlite_TypeCode { // Just the CORBAlite methods are implemented. }; - </CODE> + </PRE> <P>Derive the full blown implementation:</P> - <CODE> + <PRE> class TAO_CORBA_TypeCode : public TAO_CORBAlite_TypeCode { + // Declare all the other methods. }; - </CODE> + </PRE> <P>create two namespaces:</P> - <CODE> + <PRE> // in tao/CORBAlite.h class CORBA { tyedef TAO_CORBAlite_TypeCode TypeCode; @@ -271,18 +276,19 @@ class CORBA { typedef TAO_CORBAfull_TypeCode TypeCode; }; - </CODE> + </PRE> <P>then (at compile time) the users chooses between the CORBAlite or CORBAfull implementations:</P> - <CODE> + <PRE> + // In $TAO_ROOT/tao/corba.h #if USERS_WANTS_FAT_FREE_CORBA #include "tao/CORBAlite.h" #else #include "tao/CORBAfull.h" #endif - </CODE> + </PRE> <P>We need to consider how to support even smaller profiles that the CORBAlite RFP, like removing <any> or <fixed> support. @@ -401,6 +407,13 @@ </CENTER> <UL> + <LI>Optimize connection lookup in the client side, using "hints" + from the previous lookup, or keeping smaller sets on each IIOP + profile or a combination of both. [STATUS] Irfan is working on + this. + [DONE] + </LI> + <LI>Optimize the outgoing CDR streams by using TSS memory pools for both the data blocks and the buffers. [DONE] But we may consider strategizing the kind of allocator |