Boost logo

Boost :

From: Jeremy Pack (Jeremy.Pack_at_[hidden])
Date: 2006-08-30 15:14:54

> Isnt this quite close to the description of a database?
> regards
> Andy Little

>It specifically reminds me of tuple spaces

It could be used to implement either of these. It is especially similar
to tuple spaces.

However, it is meant for situations where a database or tuple spaces are
not precisely what is needed. If a database or tuple spaces is a good
fit for a project, there are more appropriate solutions than the code
that I am working on.

The reason I, personally, have developed this is for use in high speed
numerical software (which is why I want your opinions on its general
usefulness). I had the following design considerations:

1- I don't want to use any sort of concurrency mechanism UNLESS I decide
that the data in question should be accessible by multiple threads. That
flexibility is built in.

2- I wanted each consumer to be able to, if needed, have direct access
to the data in the repository. I did not want the software to be
required to do a lookup every time. (though it can)

3- I wanted to be able to implement the Observer pattern (callbacks when
data changes, etc.).

4- I wanted to minimize and easily track dependencies between classes.
The software I am working on that uses this libraries attempts to make
it so that most of the dependencies between classes are merely the
shared data.

As I alluded to in my previous post, a lot of the design considerations
were based on using it to facilitate the shared library class I have
been designing.

What I'm especially interested in are the following:

1- What major pitfalls do any of you see?
2- Am I replicating functionality that can easily be found elsewhere
(perhaps there is an implementation of tuple spaces that provides all of
the same functionality)?
3- What features would be desirable?

If there is enough interest, I will put up a web page about the project
and provide better details (and later interfaces and source code) about
the work. I just want to make sure that this is something that people
would be interested in using.

Thanks for the input thus far.

Jeremy Pack

"Michael Walter" <michael.walter_at_[hidden]> wrote in message
> It specifically reminds me of tuple spaces.
> Regards,
> Michael
> On 8/29/06, Andy Little <andy_at_[hidden]> wrote:
> >
> > "Jeremy Pack" <Jeremy.Pack_at_[hidden]> wrote in message
> >
> >
> > > The team_members are not dependent on the project_leader - they
> > > are depending on the information in the repository. The situation
> > > could be changed so that a certain team_member, or a higher level
> > > manager placed the information in the repository, and the
> > > team_member class would not need to be modified, as long as the
> > > meeting information structure was the same.
> > >
> > > As I've designed it so far, the library has the following
> > > features:
> > >
> > > -Data in the repository is indexed by strings
> > >
> > > -Type-safe (type-safety across shared libraries may not work on
> > > all platforms, because of usage of RTTI. If I work to have this
> > > library reviewed for boost, this will need to be discussed)
> > >
> > > -Thread-safety can be built into a variable in the repository
> > > (using boost.threads, variables can make automatic use of mutexes
> > > and such)
> > >
> > > -Functions or functors can be used to verify that each data item
> > > in the repository stays in a consistent state (for instance, the
> > > repository can check that a number does not leave a certain
> > > range).
> > >
> > > -A function or list of functions can be called when a value is
> > > updated - this can be used to implement the Observer pattern. Note

> > > that this could be used to provide for distributed repositories.
> >
> > Isnt this quite close to the description of a database?
> >
> > regards
> > Any Little
> >
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> >
> >
> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at