[twsocket] FPC and ICS, forms, messaging.

Marco van de Voort marcov@stack.nl
Fri, 9 Jun 2000 14:31:59 +0100

> ICS needs the messaging because asynchronous socket operations (which
> ICS uses) relies heavily on messages.  I do not fully understand signals
> in Unix and its variants, 

FreeBSD/Linux support asynchronous sockets, I however don't know if there 
are gradients in this. (asychronous lists in win32.hlp as 
"A function that allows the next instruction in the process to be executed as 
soon as the call is made, without waiting for the function to return."
which seems to imply threading.)

Signals: You can install a signalhandler for a thread, and that signalhandler 
has a table of procedures (one for each individual signal) that is called when 
that thread receives that signal.

Seems to be the same principle as messaging  (since also callback 
procedures are installed), except that Delphi has a way of using methods as
callback. (which is probably what the MESSAGE directive is for, to signal
diffenent calling conventions?)

> so I cannot compare them with messages.  Also, I
> believe
> that BSD sockets (that's what Unix variants use for sockets, right?)
> cannot
> do asynchronous mode.  They only offer synchronous mode.

See above. At least, both Linux and FreeBSD allow async flags to be set
as socketoptions :-)

> This is the structure of a message.

[Snip] thanks.

> You will find some method declarations that have a 'message'
> directive.

I saw that too. This is something that I think won't be supported in FPC, since
it is too windows specific to put in the language definition.

> These are message handlers for the specified message.  I would
> recommend  getting a good book on Windows programming to 
> learn how messaging  works.

Can't you recommend any webresources? If I bought a book for each thing I
had to dive into for FPC, I would be pretty poor :-)

> When Kylix comes out (see the screenshots of the IDE at
> http://www.drbob42.com/kylix/hotshots.htm), 

I saw them, and the list of unsupported things on the Inprise site. 
(windows api units won't be supported)
So you could run into the same problem then, unless they managed to 
give a substitute (based on signals?)

> there are plans for ICS to be adapted to both Win32 and Linux.  

(and in my case OS/2 BeOS, FreeBSD too, maybe even dos :-)

> This will be quite a task, but it will be very nice when it all comes together.

Ever though of contacting JEDI for ICS? (www.delphi-jedi.org)

Marco van de Voort (MarcoV@Stack.nl or marco@freepascal.org)