The Framework Interface

3FD main DLL was designed to be a compiler-agnostic component exposing a virtual interface for its objects. Therefore, when you update 3FD, your already bound applications will automatically be using the new version of the framework. However, unlike COM and CORBA, you are not obligated to handle smart pointers to the framework objects, because you can use them through the instantiation of "proxy classes".


The proxy classes belong to an intermediate layer which is compiled by the same compiler of the client code. That role of the intermediate layer is to translate data exchange between the application and the framework virtual interface when they are not compatible. As an example, it performs transformations between STL string objects and C-style strings, but also transports exceptions from inside the DLL to the application execution.

Once the proxy objects live in the client application stack, they control the life-time of the framework objects using RAII, eliminating the need for smart pointers. Every time you instantiate a proxy class, the object constructor invokes the framework to build the object and exports it to the application as an interface pointer, which is wrapped by the proxy object.

It is important to notice that proxy objects are not copiable (at least for now), although they support move semantics.

Last edited May 16, 2013 at 2:35 AM by faburaya, version 4


No comments yet.