SDN Controller Programming Guide

69
BusMessagerepresents a bus message. Applications need to create a BusMessage and past it
to the interested applications via Bus Interface. Listener application can access various parameters
of a message via BusMessage object methods.
Please refer to the JavaDocs for BusFactory, Bus, BusListener interfaces for the detailed explanation
of the methods provided and corresponding functionality.
Bus Service Example:
import com.hp.dist.bus.Bus;
import com.hp.dist.bus.BusListenerId;
import com.hp.dist.bus.BusMessage;
import com.hp.sdn.ha.HAService;
...
@Component
public class BusUser extends BusListener {
private Bus bus = null;
private BusListenerId id = new BusListenerId("AppName", "Inst1");
@Reference(cardinality=ReferenceCardinality.MANDATORY_UNARY,
policy=ReferencePolicy.DYNAMIC)
private volatile HAService haService;
@Activate
public void activate(String instanceId) {
try {
bus = haService .getBus(BusUserBusTypes.class);
} catch (Exception e) {
...
}
Set <Integer> enumList = new HashSet<Integer>();
for (BusUserBusTypes e : EnumSet.allOf(BusUserBusTypes.class)) {
enumList.add(e.ordinal());
}
bus.registerListener(enumList, this);
}
@Deactivate
public void deactivate() {
bus.unregisterListener(id);
}
private void busMessagePostSample() {
BusMessage msg = new BusMessage(
BusUserBusType.BUS_USER_MSGTYPE_1, new byte[] {'0', '1'});
try {
bus.post(msg);
} catch (Exception e) {
...