public HarvesterListener(String initalizeData) { initalizeData = initalizeData ?? String.Empty; machineName = Environment.MachineName; domain = AppDomain.CurrentDomain.FriendlyName; var parsedInitializeData = ParseInitializationData(initalizeData); var binding = parsedInitializeData.ContainsKey("Binding") ? parsedInitializeData["Binding"] : @"\\.\pipe\Harvester"; var mutexName = parsedInitializeData.ContainsKey("Mutex Name") ? parsedInitializeData["Mutex Name"] : "HarvesterMutex"; var bufferType = parsedInitializeData.ContainsKey("Buffer Type") ? parsedInitializeData["Buffer Type"] : "NamedPipeBuffer"; switch (bufferType) { case "SharedMemoryBuffer": messageBuffer = new SharedMemoryBuffer(binding, OutputDebugString.BufferSize); messageWriter = new OutputDebugStringWriter(mutexName, messageBuffer); break; case "NamedPipeBuffer": messageBuffer = new NamedPipeClientBuffer(".", binding); messageWriter = new PipeMessageWriter(mutexName, messageBuffer); break; default: throw new NotSupportedException(String.Format(Localization.BufferTypeNotSupported, bufferType)); } }
public override void ActivateOptions() { base.ActivateOptions(); switch (BufferType) { case "SharedMemoryBuffer": MessageBuffer = new SharedMemoryBuffer(Binding, OutputDebugString.BufferSize); MessageWriter = new OutputDebugStringWriter(MutexName, MessageBuffer); break; case "NamedPipeBuffer": MessageBuffer = new NamedPipeClientBuffer(".", Binding); MessageWriter = new PipeMessageWriter(MutexName, MessageBuffer); break; default: throw new NotSupportedException(String.Format(Localization.BufferTypeNotSupported, BufferType)); } }
/// <summary> /// Initializes a new instance of <see cref="HarvesterListener"/>. /// </summary> /// <param name="initializeData">The message buffer initialization string (i.e., Binding=\\.\pipe\Harvester; Buffer Type=NamedPipeBuffer; Mutex Name=HarvesterMutex;)</param> public HarvesterListener(String initializeData) { var parsedInitializeData = ParseInitializationData(initializeData ?? String.Empty); var binding = parsedInitializeData.ContainsKey("Binding") ? parsedInitializeData["Binding"] : @"\\.\pipe\Harvester"; var mutexName = parsedInitializeData.ContainsKey("Mutex Name") ? parsedInitializeData["Mutex Name"] : "HarvesterMutex"; var bufferType = parsedInitializeData.ContainsKey("Buffer Type") ? parsedInitializeData["Buffer Type"] : "NamedPipeBuffer"; captureIdentity = !parsedInitializeData.ContainsKey("Capture Identity") || Boolean.Parse(parsedInitializeData["Capture Identity"]); switch (bufferType) { case "SharedMemoryBuffer": messageBuffer = new SharedMemoryBuffer(binding, OutputDebugString.BufferSize); messageWriter = new OutputDebugStringWriter(mutexName, messageBuffer); break; case "NamedPipeBuffer": messageBuffer = new NamedPipeClientBuffer(".", binding); messageWriter = new PipeMessageWriter(mutexName, messageBuffer); break; default: throw new NotSupportedException(String.Format(Localization.BufferTypeNotSupported, bufferType)); } }