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;
 }
Example #2
0
        /// <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;
            }
        }
Example #3
0
        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;
        }