On Wed, Dec 12, 2012 at 7:04 PM, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:
Ciprian

this is really cool to see how pushing and enhancing NativeBoost.
Really a cool nd warm feeling.
Tx for your energy and time.�
Thanks Stef...

Stef

On Dec 11, 2012, at 8:33 PM, Ciprian Teodorov wrote:

> Hi guys,
>
> today I have commited to the NativeBoost repository a new core class, the NBExternalEnumerationType,
> which reifies the enum declarations in C and offers a nice interface (especially in terms of debug/inspect).
>
> To use it just subclass the NBExternalEnumeration and add an #enumDecl method to the class side such as:
>

Did you add this cool class comment :)
done ;)�

> NBExternalEnumeration subclass: #NBTestEnumeration
> � � � instanceVariableNames: ''
> � � � classVariableNames: ''
> � � � poolDictionaries: ''
> � � � category: 'NativeBoost-Tests'
>
> NBTestEnumeration class>>enumDecl
> � � � ^ {(#AAA -> 1).
> � � � (#BBB -> 2).
> � � � (#CCC -> 3).
> � � � (#DDD -> 2400)} asDictionary
>
> DO NOT FORGET to call the #initialize method on your class. The rest is automatically done ;)
>
> You can use your new enum in two ways:
> � � � � add it to a client class poolDictionaries list (see �#NBExternalEnumTests for an example), and then just write CCC in your code -- CCC here is an item of your enum
> � � � � or you can send the name of an item to your class --- NBTestEnumeration DDD
> The NBExternalEnumeration implements �(instance and class) some more API methods like:
> � � � � #itemAt: retrieves the item having a specific value �--- NBTestEnumeration itemAt: 2
> � � � � #includes: checks the existence of a specific item in the enum --- NBTestEnumeration includes: #AAA
> Having this already gives us a nice interface to working with enums. Now I plan to improve a little bit on performance and usage scenarios:
> � � � � the possibility to accept smalltalk integers as valid input/output for functions(or callbacks) that use enums as arguments/return.
> � � � � support the different representation types for the enum values (int/uint)
> So that will be for now. Feel free to try it out and send me any comments and/or improvement ideas, It will be my pleasure to improve it.
> Cheers,
> --
> Dr. Ciprian TEODOROV
> Ing�nieur D�veloppement CAO
>
> t�l : 06 08 54 73 48
> mail : ciprian.teodorov@gmail.com
> www.teodorov.ro





--
Dr. Ciprian TEODOROV
Ing
nieur�D�veloppement�CAO

t�l : 06 08 54 73 48

mail :�ciprian.teodorov@gmail.com
www.teodorov.ro