$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: scott (scottw_at_[hidden])
Date: 2004-03-02 23:10:24
> [mailto:boost-bounces_at_[hidden]]On Behalf Of Matthew Vogt
>
> > Ok. Well there is obviously some sort of networking
> infrastructure including
> > a event dispatching as well. Again, these are items that
> are needed in boost,
> > have had prior work (in the sandbox), but aren't ready for
> primetime yet.
>
> This in particular seems to be a big stretch of scope. I
> think it would be
> brave to try to put network-transparent messaging into
> boost.threads, without
> first going through an inter-thread messaging stage.
Works for me.
<snip>
>
> Otherwise, Scott and I have been discussing interactions
> based purely on
> message passing between objects, utilising a separation
> between 'servant'
> and 'scheduler' that is reminiscent of the active object
Yep. And the following is pasted in from the
other thread; thought I would try to pull it
all together. Apologies for loss of indentation.
> Anyway, I think some reasonably clean syntax can be found to bind both the
> arguments and the return address into the function call, provided that the
> return address is a method in the invoking object.
>
Well, after some fiddling, the best I can manage is:
class SomeClass
{
public:
std::string value(int id) { return "foo"; }
}
class ThatServant : public reactive<ThatServant>, private SomeClass
{
public:
ThatServant() : getValue(&ThatServant::value, this) {}
method<std::string (int)> getValue;
};
class ThisServant : public reactive<ThisServant>
{
public:
void findAndStoreValue(ThisServant& other, int id)
{
(return_to(&ThisServant::storeValue, this)) = other.getValue(int);
}
private:
void storeValue(std::string value) { ... }
}
Got that. I have to leave it up to you. We seem to have worked through one
major area of conceptualizing; schedulers and servants. These take a
big whip to the business of taming threads. We are now at the point
of deciding how these beasts will communicate amongst themselves. Is it
to be "method-based" or "message-based"? I can see that your baby will
sing but so does messaging.
If we can agree on something here then we would have a complete target for
something built on boost.thread, i.e. there are no other "areas"?
Cheers,
Scott