Library request: pstream / socketstream / serial stream

Hi, At our labs we share the desire for a C++ iostreams implementation that deals with these problem domains: 1. Inter-process communications, including simple popen-type usage, like a scripting language; also pipes for forking 2. Socket communications, TCP UDP and unix 3. Serial communications, and a wrapper to set the serial parameters For 1. and 2., we are currently using the socket++ library. I am also aware of the PStreams library for 1. for 3. we use hacked together mix of C and C++. Is there any sort of joint strategy planned to tackle this area? If there is, I may be able to contribute. Marc -- Marc Siegel MIT Lincoln Laboratory Wideband Tactical Networking Group mlsiegel@ll.mit.edu . (781)981-5434

Marc Siegel wrote:
Hi,
At our labs we share the desire for a C++ iostreams implementation that deals with these problem domains:
1. Inter-process communications, including simple popen-type usage, like a scripting language; also pipes for forking 2. Socket communications, TCP UDP and unix
For the 1.34 release of Boost, I'm planning to add socket and pipe Devices to Boost.Iostreams, which is debuting in 1.33 (http://boost-consulting.com/boost/libs/iostreams)
3. Serial communications, and a wrapper to set the serial parameters
For 1. and 2., we are currently using the socket++ library. I am also aware of the PStreams library for 1. for 3. we use hacked together mix of C and C++.
Is there any sort of joint strategy planned to tackle this area? If there is, I may be able to contribute.
There's been a lot of work on networking, most recently by Pedro Lamarão (see the archives). I'm sure your contributions would be welcomed.
Marc
Jonathan

On Thu, 14 Jul 2005 17:40:34 -0600, Jonathan Turkanis wrote
1. Inter-process communications, including simple popen-type usage, like a scripting language; also pipes for forking 2. Socket communications, TCP UDP and unix
For the 1.34 release of Boost, I'm planning to add socket and pipe Devices to Boost.Iostreams, which is debuting in 1.33 (http://boost-consulting.com/boost/libs/iostreams)
There's also been some work on Boost.Process -- see: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostProcess But it's not official yet.
3. Serial communications, and a wrapper to set the serial parameters
For 1. and 2., we are currently using the socket++ library. I am also aware of the PStreams library for 1. for 3. we use hacked together mix of C and C++.
Is there any sort of joint strategy planned to tackle this area? If there is, I may be able to contribute.
There's been a lot of work on networking, most recently by Pedro Lamarão (see the archives). I'm sure your contributions would be welcomed.
And formally by Hugo Duncan and many others: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Multiplexing I've thought for some time now we need a collaborative team to work the networking area. Reason being that we never seem to get a single author that can carry it end to end (not enough Robert Ramey's around :). A motiviated group might be able to make progress much faster and finally get a library in boost. Nicholai Josuttis and I had some conversations at OOPSLA last year with 'an acedemic person famous for C++ networking libraries' and he indicated an interest in collaborating on getting a networking library for boost. We haven't followed up on this offer and we really should. If you are highly motiviated, contact me offlist and maybe we can start something.... BTW, the above is not meant to discourage efforts by Pedro, Jonathan, and others. It's just that we've seen various efforts start and die over many years. We really need a proposal for TR2, and well time is slipping away... Jeff

On Thu, Jul 14, 2005 at 09:01:32PM -0700, Jeff Garland wrote:
On Thu, 14 Jul 2005 17:40:34 -0600, Jonathan Turkanis wrote
1. Inter-process communications, including simple popen-type usage, like a scripting language; also pipes for forking 2. Socket communications, TCP UDP and unix
For the 1.34 release of Boost, I'm planning to add socket and pipe Devices to Boost.Iostreams, which is debuting in 1.33 (http://boost-consulting.com/boost/libs/iostreams)
There's also been some work on Boost.Process -- see:
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostProcess
But it's not official yet.
3. Serial communications, and a wrapper to set the serial parameters
For 1. and 2., we are currently using the socket++ library. I am also aware of the PStreams library for 1.
If anyone cares: I've got an evening alone at home tonight and hope to commit a new version of PStreams that seperates the process-control from the streambuf, so it will have a more general process class that can be used independently of the IO features. I just need to fix a few failing tests (what a way to spend a friday night ;-) I've also been reviewing libexecstream with regard to usability and missing features in PStreams. Then I'll try and support all the features listed as requirements on the wiki page cited above. jon

Jonathan Wakely wrote:
3. Serial communications, and a wrapper to set the serial parameters
For 1. and 2., we are currently using the socket++ library. I am also aware of the PStreams library for 1.
If anyone cares: I've got an evening alone at home tonight and hope to commit a new version of PStreams that seperates the process-control from the streambuf, so it will have a more general process class that can be used independently of the IO features. I just need to fix a few failing tests (what a way to spend a friday night ;-)
I've also been reviewing libexecstream with regard to usability and missing features in PStreams. Then I'll try and support all the features listed as requirements on the wiki page cited above.
Cool, thanks. Jonathan

Jeff Garland wrote:
On Thu, 14 Jul 2005 17:40:34 -0600, Jonathan Turkanis wrote
1. Inter-process communications, including simple popen-type usage, like a scripting language; also pipes for forking 2. Socket communications, TCP UDP and unix
For the 1.34 release of Boost, I'm planning to add socket and pipe Devices to Boost.Iostreams, which is debuting in 1.33 (http://boost-consulting.com/boost/libs/iostreams)
There's also been some work on Boost.Process -- see:
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostProcess
But it's not official yet.
3. Serial communications, and a wrapper to set the serial parameters
For 1. and 2., we are currently using the socket++ library. I am also aware of the PStreams library for 1. for 3. we use hacked together mix of C and C++.
Is there any sort of joint strategy planned to tackle this area? If there is, I may be able to contribute.
There's been a lot of work on networking, most recently by Pedro Lamarão (see the archives). I'm sure your contributions would be welcomed.
And formally by Hugo Duncan and many others:
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Multiplexing
I've thought for some time now we need a collaborative team to work the networking area. Reason being that we never seem to get a single author that can carry it end to end (not enough Robert Ramey's around :).
While working with network IOStreams, I found it extremely useful to spend much time actually implementing example usage. I think one of the greates difficulties with providing a solution to all of the requirements mentioned in past discussion is just that they are so many, and it's not really obvious just from the discussion how required are they really. If such a team were to be formed, I'd like to offer my help in this area: actually providing sample implementations of the expected idioms the library is meant to support. -- Pedro Lamarão Desenvolvimento Intersix Technologies S.A. SP: (55 11 3803-9300) RJ: (55 21 3852-3240) www.intersix.com.br Your Security is our Business
participants (5)
-
Jeff Garland
-
Jonathan Turkanis
-
Jonathan Wakely
-
Marc Siegel
-
Pedro Lamarão