| /******************************************************************************* |
| * Copyright (c) 2004 Composent, Inc., Peter Nehrer, Boris Bokowski. All rights reserved. This |
| * program and the accompanying materials are made available under the terms of |
| * the Eclipse Public License v1.0 which accompanies this distribution, and is |
| * available at http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: Composent, Inc. - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.ecf.datashare; |
| |
| import java.util.Map; |
| import org.eclipse.ecf.core.identity.ID; |
| import org.eclipse.ecf.core.util.ECFException; |
| |
| /** |
| * Channel container entry point adapter. This interface is an adapter to allow |
| * providers to expose channels to clients. It may be used in the following way: |
| * <p> |
| * |
| * <pre> |
| * IChannelContainerAdapter channelcontainer = (IChannelContainerAdapter) container.getAdapter(IChannelContainerAdapter.class); |
| * if (channelcontainer != null) { |
| * // use channelcontainer |
| * ... |
| * } else { |
| * // container does not support channel container functionality |
| * } |
| * </pre> |
| * |
| */ |
| public interface IChannelContainerAdapter extends |
| IAbstractChannelContainerAdapter { |
| /** |
| * Create a new channel within this container |
| * |
| * @param channelID |
| * the ID of the new channel. Must not be <code>null</code>. |
| * @param listener |
| * a listener for receiving messages from remotes for this |
| * channel. May be <code>null</code> if no listener is to be |
| * notified. |
| * @param properties |
| * a Map of properties to provide to the channel. May be |
| * <code>null</code>. |
| * @return IChannel the new IChannel instance |
| * @throws ECFException |
| * if some problem creating IChannel instance |
| */ |
| public IChannel createChannel(ID channelID, IChannelListener listener, |
| Map properties) throws ECFException; |
| |
| /** |
| * Create a new channel within this container |
| * |
| * @param newChannelConfig |
| * the configuration for the newly created channel. Must not be |
| * <code>null</code>. |
| * @return IChannel the new IChannel instance. Will not be <code>null</code>. |
| * @throws ECFException |
| * if some problem creating IChannel instance |
| */ |
| public IChannel createChannel(IChannelConfig newChannelConfig) |
| throws ECFException; |
| } |