Channel Interfaces

 
public interface IChannelManager : ICommunicationObject
{

MessageVersion MessageVersion { get; }
string Scheme { get; }
ReadOnlyCollection<IChannel> GetChannels();

T GetProperty<T>() class T : class;

}

 
public interface IChannelFactory : IChannelManager
{

IChannelFactory InnerChannelFactory { get; set; }

bool CanCreateChannel<TChannel>();
TChannel CreateChannel<TChannel>(string address);
TChannel CreateChannel<TChannel>(Uri address);
TChannel CreateChannel<TChannel>(EndpointAddress to);
TChannel CreateChannel<TChannel>(EndpointAddress to, Filter filter, int priority);

}

 
public interface IListenerFactory : IChannelManager
{

IListenerFactory InnerListenerFactory { get; set; }
Identity Identity { get; }
Uri Uri { get; }

bool CanCreateListener<TChannel>() where TChannel : class, IChannel;
IListener<TChannel> CreateListener<TChannel>() where TChannel : class, IChannel;
IListener<TChannel> CreateListener<TChannel>(Filter filter, int priority) where TChannel : class, IChannel;
IListener<TChannel> CreateListener<TChannel>(EndpointAddress endpointAddress) where TChannel : class, IChannel;
IListener<TChannel> CreateListener<TChannel>(EndpointAddress endpointAddress, Filter filter, int priority) where TChannel : class, IChannel;
ReadOnlyCollection<IListener> GetListeners();

void SetUri(Uri baseAddress, string relativeAddress);
void SetUri(Uri listenUri);
void SetUniqueUri();
void SetUniqueUri(string hostName);
void SetUniqueUri(string hostName, int port);

}