Boost logo

Boost :

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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk