views:

562

answers:

1

Hi,

I'm looking for suggestions about choosing a portable way to achieve local IPC in a robust way, since i'm new to C++ and would like to avoid common pitfalls of fiddling with shared memory and locks; therefore I was thinking about message-passing style ipc.

I was planning to use qt for other reasons anyway, thus i took a peek to Qt ipc options.

if i understand correctly qt doesn't offer a completely portable message-passing ipc feature. it can use d-bus, but using it on windows would be a problem. other ways are limited to embedded linux platforms (and i would like to port this thing to AIX).

I could not find a "signal and slots" or message-passing style implementation that uses QSharedMemory and QSystemSemaphores

Thus: Am I limited to implement a feature on QSM/QSS? what other options could i study? posix pipes? protocol buffers? boost queues and messages ?

I'm considering to release the code under LGPL/GPL style license, does this rule out protocol buffers or boost libs?

please, again, the interface must be simple and newbie-proof (otherwise i definitely will screw up things big time for sure :) ), and so should the serialization/deserialization of types, error handling and resource disposal.

thank you a lot in advance (and this site is simply fantastic, btw)

+3  A: 

Take a look at Boost.Interprocess which provides a lot of IPC functionality. I have used the interprocess message_queue that provides a pretty clean and easy way to do what I think you want to do.

Jason