All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.coos.messaging.ChannelServer Maven / Gradle / Ivy

There is a newer version: 1.3.1
Show newest version
/**
 * COOS - Connected Objects Operating System (www.connectedobjects.org).
 *
 * Copyright (C) 2009 Telenor ASA and Tellu AS. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This library is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see .
 *
 * You may also contact one of the following for additional information:
 * Telenor ASA, Snaroyveien 30, N-1331 Fornebu, Norway (www.telenor.no)
 * Tellu AS, Hagalokkveien 13, N-1383 Asker, Norway (www.tellu.no)
 */
package org.coos.messaging;

import java.util.Hashtable;

import org.coos.messaging.Connectable;
import org.coos.messaging.Service;
import org.coos.messaging.Transport;
import org.coos.messaging.routing.RouterChannel;
import org.coos.messaging.routing.RouterSegment;

/**
 * @author Knut Eilif Husa, Tellu AS ChannelServer. This class is responsible
 *         for receiving requests for establishing new Channels
 */
public interface ChannelServer extends Service {

	/**
	 * This class is called during the initialization phase to set the
	 * LinkedProcessors (i.e. Links and transports) that requests to connect
	 */
	void initializeChannel(Transport transport);

	/**
	 * The channel mappings contains the type of channel that is instantiated on
	 * a channel connect request. The mapping is based on a regexp on the uuid.
	 * In case the bus allocates uuid (which often will be the case for
	 * connecting plugins), the regexp should be based on the segment that the
	 * channel connects on
	 * 
	 * @param channelMappings
	 *            the channel Mappings
	 */
	void setChannelMappings(Hashtable channelMappings);

	/**
	 * Method for adding a channel Mapping
	 * 
	 * @param uuidRegexp
	 *            Regular expression for mathing a uuid to a channel type
	 * @param channel
	 *            The channel prototype
	 */
	void addChannelMapping(String uuidRegexp, RouterChannel channel);

	/**
	 * Method setting the linkManager. The Linkmanager recevies the connecting
	 * links
	 * 
	 * @param linkManager
	 *            the linkmanager
	 */
	void setLinkManager(LinkManager linkManager);


	/**
	 * Sets the COOS instance name of the instance this Channel Server is
	 * contained within
	 * 
	 * @param coosInstance
	 *            the coos instance name
	 */
	void setCOOSInstance(COOS coosInstance);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy