tags:

views:

150

answers:

3

Does anyone know if there's a working port of the Symbian OS C++ Descriptors functionality to other operating systems? I recall there being some code towards that here, although last time I tested it, it did not compile with G++ due to some missing/undefined types.

Thanks in advance, Tyson

+2  A: 

I haven't seen such ports, but you may want to wait for the upcoming Symbian Foundation platform release where most of the OS (including descriptors) is opened up under EPL license.

laalto
+1  A: 

There's nothing inherently platform-specific about descriptors and you could trivially port them (i.e. re-compile them) to another platform from the Symbian source once it's open sourced. However, since some of the descriptor functions 'leave' you'd have to pull in the Symbian cleanup stack functionality too.

Since these are some of the worst (i.e. most non-standard and widely hated) bits of Symbian C++, I'm curious why you'd want to?

Mark Wilcox
+2  A: 

There are several things to consider here:

  • The essential descriptor API was written more than 10 years ago to respond to a specific set of resource constrains. While they definitely make Symbian OS C++ a breed appart to this day, the rationale to port them on a newer operating system would have to be debatable at best.

  • Symbian (well, Nokia now) actually has at least one patent covering descriptors. You probably want to enquire as to exactly what is supposed to happen to it when the descriptor source code is made open source before you spend too much time working on this.

  • The Symbian ecosystem has actually been trying really hard to move away from descriptors altogether for a while. Between OpenC/C++, QT and the new EUserHL library, there are very viable C++ alternatives to descriptors.

  • The descriptor documentation in the Symbian Developer Library is actually quite decent and you can definitely use that as the basis for a clean-room port to another operating system. it's quite a bit of work for something most developers would actively try to avoid, though.

  • Keep in mind that he full descritpor API is dependant on a variety of Symbian C++ idioms like CBase, CCleanupStack, TReal... a proper port would definitely require a lot of work. Of course, the leaving mechanism can be implemented with standard C++ exceptions (since that's what Symbian did when they moved away from interruptions) but still...

QuickRecipesOnSymbianOS