Search in sources :

Example 1 with RegisterNodesRequest

use of org.eclipse.milo.opcua.stack.core.types.structured.RegisterNodesRequest 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);
    });
}
Also used : OpcUaServer(org.eclipse.milo.opcua.sdk.server.OpcUaServer) RegisterNodesRequest(org.eclipse.milo.opcua.stack.core.types.structured.RegisterNodesRequest) ResponseHeader(org.eclipse.milo.opcua.stack.core.types.structured.ResponseHeader) UaException(org.eclipse.milo.opcua.stack.core.UaException) RegisterNodesResponse(org.eclipse.milo.opcua.stack.core.types.structured.RegisterNodesResponse) NodeId(org.eclipse.milo.opcua.stack.core.types.builtin.NodeId) RegisterNodesContext(org.eclipse.milo.opcua.sdk.server.api.services.ViewServices.RegisterNodesContext) Session(org.eclipse.milo.opcua.sdk.server.Session)

Aggregations

OpcUaServer (org.eclipse.milo.opcua.sdk.server.OpcUaServer)1 Session (org.eclipse.milo.opcua.sdk.server.Session)1 RegisterNodesContext (org.eclipse.milo.opcua.sdk.server.api.services.ViewServices.RegisterNodesContext)1 UaException (org.eclipse.milo.opcua.stack.core.UaException)1 NodeId (org.eclipse.milo.opcua.stack.core.types.builtin.NodeId)1 RegisterNodesRequest (org.eclipse.milo.opcua.stack.core.types.structured.RegisterNodesRequest)1 RegisterNodesResponse (org.eclipse.milo.opcua.stack.core.types.structured.RegisterNodesResponse)1 ResponseHeader (org.eclipse.milo.opcua.stack.core.types.structured.ResponseHeader)1