SCF allows for three things:
- Reference counting which is better then the alternative new/delete memory
allocation system.
- Interface based programming.
- Plugin system and the ability to call C++ functions in other plugins.

Communication to COM and CORBA is not the reason. We don't do that
(anymore).

The most important reason for SCF is (in my view) the plugin system. That is
very important in CS.

Greetings,

On Thu, Oct 14, 2010 at 11:21 PM, Denis Washington <[email protected]> wrote:

>  Hi,
>
> Being relatively new to CrystalSpace, I digged a bit deeper into the User's
> Manual again and came across the chapter about SCF. While having read it
> from beginning to end, I still don't have any clue about what this mechanism
> does bring to the table. I mean, what is the benefit to just declaring the
> implementing class itself and using that instead of an extra SCF interface?
>
> I read something in the introduction about being able to do let SCF objects
> communicate between processes with COM and CORBA and the like, but why
> should somebody do that? It's a game engine, after all! In 99% of the case,
> a game does not have to integrate with its environment. (Maybe with other
> instances of itself running on other machines for multiplayer, but this
> should probably be the job of a network subsystem, not of a basic object
> framework.)
>
> I also don't grasp the versioning argument. The manual says "if it happened
> that you compiled the shared library with a slightly different version of
> [concrete class] (that, say, had one member variable fewer) you will end
> up with a SIGSEGV crash." Isn't that what the d-pointer idiom [1] is for?
> I see no reason how SCF solves this better.
>
> So, why SCF?
>
> Regards,
> Denis
>
> [1] http://jatshergill.com/blog/?p=212
>
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> Crystal-main mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/crystal-main
> Unsubscribe: mailto:[email protected]
> ?subject=unsubscribe
>
>


-- 
Project Manager of Crystal Space (http://www.crystalspace3d.org)
and CEL (http://cel.crystalspace3d.org)
Support Crystal Space. Donate at
https://sourceforge.net/donate/index.php?group_id=649
Personal page: http://users.telenet.be/jorritTyberghein/
------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
Crystal-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crystal-main
Unsubscribe: 
mailto:[email protected]?subject=unsubscribe

Reply via email to