/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.channel; /** * Factory interface for generating unique connection ids. * * The design rationale is that (a) only successful {@link MessageChannelIdFactory}s should trigger * an id generation, (b) transports provide their own connection implementations, and (c) transports * should be able to make connection objects immutable. This is best achieved by passing an id * factory to the transport implementations. * * @author Robert Mischke */ public interface MessageChannelIdFactory { /** * Generates a new, unique id. Uniqueness is only required within the same JVM. All * implementations must be thread-safe. * * @param selfInitiated whether the (logical) connection resulted from a low-level connection * initiated by the local node * * @return the new id */ String generateId(boolean selfInitiated); }