/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.api; import de.rcenvironment.core.communication.common.InstanceNodeId; import de.rcenvironment.core.communication.common.InstanceNodeSessionId; import de.rcenvironment.core.communication.common.LogicalNodeId; import de.rcenvironment.core.communication.common.LogicalNodeSessionId; import de.rcenvironment.core.communication.common.ResolvableNodeId; /** * Configuration management service for the local platform instance. * * TODO >8.0 rename/refactor * * @author Doreen Seider * @author Robert Mischke */ public interface PlatformService { /** * Returns information about this platform's identity, including a persistent unique identifier, and optionally, a public key and an * end-user display name for this platform. * * @return an immutable identity information object */ // disabled for 3.0.0 migration - misc_ro, June 2013 // NodeIdentityInformation getIdentityInformation(); /** * @return the persistent {@link InstanceNodeId} of the local instance */ InstanceNodeId getLocalInstanceNodeId(); /** * @return the current {@link InstanceNodeSessionId} of the local instance */ InstanceNodeSessionId getLocalInstanceNodeSessionId(); /** * @return the default {@link LogicalNodeId} for the local instance */ LogicalNodeId getLocalDefaultLogicalNodeId(); /** * @return the default {@link LogicalNodeSessionId} for the local instance */ LogicalNodeSessionId getLocalDefaultLogicalNodeSessionId(); /** * @return A new {@link LogicalNodeId} based on the given qualifier. For different qualifiers, generated {@link LogicalNodeId}s should * be collision-free. To achieve this, this method may impose length or character restrictions for accepted qualifiers. * @param qualifier the string by which the generated logical id can be recognized (in the sense of "reconnected to") after the local * instance is restarted */ LogicalNodeId createRecognizableLocalLogicalNodeId(String qualifier); /** * @return A new {@link LogicalNodeId} with an automatically-generated logical node part. {@link LogicalNodeId}s generated by this * method are expected to be virtually collision-free among each other, and guaranteed to be collision-free with ids generated * by {@link #createRecognizableLocalLogicalNodeId(String)}. */ LogicalNodeId createTransientLocalLogicalNodeId(); /** * Checks if the specified {@link InstanceNodeSessionId} represents the local node. * * TODO >=8.0.0 - this is potentially unsafe in case of instance id collisions; check if this can be an actual problem * * @param nodeId the {@link InstanceNodeSessionId} to verify * @return true if the given {@link InstanceNodeSessionId} matches the local node's id */ boolean matchesLocalInstance(ResolvableNodeId nodeId); }