[fpc-devel] Proposed change in simpleipc
Luiz Americo Pereira Camara
pascalive at bol.com.br
Mon Dec 18 17:28:30 CET 2006
While developing with simpleipc i found that there's no straightforward =
way to identify the type of a message (see the forth paragraph of =
http://lazarusroad.blogspot.com/2006/12/only-one-instance.html), so i =
looked what i could do to improve it.
Currently, TMessageType is defined as an enum type with two possible =
values: mtString and mtUnknow. If you use SendMessage mtUnknow is used =
if SendMessageString is used mtString is used. But the message type is =
not being used: under windows the message type is not even passed to =
the server, under linux is passed but not used.
What i propose is simple: change the TMessageType to an 32bit ordinal =
type (longint or longword), provide ways the user to send custom message =
types and add a MsgType property to IPCServer. This way the user =
(programmer) can send messages with different purposes and easily know =
what to do when they arrive. Some thing like that:
with IPCServer do
begin
case MsgType of
mtString:;
mtMyType1:;
mtMyType2:;
end;
end;
The patch i'm sending does:
- Change TMessageType to longint
- Define mtString and mtUnknow as constants
- Add overloaded methods SendMessage and SendMessageString with an =
extra parameter (MsgType)
- Added MsgType property to TSimpleIPCServer
- Changed some capitalizations
win32
- MsgType is passed through an unused CopyDataStruct field
unix:
- No changes at all, just fixed a bug (mtString was used always)
Notice that there's no memory or resource increase since the patch uses =
previously unused resources.
I'm sending also a test program written in Lazarus. It was tested under =
win32 and linux (ubuntu 10.06)
Luiz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: testipc.zip
Type: application/zip
Size: 2996 bytes
Desc: not available
Url : http://lists.freepascal.org/lists/fpc-devel/attachments/20061218/5f54=
a5ff/testipc-0001.zip
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipcdiff.zip
Type: application/zip
Size: 1512 bytes
Desc: not available
Url : http://lists.freepascal.org/lists/fpc-devel/attachments/20061218/5f54=
a5ff/ipcdiff-0001.zip
More information about the fpc-devel
mailing list