Due to a ransomware attack, the wiki was reverted to a July 2022 version. . We apologize for the lack of a more recent valid backup.
...
Code Block | ||
---|---|---|
| ||
File : SfcService.java
package org.onosproject.yang.gen.v1.http.huawei.com;
import org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp.SfpInput;
import org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp.SfpOutput;
/**
* Abstraction of an entity which represents the functionality of sfc.
*/
public interface SfcService {
/**
* Service interface of sfp.
*
* @param inputVar input of service interface sfp
* @return sfpOutput output of service interface sfp
*/
SfpOutput sfp(SfpInput inputVar);
}
File : SfpInput.java
package org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp;
import java.util.BitSet;
/**
* Abstraction of an entity which represents the functionality of sfpInput.
*/
public interface SfpInput {
/**
* Identify the leaf of SfpInput.
*/
public enum LeafIdentifier implements org.onosproject.yang.model.LeafIdentifier{
/**
* Represents port.
*/
PORT(1);
private int leafIndex;
public int getLeafIndex() {
return leafIndex;
}
LeafIdentifier(int value) {
this.leafIndex = value;
}
}
/**
* Returns the attribute port.
*
* @return port value of port
*/
String port();
/**
* Returns the attribute valueLeafFlags.
*
* @return valueLeafFlags value of valueLeafFlags
*/
BitSet valueLeafFlags();
/**
* Sets the attribute port.
*
* @param port value of port
*/
void port(String port);
/**
* Checks if the leaf value is set.
*
* @param leaf leaf whose value status needs to checked
* @return result of leaf value set in object
*/
boolean isLeafValueSet(LeafIdentifier leaf);
}
File : DefaultSfpInput.java
package org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp;
import com.google.common.base.MoreObjects;
import java.util.BitSet;
import java.util.Objects;
import org.onosproject.yang.model.InnerModelObject;
/**
* Represents the implementation of sfpInput.
*/
public class DefaultSfpInput extends InnerModelObject implements SfpInput {
protected String port;
protected BitSet valueLeafFlags = new BitSet();
@Override
public String port() {
return port;
}
@Override
public BitSet valueLeafFlags() {
return valueLeafFlags;
}
@Override
public void port(String port) {
valueLeafFlags.set(LeafIdentifier.PORT.getLeafIndex());
this.port = port;
}
@Override
public int hashCode() {
return Objects.hash(port, valueLeafFlags);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof DefaultSfpInput) {
DefaultSfpInput other = (DefaultSfpInput) obj;
return
Objects.equals(port, other.port) &&
Objects.equals(valueLeafFlags, other.valueLeafFlags);
}
return false;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(getClass())
.omitNullValues()
.add("port", port)
.add("valueLeafFlags", valueLeafFlags)
.toString();
}
/**
* Creates an instance of defaultSfpInput.
*/
public DefaultSfpInput() {
}
@Override
public boolean isLeafValueSet(LeafIdentifier leaf) {
return valueLeafFlags.get(leaf.getLeafIndex());
}
}
File : Sfpoutput.java
package org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp;
import java.util.BitSet;
/**
* Abstraction of an entity which represents the functionality of sfpOutput.
*/
public interface SfpOutput {
/**
* Identify the leaf of SfpOutput.
*/
public enum LeafIdentifier implements org.onosproject.yang.model.LeafIdentifier{
/**
* Represents path.
*/
PATH(1);
private int leafIndex;
public int getLeafIndex() {
return leafIndex;
}
LeafIdentifier(int value) {
this.leafIndex = value;
}
}
/**
* Returns the attribute path.
*
* @return path value of path
*/
String path();
/**
* Returns the attribute valueLeafFlags.
*
* @return valueLeafFlags value of valueLeafFlags
*/
BitSet valueLeafFlags();
/**
* Sets the attribute path.
*
* @param path value of path
*/
void path(String path);
/**
* Checks if the leaf value is set.
*
* @param leaf leaf whose value status needs to checked
* @return result of leaf value set in object
*/
boolean isLeafValueSet(LeafIdentifier leaf);
}
File : DefaultSfpOutput.java
package org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp;
import com.google.common.base.MoreObjects;
import java.util.BitSet;
import java.util.Objects;
import org.onosproject.yang.model.InnerModelObject;
/**
* Represents the implementation of sfpOutput.
*/
public class DefaultSfpOutput extends InnerModelObject implements SfpOutput {
protected String path;
protected BitSet valueLeafFlags = new BitSet();
@Override
public String path() {
return path;
}
@Override
public BitSet valueLeafFlags() {
return valueLeafFlags;
}
@Override
public void path(String path) {
valueLeafFlags.set(LeafIdentifier.PATH.getLeafIndex());
this.path = path;
}
@Override
public int hashCode() {
return Objects.hash(path, valueLeafFlags);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof DefaultSfpOutput) {
DefaultSfpOutput other = (DefaultSfpOutput) obj;
return
Objects.equals(path, other.path) &&
Objects.equals(valueLeafFlags, other.valueLeafFlags);
}
return false;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(getClass())
.omitNullValues()
.add("path", path)
.add("valueLeafFlags", valueLeafFlags)
.toString();
}
/**
* Creates an instance of defaultSfpOutput.
*/
public DefaultSfpOutput() {
}
@Override
public boolean isLeafValueSet(LeafIdentifier leaf) {
return valueLeafFlags.get(leaf.getLeafIndex());
}
}
File : DefaultRpcHandler.java
package org.onosproject.yang.gen.v1.http.huawei.com;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.onosproject.config.RpcHandler;
import org.onosproject.config.RpcCommand;
import org.onosproject.config.RpcInput;
/**
* Represents the implementation of RPC handler.
*/
public class DefaultRpcHandler implements RpcHandler {
private ExecutorService executor;
@Override
public void executeRpc(Integer msgId, RpcCommand cmd, RpcInput input) {
executor = Executors.newSingleThreadExecutor();
executor.execute(new RpcExecuter(msgId, (RpcExtendedCommand) cmd, input));
}
/**
* Runnable capable of invoking the appropriate RPC command's execute method.
*/
public class RpcExecuter implements Runnable {
Integer msgId;
RpcExtendedCommand cmd;
RpcInput input;
/**
* Constructs a RPC executor for the given msg id, RPC command and
* RPC input.
*
* @param msgId msgId of the RPC message to be executed
* @param cmd RPC command to be executed
* @param input input data to the RPC command
*/
public RpcExecuter(Integer msgId, RpcExtendedCommand cmd, RpcInput input) {
this.msgId = msgId;
this.cmd = cmd;
this.input = input;
}
@Override
public void run() {
cmd.execute(input, msgId);
}
}
}
File : RegisterRpc.java
package org.onosproject.yang.gen.v1.http.huawei.com;
import org.onosproject.yang.gen.v1.http.huawei.com.sfc.SfpCommand;
import java.util.LinkedList;
import java.util.List;
import org.onosproject.config.RpcCommand;
import org.onosproject.config.RpcHandler;
import org.onosproject.config.DynamicConfigService;
import org.onosproject.yang.model.ModelConverter;
/**
* Represents the implementation of register RPC.
*/
public class RegisterRpc {
private List<RpcCommand> rpcCommands;
private RpcHandler rpcHandler;
private DynamicConfigService storeService;
private ModelConverter modelConverter;
private SfcService sfcService;
/**
* Constructs a register rpc for the given store service, mode converter and
* application service.
*
* @param store dynamic config service
* @param modelConverter model converter for convertion
* @param allService application service
*/
public RegisterRpc(DynamicConfigService store, ModelConverter modelConverter, SfcService sfcService) {
this.rpcCommands = new LinkedList<RpcCommand>();
this.rpcHandler = new DefaultRpcHandler();
this.storeService = store;
this.modelConverter = modelConverter;
this.sfcService = sfcService;
}
/**
* Registers RPC handler with dynamic config service.
*/
public void registerRpc() {
createRpcCommands();
for (RpcCommand rpcCommand : rpcCommands) {
storeService.registerHandler(rpcHandler, rpcCommand);
}
}
/**
* Creates RPC command for all the RPC.
*/
public void createRpcCommands() {
RpcCommand sfp = new SfpCommand(storeService, modelConverter, sfcService);
rpcCommands.add(sfp);
}
}
File : RpcExtendedCommand.java
package org.onosproject.yang.gen.v1.http.huawei.com;
import org.onosproject.yang.model.ResourceId;
import org.onosproject.config.RpcInput;
import org.onosproject.config.RpcCommand;
/**
* Abstract implementation of an RPC extended command.
*/
public abstract class RpcExtendedCommand extends RpcCommand {
/**
* Creates an instance of RPC extended command.
*
* @param cmdId of RPC command
*/
public RpcExtendedCommand(ResourceId cmdId) {
super(cmdId);
}
/**
* Executes the RPC command.
*
* @param input input data to the RPC command
* @param msgId of the RPC message to be executed
*/
public abstract void execute(RpcInput rpcInput, int msgId);
}
File : SfpCommand.java
package org.onosproject.yang.gen.v1.http.huawei.com.sfc;
import org.onosproject.yang.gen.v1.http.huawei.com.RpcExtendedCommand;
import org.onosproject.yang.gen.v1.http.huawei.com.SfcService;
import org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp.DefaultSfpOutput;
import org.onosproject.yang.gen.v1.http.huawei.com.sfc.sfp.SfpInput;
import org.onosproject.yang.model.ModelConverter;
import org.onosproject.yang.model.ResourceId;
import org.onosproject.config.RpcInput;
import org.onosproject.config.RpcOutput;
import org.onosproject.config.DynamicConfigService;
import org.onosproject.yang.model.ResourceData;
import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.runtime.DefaultResourceData;
import org.onosproject.yang.model.DefaultModelObjectData;
import static org.onosproject.config.RpcOutput.Status.RPC_SUCCESS;
/**
* Represents the implementation of sfp.
*/
public class SfpCommand extends RpcExtendedCommand {
private ModelConverter modelConverter;
private SfcService sfcService;
private DynamicConfigService storeService;
/**
* Constructs a sfp command for the given cmd id, model converter,
* application service.
*
* @param cmdId identifier of RPC command
* @param modelConverter model converter for convertion
* @param allService application service
*/
public SfpCommand(DynamicConfigService store, ModelConverter modelConverter, SfcService sfcService) {
super(getResourceId());
this.storeService = store;
this.modelConverter = modelConverter;
this.sfcService = sfcService;
}
@Override
public void execute(RpcInput rpcInput) {
}
/**
* Executes the RPC command.
*
* @param rpcInput input data to the RPC command
* @param msgId msgId of the RPC message to be executed
*/
public void execute(RpcInput rpcInput, int msgId) {
ResourceData inputData = DefaultResourceData.builder()
.resourceId(getResourceId())
.addDataNode(rpcInput.input()).build();
ModelObjectData inputMo = modelConverter.createModel(inputData);
SfpInput inputObject = ((SfpInput) inputMo.modelObjects().get(0));
DefaultSfpOutput outputObject = (DefaultSfpOutput) sfcService.sfp(inputObject);
ModelObjectData outputMo = DefaultModelObjectData.builder()
.addModelObject(outputObject).build();
ResourceData outputData = modelConverter.createDataNode(outputMo);
RpcOutput output = new RpcOutput(RPC_SUCCESS, outputData.dataNodes().get(0));
storeService.rpcResponse(msgId, output);
}
private static ResourceId getResourceId() {
return new ResourceId.Builder().addBranchPointSchema("/", null)
.addBranchPointSchema("SFP", "http://huawei.com").build();
}
}
|
Notification
Overview
The "notification" statement is used to define a notification. It takes one argument, which is an identifier, followed by a block of substatements that holds detailed notification information.
...