01: /*
02: * <copyright>
03: *
04: * Copyright 1997-2004 BBNT Solutions, LLC
05: * under sponsorship of the Defense Advanced Research Projects
06: * Agency (DARPA).
07: *
08: * You can redistribute this software and/or modify it under the
09: * terms of the Cougaar Open Source License as published on the
10: * Cougaar Open Source Website (www.cougaar.org).
11: *
12: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
13: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
14: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
15: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
16: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23: *
24: * </copyright>
25: */
26:
27: package org.cougaar.core.qos.ca;
28:
29: import org.cougaar.core.service.BlackboardService;
30:
31: /**
32: * This interface is the common base of {@link Receptacle}s and {@link
33: * Facet}s. The processing of these two interfaces are identical, but
34: * the accessibility is not: the methods here will be invoked on a
35: * Facet by a {@link CoordinationArtifact}, with its Blackboard, while
36: * the methods will be invoked on a Receptacle by a {@link
37: * RolePlayer}, with its Blackboard. Note that, unlike 'Facet' and
38: * 'Receptacle', this interface is <i>not</i> analagous to the
39: * 'Executor' entity in the CORBA Component Model, But it seemed like
40: * a good name anyway.
41: */
42: public interface BlackboardExecutor {
43: /**
44: * Process any queued facts. This should be run in a blackboard
45: * transaction.
46: */
47: public void processFactBase(BlackboardService blackboard);
48:
49: /**
50: * Handle subscription updates. This should be run in a blackboard
51: * transaction.
52: */
53: public void execute(BlackboardService blackboard);
54:
55: /**
56: * Handle blackboard subscriptions. This should be run in a
57: * blackboard transaction.
58: */
59: public void setupSubscriptions(BlackboardService blackboard);
60:
61: }
|