public static MulticastEventEmitter CreateInitialized(SupportedEncoding enc , bool validate , IEventTemplateDB db , IPAddress multicastAddress , int multicastPort , int multicastTtl , bool parallel) { if (db == null) throw new ArgumentNullException("db", "db cannot be null"); var result = new MulticastEventEmitter(); result.InitializeAll(enc, validate, db, multicastAddress, multicastPort, multicastTtl, parallel); return result; }
/// <summary> /// Creates an emitter from the configuration. /// </summary> /// <param name="name">name of the instance to create</param> /// <returns>the named instance if it exists within the configuration; /// otherwise null</returns> /// <remarks>Note that two subsequent calls to this method will return /// two separate instances of the configured instance.</remarks> public static IEventEmitter CreateFromConfig(string name) { LwesConfigurationSection config = LwesConfigurationSection.Current; if (config.Emitters == null) return null; EmitterConfigurationSection namedConfig = config.Emitters[name]; if (namedConfig == null) { Traceable.TraceData(typeof(EventEmitter), TraceEventType.Verbose, () => { return new object[] { String.Concat("EventEmitter - no configuration found for emitter: ", name) }; }); return null; } Traceable.TraceData(typeof(EventEmitter), TraceEventType.Verbose, () => { return new object[] { String.Concat("EventEmitter - configuration found for emitter: ", name) }; }); if (namedConfig.UseMulticast) { MulticastEventEmitter mee = new MulticastEventEmitter(); mee.InitializeAll(namedConfig.Encoding, false, EventTemplateDB.CreateDefault(), IPAddress.Parse(namedConfig.AddressString), namedConfig.Port, namedConfig.MulticastTimeToLive, namedConfig.UseParallelEmit); return mee; } else { throw new NotImplementedException("TODO: Support UnicastEventEmitter"); //UnicastEventEmitter mee = new UnicastEventEmitter(); //mee.Initialize(namedEmitterConfig.Encoding, false, EventTemplateDB.Default, // IPAddress.Parse(namedEmitterConfig.AddressString), namedEmitterConfig.Port, // namedEmitterConfig.MulticastTimeToLive, namedEmitterConfig.UseParallelEmit); //return mee; } }
private static IEventEmitter CreateFallbackEmitter() { Traceable.TraceData(typeof(EventEmitter), TraceEventType.Verbose, "EventEmitter - using fallback emitter"); MulticastEventEmitter emitter = new MulticastEventEmitter(); emitter.InitializeAll(SupportedEncoding.Default , Constants.DefaultPerformValidation , EventTemplateDB.CreateDefault() , Constants.DefaultMulticastAddress , Constants.CDefaultMulticastPort , Constants.CDefaultMulticastTtl , true); return emitter; }