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.routing.RouterChannel;


/**
 * @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