Hi Allen,

Allen Bierbaum wrote:
> Carsten:
> I appreciate the detailed description.  I think I have to read it a few 
> more times to fully grasp the internal details.
> 
> What I think would be useful would be to describe the the user-level API 
> would look like.  For example, will a user application only use 
> RefPtr's?  Will these handle all the internal details automatically? 
> How will user apps handle aspects or will this be hidden?  When the user 
> needs a true cptr, how will they get them.

ok, this is not fully finalized but the idea is as follows: the 
interface offered by FieldContainers will be more or less what I've 
listed in the last mail. Some other points that were not very clear there:
- Interfaces accept and return plain C-ptrs (the {ContainerName}Ptr 
typedefs) by value.
- The notable exception are the ::create functions and the 
FieldContainerFactory, they return a pointer type that forces the user 
to create a RefPtr from it. It is called TransitPtr and internally 
contains a RefPtr that it passes with similar semantics as std::auto_ptr.
- Applications are intended to use ref pointers (the 
{ContainerName}RefPtr typedefs) which modify the external ref count.
- Pointers are local to their aspect, if a user wants to use a pointer 
from another aspect it needs to be converted explicitly, using 
convertToCurrentAspect, which should probably get an overload that 
accepts and returns ref ptrs directly.
- Pointer fields will store yet another pointer type (InternalRefPtr) 
that modifies the internal ref count. User code is not supposed to come 
into contact with this type or use it and since the current interface 
does not grant direct access to pointer fields one should only have to 
deal with them when working on the generated code.

> I guess what I am saying is that I am asking a much simpler question of 
> what will everything look like to users.  I am just trusting that you 
> and Dirk will be able to get everything working correctly internally. :)

Well, thanks for your confidence :) but we'd also like it to be usable 
in the end, so please keep asking questions if you something is not clear.

        Thanks,
                Carsten


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Opensg-core mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-core

Reply via email to