Hello all, I was wondering if Boost Asio has any plans to have a structure such as Apache MINA's xxxEncoder/xxxDecoder (which are for Java). This kind of interface (for those who don't know them yet) allow you to write code such as: (Warning: very bad {and simplistic} example ahead) class commands::echo : public message_decoder { somewhere("echo"); } class commands::cls : public message_decoder { somewhere("cls"); } ... class commands::exit : public message_decoder { somewhere("exit"); } class my_protocol_decoder : public protocol_decoder { ctor() { add(echo); add(cls); ... add(exit); } }; And that would give us a nice protocol decoder that we can plug into a family of "decoding-friendly" classes. Apache MINA does a great job doing this and maybe there is something that can be extracted into Boost Asio. Please tell me what you think or if I'm completely mad to want this or even if I'm asking on the wrong place. Thank you all!! Rodrigo Madera =o)
Also, if anyone could please point to some examples as how you currently do protocol decoding. Anyone here on the list ever dealt with protocol muxing? If I don't find anything I will have to 1) Switch to ACE or 2) Create some kind of muxing interfaces for ASIO. Thank you for your input, Rodrigo
What is protocol muxing? _____ From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Rodrigo Madera Sent: Thursday, October 30, 2008 16:57 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Asio Protocol Decoder interfaces/templates Also, if anyone could please point to some examples as how you currently do protocol decoding. Anyone here on the list ever dealt with protocol muxing? -- Scanned for viruses and dangerous content at http://www.oneunified.net and is believed to be clean.
Protocol encoding and decoding.
I found a library that promises this, which ironically is a candidate for
Boost inclusion:
CPP Net Lib (cpp-netlib.wiki.sourceforge.net).
I was hoping to get the library and find a set of classes used for protocol
data marshalling but instead it looks like the creator focused only on an
HTTP client, which is nice, but limited (for now, at least).
I joined the mailing list for the library and I asked if there are any plans
to actually develop something more complete and capable of dealing with
binary elements on a protocol.
This is not hard at all, and I could (and as I see it I will be forced to)
write some basic wireframe framework that actually does the protocol
parsing. This is something that, as I commented earlier, is done very nicely
by Apache MINA for Java.
My hope now is that this library fulfils it's duty to actually implement
protocol helpers completely and continue to do so the Boost way (the "right"
way).
I will continue my development from what I downloaded from them and then
contribute it back for others like me to have such a facility in the future.
Though I hope I am not reinventing something out there.
Regards,
Rodrigo Madera
On Thu, Oct 30, 2008 at 8:47 PM, Ray Burkholder
What is protocol muxing?
------------------------------ *From:* boost-users-bounces@lists.boost.org [mailto: boost-users-bounces@lists.boost.org] *On Behalf Of *Rodrigo Madera *Sent:* Thursday, October 30, 2008 16:57 *To:* boost-users@lists.boost.org *Subject:* Re: [Boost-users] Asio Protocol Decoder interfaces/templates
Also, if anyone could please point to some examples as how you currently do protocol decoding. Anyone here on the list ever dealt with protocol muxing?
-- Scanned for viruses & dangerous content at One Unifiedhttp://www.oneunified.netand is believed to be clean. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
When you mention data marshalling, two projects come to mind (mostly on the
inter-process communications [ie network application] side of things):
http://www.codeproject.com/KB/threads/Rcf_Ipc_For_Cpp.aspx
http://www.zeroc.com/index.html
If you need a rfc like protocol handling, I've found:
http://www.nsoftware.com/ipworks/default.aspx (you need to pay money)
or
http://pocoproject.org/ (open source)
Or are you heading in a different direction than these 'established'
libraries?
Ray.
_____
From: boost-users-bounces@lists.boost.org
[mailto:boost-users-bounces@lists.boost.org] On Behalf Of Rodrigo Madera
Sent: Thursday, October 30, 2008 20:27
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] Asio Protocol Decoder interfaces/templates
Protocol encoding and decoding.
I found a library that promises this, which ironically is a candidate for
Boost inclusion:
CPP Net Lib (cpp-netlib.wiki.sourceforge.net).
I was hoping to get the library and find a set of classes used for protocol
data marshalling but instead it looks like the creator focused only on an
HTTP client, which is nice, but limited (for now, at least).
I joined the mailing list for the library and I asked if there are any plans
to actually develop something more complete and capable of dealing with
binary elements on a protocol.
This is not hard at all, and I could (and as I see it I will be forced to)
write some basic wireframe framework that actually does the protocol
parsing. This is something that, as I commented earlier, is done very nicely
by Apache MINA for Java.
My hope now is that this library fulfils it's duty to actually implement
protocol helpers completely and continue to do so the Boost way (the "right"
way).
I will continue my development from what I downloaded from them and then
contribute it back for others like me to have such a facility in the future.
Though I hope I am not reinventing something out there.
Regards,
Rodrigo Madera
On Thu, Oct 30, 2008 at 8:47 PM, Ray Burkholder
These libraries that you mentioned transport objects, which is great... very
neat.
But I'm writing a protocol handler. Which has an RFC. Binary communications.
Already defined.
So all of the above are as useful as boxing gloves for peeling oranges.
I'll be writing the code, as I said, and then send a link here for you to
see.
Thank you for your input,
Rodrigo
On Fri, Oct 31, 2008 at 12:15 AM, Ray Burkholder
When you mention data marshalling, two projects come to mind (mostly on the inter-process communications [ie network application] side of things):
http://www.codeproject.com/KB/threads/Rcf_Ipc_For_Cpp.aspx http://www.zeroc.com/index.html
If you need a rfc like protocol handling, I've found:
http://www.nsoftware.com/ipworks/default.aspx (you need to pay money)
or
http://pocoproject.org/ (open source)
Or are you heading in a different direction than these 'established' libraries?
Ray.
------------------------------ *From:* boost-users-bounces@lists.boost.org [mailto: boost-users-bounces@lists.boost.org] *On Behalf Of *Rodrigo Madera *Sent:* Thursday, October 30, 2008 20:27
*To:* boost-users@lists.boost.org *Subject:* Re: [Boost-users] Asio Protocol Decoder interfaces/templates
Protocol encoding and decoding. I found a library that promises this, which ironically is a candidate for Boost inclusion: CPP Net Lib (cpp-netlib.wiki.sourceforge.net).
I was hoping to get the library and find a set of classes used for protocol data marshalling but instead it looks like the creator focused only on an HTTP client, which is nice, but limited (for now, at least).
I joined the mailing list for the library and I asked if there are any plans to actually develop something more complete and capable of dealing with binary elements on a protocol.
This is not hard at all, and I could (and as I see it I will be forced to) write some basic wireframe framework that actually does the protocol parsing. This is something that, as I commented earlier, is done very nicely by Apache MINA for Java.
My hope now is that this library fulfils it's duty to actually implement protocol helpers completely and continue to do so the Boost way (the "right" way).
I will continue my development from what I downloaded from them and then contribute it back for others like me to have such a facility in the future. Though I hope I am not reinventing something out there.
Regards, Rodrigo Madera
On Thu, Oct 30, 2008 at 8:47 PM, Ray Burkholder
wrote: What is protocol muxing?
------------------------------ *From:* boost-users-bounces@lists.boost.org [mailto: boost-users-bounces@lists.boost.org] *On Behalf Of *Rodrigo Madera *Sent:* Thursday, October 30, 2008 16:57 *To:* boost-users@lists.boost.org *Subject:* Re: [Boost-users] Asio Protocol Decoder interfaces/templates
Also, if anyone could please point to some examples as how you currently do protocol decoding. Anyone here on the list ever dealt with protocol muxing?
-- Scanned for viruses & dangerous content at One Unifiedhttp://www.oneunified.netand is believed to be clean. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Scanned for viruses & dangerous content at One Unifiedhttp://www.oneunified.netand is believed to be clean.
-- Scanned for viruses & dangerous content at One Unifiedhttp://www.oneunified.netand is believed to be clean.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Ray Burkholder
-
Rodrigo Madera