1 package org.opentrafficsim.imb.observers;
2
3 import nl.tno.imb.TEventEntry;
4
5 /**
6 * <p>
7 * Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
8 * BSD-style license. See <a href="http://opentrafficsim.org/node/13">OpenTrafficSim License</a>.
9 * <p>
10 * @version $Revision$, $LastChangedDate$, by $Author$,
11 * initial version Aug 19, 2016 <br>
12 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
13 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
14 * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
15 */
16 public interface Observer
17 {
18 /**
19 * Compose a message containing the specified objects and send it to recipients.
20 * @param eventName String; publication
21 * @param eventType int; one of NEW, CHANGE, or DELETE
22 * @param args Object[]; the objects to send
23 * @return boolean; true on success, false on failure
24 * @throws Exception when the event name is not a registered publication
25 */
26 boolean postMessage(String eventName, int eventType, Object[] args) throws Exception;
27
28 /** New object was created. */
29 int NEW = TEventEntry.ACTION_NEW;
30
31 /** The object changed state. */
32 int CHANGE = TEventEntry.ACTION_CHANGE;
33
34 /** The object was destroyed. */
35 int DELETE = TEventEntry.ACTION_DELETE;
36
37 }