#region Copyright 2010-2014 by Roger Knapp, Licensed under the Apache License, Version 2.0 /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #endregion using System.Collections.Generic; namespace CSharpTest.Net.IpcChannel { /// /// Interface to provide a means of channel member registration and cross-process serialization /// of arguments for specific events. Implementations must be thread-safe even across process /// boundaries. /// public interface IIpcChannelRegistrar { /// Registers a member (instanceId) for the provided channel name void RegisterInstance(string channelName, string instanceId, string instanceName); /// Unregisters a member (instanceId) from the provided channel name void UnregisterInstance(string channelName, string instanceId); /// Enumerates the registered instanceIds for the provided channel name IEnumerable GetRegisteredInstances(string channelName); /// Enumerates the registered instanceIds who's name is instanceName for the provided channel name IEnumerable GetRegisteredInstances(string channelName, string instanceName); /// Enumerates the registered instanceIds who's name is instanceName for the provided channel name IEnumerable GetRegisteredInstances(string channelName, IEnumerable instanceNames); /// Serializes the arguments for the event being sent to the specified instance bool WriteParameters(string channelName, string instanceId, string eventName, string[] arguments); /// Retreives the arguments for the event being sent to the specified instance string[] ReadParameters(string channelName, string instanceId, string eventName); } }