[fpc-pascal] Best way to transfer data between applications?
Jorge Aldo G. de F. Junior
jagfj80 at gmail.com
Tue Oct 30 03:53:11 CET 2012
I have a very simple unit that uses RTTI to stream class instances to
and from strings/streams.
i believe this is an easy foundation on wich to develop something
along the lines of what you are trying to do
2012/10/29 Frank Church <vfclists at gmail.com>:
> On 29 October 2012 09:43, Michael Van Canneyt <michael at freepascal.org>
>> On Mon, 29 Oct 2012, 印場 乃亜 wrote:
>>> I am familiar with the basic underlying methods available for
>>> transferring data between processes on Windows and Unix, i.e. Pipes, Shared
>>> memory, and TCP/IP - but what I am not familiar with is any higher level
>>> functionality that may be available on FPC.
>>> As an example: I have one application with a daemon that uses the IPC
>>> component to write to a file in CSV format, and then the user application
>>> reads this (GPS location) data via IPC. Then I have to re-convert this
>>> string data into a series of floating point values manually, though. The
>>> IPC component doesn't seem to be reliable on all platforms either (it
>>> sometimes blocks on OS X, and at least the debug client doesn't seem to work
>>> at all on Windows 7).
>>> Another disadvantage is that the sequence of launching the applications
>>> matters, and what's more, it seems there can only be one "client" per
>>> "server" in many cases.
>>> More to the point, if I want to pass around structures, records,
>>> JSON. I know there are JSON libraries and various other libraries for
>>> Pascal - but I don't know what is the most standard way. (I think this kind
>>> of marshalling/unmarshalling may be more standard in Java and C#, but I
>>> don't know the "normal" way in Delphi/FPC).
>>> I would prefer to use built-in functionality, rather than learn yet
>>> another library - and if learning a library, I would prefer to use one
>>> with lots of users that is actively maintained. Likewise, I would prefer
>>> to actually "pass" the data, rather than just pass a pointer to it. I
>>> plan to have the processes run on the same machine, so I don't need a
>>> solution that works with networking, though that would be fine, of
>>> Along the same lines, a convenient way to call functions/procedures with
>>> parameters from the "other" process would be greatly appreciated. (i.e.
>>> something like RPC that handles OOP).
>> You should try WST.
>> It's perfectly suitable for all this. It is actively used and maintained.
>> You can choose which encoding (binary, soap, JSON) is used, and which
>> protocol (Direct library, TCP socket, http).
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> I have to second Michael's response. Inoussa discussed on some thread some
> time back and in fact I am lookiing to read it again.
> Does anyone recall that thread?
> Frank Church
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
More information about the fpc-pascal