|
Boost : |
From: Ian McCulloch (ianmcc_at_[hidden])
Date: 2004-08-31 06:00:24
Batov, Vladimir wrote:
> In my spare time I've been fooling around with an implementation of an
> infrastructure that would allow workflow to be configured at run-time.
>
> A well-defined process flow is clearly easier to configure/implement at
> compile-time using the conventional means (coding). Say,
>
> bool
> my_process_flow()
> {
> if (call_a() == success/true)
> {
> return call_b();
> }
> else
> {
> return call_c();
> }
> }
>
> However, to be able to quickly adjust to changing customer requirements
> and/or procedures we might decide to provide a set of building blocks
> (like call_a, call_b, call_c) that could be assembled into a certain
> process flow at run-time. Maybe even give that ability to the customer
> themselves through, say, GUI interface.
...
> Now after such a long and boring introduction to my actual question. :-)
> Is there any interest in having/developing such an infrastructure under
> the boost umbrella? Any input is welcomed even if you think it is a
> crappy idea.
I am not sure whether I understand what this is about ('workflow' and
'customer' being two words I have never had cause to associate with any
programs I write ;), but is this applicable to the checkpointing problem?
ie, I have a long-running job running in a batch queue, and it gets a
signal to terminate (say, by the CPU or wall-clock time exceeding some
limit, or perhaps an actual unix signal), so it needs to checkpoint and
submit a continuation job to the queue. The serialization part is
straightforward, but it needs to break out of the main loop at some point
and then restart it later. I currently do this with a 'TaskQueue', which
is simply a queue of polymorphic (and serializable!) objects with a 'Run'
function. Task::Run() itself returns a TaskQueue which is appended to the
front of the queue. If this relates in any way to what you are doing, then
YES, I would like a much cleaner and boost-ified way of doing it.
Is boost::function serializable?
Cheers,
Ian McCulloch
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk