[FYI] RCF 0.2

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

[FYI] RCF 0.2

Jarl Lindrud

Hi all,

I just thought I would announce that I've released v. 0.2 of RCF, a portable C++
IPC framework. It makes extensive use of boost, including Boost.Threads, Boost.
Serialization, and the recently accepted asio library, so maybe people on this
list will find it of interest :)

http://www.codeproject.com/threads/Rcf_Ipc_For_Cpp.asp

/Jarl.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

thorsten.ottosen
Jarl Lindrud wrote:
> Hi all,
>
> I just thought I would announce that I've released v. 0.2 of RCF, a portable C++
> IPC framework. It makes extensive use of boost, including Boost.Threads, Boost.
> Serialization, and the recently accepted asio library, so maybe people on this
> list will find it of interest :)
>
> http://www.codeproject.com/threads/Rcf_Ipc_For_Cpp.asp

I would like to encourage you to work on making this library
suitable for boost.

Knowing how ugly such frameworks look like in other languages, eg. C#,
this is great improvement and could become a great boost library too.

best regards

-Thorsten
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Jeff Garland
On Sun, 09 Apr 2006 12:33:42 +0200, Thorsten Ottosen wrote
> Jarl Lindrud wrote:
> > Hi all,
> >
> > I just thought I would announce that I've released v. 0.2 of RCF, a
portable C++
> > IPC framework. It makes extensive use of boost, including Boost.Threads,
Boost.
> > Serialization, and the recently accepted asio library, so maybe people on
this

> > list will find it of interest :)
> >
> > http://www.codeproject.com/threads/Rcf_Ipc_For_Cpp.asp
>
> I would like to encourage you to work on making this library
> suitable for boost.
>
> Knowing how ugly such frameworks look like in other languages, eg.
> C#, this is great improvement and could become a great boost library
> too.
>
> best regards
>
> -Thorsten

I'll add my voice to this.  I didn't download and try out your code, but from
the article it looks like a nice piece of work that builds on other boost
components to address some common distributed communication cases.

Jeff
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Felipe Magno de Almeida
In reply to this post by Jarl Lindrud
On 4/8/06, Jarl Lindrud <[hidden email]> wrote:
>
> Hi all,
>
> I just thought I would announce that I've released v. 0.2 of RCF, a portable C++
> IPC framework. It makes extensive use of boost, including Boost.Threads, Boost.
> Serialization, and the recently accepted asio library, so maybe people on this
> list will find it of interest :)

Looks very interesting, but why the macros are needed?
Sorry if I missed the explanation in the url, I went very fast in it.
Are you aware of Boost.Interfaces (not submitted to boost for review
yet, I think).
Google pointed this URL for boost.interfaces: http://www.cdiggins.com/bil.html

>
> http://www.codeproject.com/threads/Rcf_Ipc_For_Cpp.asp
>
> /Jarl.

regards,
--
Felipe Magno de Almeida
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Daniel James
Felipe Magno de Almeida wrote:

> Are you aware of Boost.Interfaces (not submitted to boost for review
> yet, I think).
> Google pointed this URL for boost.interfaces: http://www.cdiggins.com/bil.html

I think the libraries official home is:

http://www.kangaroologic.com/interfaces/

But both Jonathan Turkanis and Christopher Diggins are busy with other
things nowadays.

Daniel

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Jarl Lindrud
In reply to this post by Felipe Magno de Almeida
Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> writes:

>
> Looks very interesting, but why the macros are needed?

The macros generate C++ class definitions, with user-specified member functions.
 You can't do that with templates. The use of macros, in this case, results in
lot less boilerplate code for the user to write.

> Sorry if I missed the explanation in the url, I went very fast in it.
> Are you aware of Boost.Interfaces (not submitted to boost for review
> yet, I think).
> Google pointed this URL for boost.interfaces: http://www.cdiggins.com/bil.html

I've had a look at it, and it builds on the same idea (static interfaces) that
RCF does. It's much more general, though. In RCF, the static interfaces are
focused on implementing IPC's.

The BIL library uses macros too, BTW, for the same purpose that RCF uses them.

I know there's a lot of skepticism towards macros in general, but in this
setting, the alternative is a 3rd party code generator, or do-it-by-hand
boilerplate coding.

Jarl.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Felipe Magno de Almeida
On 4/10/06, Jarl Lindrud <[hidden email]> wrote:
> Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> writes:
> >
> > Looks very interesting, but why the macros are needed?
>
> The macros generate C++ class definitions, with user-specified member functions.
>  You can't do that with templates. The use of macros, in this case, results in
> lot less boilerplate code for the user to write.

Wouldnt this be possible?

std::string foo(std::string);

rcf::server s(endpoint);
rcf::binder<std::string(std::string)> echo(&foo);

int main()
{
  s.register("IEcho", echo);
  server.run(); // blocks
  return;
}

If binder deserialize I believe it could call echo. Or am I missing
something? Probably so, since BIL uses macros the same way as RCF.

>
> > Sorry if I missed the explanation in the url, I went very fast in it.
> > Are you aware of Boost.Interfaces (not submitted to boost for review
> > yet, I think).
> > Google pointed this URL for boost.interfaces: http://www.cdiggins.com/bil.html
>
> I've had a look at it, and it builds on the same idea (static interfaces) that
> RCF does. It's much more general, though. In RCF, the static interfaces are
> focused on implementing IPC's.

Yes, what I wanted to say(but forgot to) is that RCF could use it. As
it could use shmem and asio for IPC. That would make rcf with a
cleaner interface.
BTW, I dont like very much the RCF namespace all in caps, it seems
like a macro. But that's just an aesthetic issue.

> The BIL library uses macros too, BTW, for the same purpose that RCF uses them.

Yes.

>
> I know there's a lot of skepticism towards macros in general, but in this
> setting, the alternative is a 3rd party code generator, or do-it-by-hand
> boilerplate coding.

Yes, I agree. I just wanted some sort of rationale about why macros
and what other alternatives are and why they are inferior.

>
> Jarl.

Thanks, very good library!
--
Felipe Magno de Almeida
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Felipe Magno de Almeida
In reply to this post by Daniel James
On 4/9/06, Daniel James <[hidden email]> wrote:

[snipped]

> I think the libraries official home is:
>
> http://www.kangaroologic.com/interfaces/

Thanks,

> But both Jonathan Turkanis and Christopher Diggins are busy with other
> things nowadays.

Too bad, there were things that even looked kind magical in this
library! It is very impressive.

>
> Daniel

--
Felipe Magno de Almeida
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Felipe Magno de Almeida
In reply to this post by Felipe Magno de Almeida
On 4/10/06, Felipe Magno de Almeida <[hidden email]> wrote:

[snipped]

> Wouldnt this be possible?

Sorry, I've missed that echo was in fact an object, not a simple RPC.
So, I think sharing objects wouldnt be possible because there isnt
compile-time reflections in C++ (not yet at least).
My use-cases usually involve only simple asynchronous RPCs, so I dont
know if they would fit in your library.
Sorry for the noise.

[snipped example]

> --
> Felipe Magno de Almeida
>

regards,
--
Felipe Magno de Almeida
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Jarl Lindrud
In reply to this post by Felipe Magno de Almeida
Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> writes:

> Wouldnt this be possible?
>
> std::string foo(std::string);
>
> rcf::server s(endpoint);
> rcf::binder<std::string(std::string)> echo(&foo);
>
> int main()
> {
>   s.register("IEcho", echo);
>   server.run(); // blocks
>   return;
> }
>

It certainly is possible, and it's something I want to implement, but as you say
it doesn't cover the case where you want to expose an interface consisting of
several functions.

> Yes, what I wanted to say(but forgot to) is that RCF could use it. As
> it could use shmem and asio for IPC. That would make rcf with a
> cleaner interface.
> BTW, I dont like very much the RCF namespace all in caps, it seems
> like a macro. But that's just an aesthetic issue.


Yeah, Rcf:: would be better. I've just gotten so used to the caps that I don't
see them :)

Regards,

Jarl



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Jarl Lindrud
In reply to this post by Felipe Magno de Almeida
Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> writes:

>
> On 4/10/06, Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> wrote:

> My use-cases usually involve only simple asynchronous RPCs, so I dont
> know if they would fit in your library.

Well, if you want, you can have just 1 function in your interface... As for
asynchronous, so far RCF supports the concept of oneway calls (you make the
call, it goes down the wire, and you forget about it). There is also a
publish/subscribe implementation in RCF that might suit your purposes.

HTH,

Jarl.



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Jeff Garland
In reply to this post by Jarl Lindrud
Jarl Lindrud wrote:

>> BTW, I dont like very much the RCF namespace all in caps, it seems
>> like a macro. But that's just an aesthetic issue.
>
>
> Yeah, Rcf:: would be better. I've just gotten so used to the caps that I don't
> see them :)

Yuk -- mixed case is even worse.  I'd suggest you either stick with RCF
or go to rcf.

Jeff
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Jeff Garland
In reply to this post by Felipe Magno de Almeida
Felipe Magno de Almeida wrote:

> BTW, I dont like very much the RCF namespace all in caps, it seems
> like a macro. But that's just an aesthetic issue.
>
>> The BIL library uses macros too, BTW, for the same purpose that RCF uses them.
>
> Yes.
>
>> I know there's a lot of skepticism towards macros in general, but in this
>> setting, the alternative is a 3rd party code generator, or do-it-by-hand
>> boilerplate coding.
>
> Yes, I agree. I just wanted some sort of rationale about why macros
> and what other alternatives are and why they are inferior.

During the development of BIL there was discussion of a 'template based'
idl that got rid of the macros (see the BIL docs).  It seemed likely
that it was doable, but I don't believe it ever made it  past the
experimental stage.  You might search the mail archives if you want to
know more.

Jeff
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

David Abrahams
In reply to this post by Jeff Garland
Jeff Garland <[hidden email]> writes:

> Jarl Lindrud wrote:
>
>>> BTW, I dont like very much the RCF namespace all in caps, it seems
>>> like a macro. But that's just an aesthetic issue.
>>
>>
>> Yeah, Rcf:: would be better. I've just gotten so used to the caps that I don't
>> see them :)
>
> Yuk -- mixed case is even worse.  I'd suggest you either stick with RCF
> or go to rcf.

At Boost we only use ALL_CAPS for macros; we use lowercase for
everything else.  So,

           rcf


--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [FYI] RCF 0.2

Marshall Clow
In reply to this post by Jarl Lindrud
>Hi all,
>
>I just thought I would announce that I've released v. 0.2 of RCF, a
>portable C++
>IPC framework. It makes extensive use of boost, including
>Boost.Threads, Boost.
>Serialization, and the recently accepted asio library, so maybe people on this
>list will find it of interest :)
>
>http://www.codeproject.com/threads/Rcf_Ipc_For_Cpp.asp
>
>/Jarl.

You should post this to the boost-interest mailing list.
        <mailto: [hidden email]>

--
-- Marshall (who moderates the boost-interest list)

Marshall Clow     Idio Software   <mailto:[hidden email]>

It is by caffeine alone I set my mind in motion.
It is by the beans of Java that thoughts acquire speed,
the hands acquire shaking, the shaking becomes a warning.
It is by caffeine alone I set my mind in motion.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost