use of org.eclipse.milo.opcua.stack.core.types.structured.RegisterNodesResponse in project milo by eclipse.
the class DefaultViewServiceSet method onRegisterNodes.
@Override
public void onRegisterNodes(ServiceRequest service) throws UaException {
OpcUaServer server = service.attr(ServiceAttributes.SERVER_KEY).get();
Session session = service.attr(ServiceAttributes.SESSION_KEY).get();
RegisterNodesRequest request = (RegisterNodesRequest) service.getRequest();
List<NodeId> nodeIds = l(request.getNodesToRegister());
if (nodeIds.isEmpty()) {
throw new UaException(StatusCodes.Bad_NothingToDo);
}
if (nodeIds.size() > server.getConfig().getLimits().getMaxNodesPerRegisterNodes().intValue()) {
throw new UaException(StatusCodes.Bad_TooManyOperations);
}
RegisterNodesContext context = new RegisterNodesContext(server, session);
server.getAddressSpaceManager().registerNodes(context, nodeIds);
context.getFuture().thenAccept(registeredNodeIds -> {
ResponseHeader header = service.createResponseHeader();
RegisterNodesResponse response = new RegisterNodesResponse(header, registeredNodeIds.toArray(new NodeId[0]));
service.setResponse(response);
});
}
Aggregations