ah yes… I wrote it by heart :P
you need to declare the array type size, otherwise there is no point on it :)

Char100 := FFITypeArray ofType: aTypeName size: elements.

… and the rest is still the same (you replace FFITypeArray class>>ofType:size: 
occurrences with Char100)

Esteban

> On 8 Nov 2016, at 14:29, Dimitris Chloupis <kilon.al...@gmail.com> wrote:
> 
> by the way your code is wrong there is no FFITypeArray ofType: so it looks I 
> will have to go straight to 
> 
> FFITypeArray ofType:'char' size:100
> 
> of course for my case what you mention as
> 
> FFITypeArray ofType: #char size: 100) fromHandle: (handle copyFrom: 1 to: 100)
> 
> is the one that does exactly what I want.
> 
> 
> 
> On Tue, Nov 8, 2016 at 2:38 PM Esteban Lorenzano <esteba...@gmail.com 
> <mailto:esteba...@gmail.com>> wrote:
> yes please :)
> 
>> On 8 Nov 2016, at 13:32, Dimitris Chloupis <kilon.al...@gmail.com 
>> <mailto:kilon.al...@gmail.com>> wrote:
>> 
>> then great work^2
>> 
>> Do you want me to add this information to the UFFI documentation ? Probably 
>> I will also add some more examples for handles, pointers etc. 
>> 
>> I assume this is the repo for the docs of UFFI
>> 
>> https://github.com/SquareBracketAssociates/PharoInProgress 
>> <https://github.com/SquareBracketAssociates/PharoInProgress>
>> 
>> correct ? 
>> 
>> On Tue, Nov 8, 2016 at 2:12 PM Esteban Lorenzano <esteba...@gmail.com 
>> <mailto:esteba...@gmail.com>> wrote:
>>> On 8 Nov 2016, at 12:55, Dimitris Chloupis <kilon.al...@gmail.com 
>>> <mailto:kilon.al...@gmail.com>> wrote:
>>> 
>>> Thank you Esteban 
>>> 
>>> By the way I really love the design of UFFI , very clean and quite easy to 
>>> understand , great work to you and Igor :) 
>> 
>> UFFI is just mine ;)
>> (but I sanded in giant shoulders as I took Igor work as inspiration… and to 
>> “borrow” many cool ideas)
>> 
>> Esteban
>> 
>>> 
>>> On Tue, Nov 8, 2016 at 1:54 PM Esteban Lorenzano <esteba...@gmail.com 
>>> <mailto:esteba...@gmail.com>> wrote:
>>>> On 8 Nov 2016, at 12:49, Dimitris Chloupis <kilon.al...@gmail.com 
>>>> <mailto:kilon.al...@gmail.com>> wrote:
>>>> 
>>>> I was reaching a similar conclusion
>>>> 
>>>> Currently I have a void pointer to the struct with the members I mentioned 
>>>> 
>>>> I can get char[100] 
>>>> 
>>>> pointerToStruct fromCString
>>>> 
>>>> and I can get the int with
>>>> 
>>>> pointerToStruct getHandle integerAt: 101 size:4  signed: false
>>>> 
>>>> so if I want to pass the address of the pointer to my YourStruct instance 
>>>> will I have to initialize with
>>>> 
>>>> YourStruct fromHandler: (pointerToStruct getHandle) 
>>>> 
>>>> is this a correct and safe way to pass the address ? 
>>> 
>>> yes.
>>> 
>>> Esteban
>>> 
>>>> 
>>>> 
>>>> On Tue, Nov 8, 2016 at 1:21 PM Esteban Lorenzano <esteba...@gmail.com 
>>>> <mailto:esteba...@gmail.com>> wrote:
>>>> it never could.
>>>> you need to do a “special type”, who has to be something like:
>>>> 
>>>> YourStruct class>>initialize
>>>>         Char100 := FFITypeArray ofType: #char.
>>>> 
>>>> fieldsDesc
>>>>         ^ #(
>>>>         Char100 data;
>>>>         int count;
>>>>         )
>>>> 
>>>> but then… you want to optimise that and in field accessors, who will look 
>>>> something like this:
>>>> 
>>>> YourStruct >>data
>>>>         "This method was automatically generated"
>>>>         ^(FFITypeArray ofType: #char size: 100) fromHandle: (handle 
>>>> copyFrom: 1 to: 100)
>>>> 
>>>> you can change that for:
>>>> 
>>>> YourStruct >>data
>>>>         "This method was automatically generated"
>>>>         ^Char100 fromHandle: (handle copyFrom: 1 to: 100)
>>>> 
>>>> and same for setter.
>>>> (other way will work, but it will be suboptimal)
>>>> 
>>>> Esteban
>>>> 
>>>> > On 8 Nov 2016, at 12:10, Dimitris Chloupis <kilon.al...@gmail.com 
>>>> > <mailto:kilon.al...@gmail.com>> wrote:
>>>> >
>>>> > I have FFIExternalStructure which has at class side
>>>> >
>>>> > fieldsDesc
>>>> > ^#(
>>>> > char data[100];
>>>> > int count;
>>>> > )
>>>> >
>>>> > if I try to do
>>>> >
>>>> > EphCPPTestStructure rebuildFieldAccessors .
>>>> >
>>>> > in order to generate the accessors for the members of the struct it 
>>>> > complains with an error that it does not recognise the type of " [ "
>>>> >
>>>> > Does that mean that char arrays are other arrays are not supported as 
>>>> > struct members or will I have to do this manually ?
>>>> 
>>>> 
>> 
> 

Reply via email to