示例#1
0
        public void Should_receive_all_events_published_as_a_stream()
        {
            ManualResetEvent signal  = new ManualResetEvent(false);
            ReaderHandler    handler = new ReaderHandler(signal);

            _streamingBus.SubscribeToReader(handler);

            IList <TestStreamEvent> streamEvents = new List <TestStreamEvent>();

            streamEvents.Add(new TestStreamEvent(1));
            streamEvents.Add(new TestStreamEvent(2));
            streamEvents.Add(new TestStreamEvent(3));

            using (IEventStream stream = _streamingBus.CreateStream(typeof(TestStreamEvent).FullName))
            {
                stream.BatchLimit = 2;

                foreach (TestStreamEvent @event in streamEvents)
                {
                    stream.Publish(@event);
                }
            }

            signal.WaitOne(TimeSpan.FromSeconds(10));

            Assert.That(handler.ReceivedEvents, Is.Not.Null, "The collection of events was not receieved before the timeout expired.");
            Assert.That(handler.ReceivedEvents.Length, Is.EqualTo(3));
            Assert.That(handler.ReceivedEvents.Select(e => e.Event), Is.Ordered.By("Sequence"));
        }
示例#2
0
 internal bool Initialize()
 {
     try
     {
         if (Process is null || Process.Id < 1 || Pid != 0)
         {
             BmpSeer.Instance.PublishEvent(new GameExceptionEvent(this, Pid, new BmpSeerException("Game process is null or already initialized.")));
             return(false);
         }
         Pid = Process.Id;
         InitInformation();
         _eventDedupeHistory     = new Dictionary <Type, long>();
         _eventQueueHighPriority = new ConcurrentQueue <SeerEvent>();
         _eventQueueLowPriority  = new ConcurrentQueue <SeerEvent>();
         _eventQueueOpen         = true;
         DatReader     = new ReaderHandler(this, new DatFileReaderBackend(1));
         MemoryReader  = new ReaderHandler(this, new SharlayanReaderBackend(1));
         NetworkReader = new ReaderHandler(this, new MachinaReaderBackend(1));
         _shouldRunEventQueueThread = true;
         _eventQueueThread          = new Thread(RunEventQueue)
         {
             IsBackground = true
         };
         _eventQueueThread.Start();
         BmpSeer.Instance.PublishEvent(new GameStarted(this, Pid));
     }
     catch (Exception ex)
     {
         BmpSeer.Instance.PublishEvent(new GameExceptionEvent(this, Pid, ex));
         return(false);
     }
     return(true);
 }
示例#3
0
        public TypeCommandRule(String id, T value, ReaderHandler <String> handler = null)
            : base(id, handler)
        {
            Value = value;

            Initialize(typeof(T) == typeof(Type) ? value as Type : value?.GetType() ?? typeof(T));
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            _basicHandler = new ReaderHandler(this);
            StartLoopTemperatureTimer();
            SetContentView(Resource.Layout.reader_main);
            _selectedIndex = Intent.GetIntExtra("index", 0);
            Init(_selectedIndex);
        }
示例#5
0
        public List <DatoExtraccion> ObtenerListaElementos(List <ConsultaDinamica> queryes)
        {
            string ConnStr = QueryHandler.ConeccionBBDD;
            List <DatoExtraccion> datos = new List <DatoExtraccion>();

            List <String> lista = new List <String>();

            using (OracleConnection connection = new OracleConnection(ConnStr))
            {
                OracleCommand cmd = null;
                connection.Open();
                foreach (var q in queryes)
                {
                    DatoExtraccion Tabla = new DatoExtraccion();

                    cmd = new OracleCommand(q.Query, connection);
                    foreach (var p in q.Parametros.Keys)
                    {
                        cmd.Parameters.Add(new OracleParameter(p, q.Parametros[p]));
                    }

                    Tabla.Tabla = q.Tabla;
                    using (var reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            foreach (var c in q.MeotodosColumnas)
                            {
                                if (Tabla.Columnas.Keys.Any(x => x.Equals(c.Key)))
                                {
                                    Tabla.Columnas[c.Key].Add(ReaderHandler.Read(reader, c.Key, c.Value));
                                }
                                else
                                {
                                    Tabla.Columnas.Add(c.Key, new List <string>()
                                    {
                                        ReaderHandler.Read(reader, c.Key, c.Value)
                                    });
                                }
                            }
                        }
                        reader.Close();
                    }

                    Tabla.Columnas = (new QueryTablas(Tabla)).DatosProcesados;

                    datos.Add(Tabla);
                }
            }
            return(datos);
        }
        public static void Main(string[] args)
        {
            IApplicationContext springContainer = ContextRegistry.GetContext();

            IStandardStreamingEventBus streamingEventBus = springContainer.GetObject(
                typeof(IStandardStreamingEventBus).FullName)
                as IStandardStreamingEventBus;
            IStreamingReaderHandler<ModernMajorGeneralMessage> handler = new ReaderHandler();
            streamingEventBus.SubscribeToReader(handler);

            Console.WriteLine("If all events have been received, hit the Enter Key to exit the program.");
            Console.Read();
            Environment.Exit(0);
        }
        virtual protected async Task MessageReceivedHandler(ServiceBusReceivedMessage receivedMessage)//, CancellationToken token)
        {
            try
            {
                // Process message from subscription.
                if (receivedMessage.ApplicationProperties.ContainsKey(MessageFactory.MessageModePropertyName))
                {
                    var prop = receivedMessage.ApplicationProperties[MessageFactory.MessageModePropertyName];
#endif
                    string propName = Convert.ToString(prop);
                    if (!string.IsNullOrEmpty(propName))
                    {
                        MessageModes messageMode;
                        bool parsed = Enum.TryParse(propName, out messageMode);
                        if (parsed)
                        {
                            EventMessage msg = null;
                            switch (messageMode)
                            {
                                case MessageModes.Simple:
                                    msg = ReaderHandler.GetSimpleMessage(receivedMessage, TypeToDeserialize, MessageDeserializer);
                                    MessageReceived(msg, receivedMessage);
                                    break;
                                case MessageModes.GZip:
                                    msg = await ReaderHandler.GetZippedMessage(receivedMessage, TypeToDeserialize, MessageDeserializer);
                                    MessageReceived(msg, receivedMessage);
                                    break;
                                case MessageModes.Chunk:
                                    msg = await ReaderHandler.GetChunkedMessage(receivedMessage, ChunkDictionary, TypeToDeserialize, MessageDeserializer);
                                    if (msg != null)
                                    {
                                        MessageReceived(msg, receivedMessage);
                                    }
                                    break;
                                case MessageModes.Storage:
                                    msg = await ReaderHandler.GetStoredMessage(receivedMessage, Storage, TypeToDeserialize, MessageDeserializer);
                                    MessageReceived(msg, receivedMessage);
                                    break;
                                default:
                                    break;
                            }
                        }
                    }
                }
            }
            catch
            {
                throw;
            }
        }
示例#8
0
            public void RunQuery(string query, ReaderHandler callback)
            {
                listOfHandlers += callback;
                try
                {
                    Connector = new MySqlConnection(ConnectionString);
                    Connector.Open();

                    Command = new MySqlCommand(query, Connector);
                    Reader  = Command.ExecuteReader();

                    listOfHandlers(Reader);//the caller can use reader object before connection is closed

                    Connector.Close();
                }
                catch (Exception ex) { throw ex; }
            }
示例#9
0
        internal bool Initialize()
        {
            try
            {
                if (Process is null || Process.Id < 1 || Pid != 0)
                {
                    BmpSeer.Instance.PublishEvent(new GameExceptionEvent(this, Pid,
                                                                         new BmpSeerException("Game process is null or already initialized.")));
                    return(false);
                }

                Pid = Process.Id;
                InitInformation();

                _eventDedupeHistory     = new Dictionary <Type, long>();
                _eventQueueHighPriority = new ConcurrentQueue <SeerEvent>();
                _eventQueueLowPriority  = new ConcurrentQueue <SeerEvent>();
                _eventQueueOpen         = true;

                DatReader     = new ReaderHandler(this, new DatFileReaderBackend(1));
                MemoryReader  = new ReaderHandler(this, new SharlayanReaderBackend(1));
                NetworkReader = new ReaderHandler(this, new MachinaReaderBackend(1));

                _eventTokenSource = new CancellationTokenSource();
                Task.Factory.StartNew(() => RunEventQueue(_eventTokenSource.Token), TaskCreationOptions.LongRunning);

                BmpSeer.Instance.PublishEvent(new GameStarted(this, Pid));
            }
            catch (Exception ex)
            {
                BmpSeer.Instance.PublishEvent(new GameExceptionEvent(this, Pid, ex));
                return(false);
            }

            return(true);
        }
示例#10
0
 public TypeCommandRule(T value, ReaderHandler <String> handler = null)
     : this(value?.GetType().Name ?? typeof(T).Name, value, handler)
 {
 }
 public StringNestedCommandRule(String id, ReaderHandler <String> handler = null)
     : base(id, handler)
 {
 }
示例#12
0
 public CommandRule(T id, ReaderHandler <T> handler = null)
     : base(handler)
 {
     Id = id;
 }
示例#13
0
 public static System.Collections.Generic.List <T> ExecuteReaderWithList <T>(string connectionString, CommandType cmdType, string cmdText, ReaderHandler <T> handler, params OracleParameter[] commandParameters)
 {
     System.Collections.Generic.List <T> l = new System.Collections.Generic.List <T>();
     using (OracleDataReader rdr = ExecuteReader(connectionString, cmdType, cmdText, commandParameters))
     {
         while (rdr.Read())
         {
             T value = handler(rdr);
             l.Add(value);
         }
         return(l);
     }
 }
示例#14
0
 public DefaultCommandRule(T id, ReaderHandler <T> handler = null, IEqualityComparer <T> comparer = null)
     : base(id, handler, comparer)
 {
 }
示例#15
0
 public static T ExecuteReaderWithOneResult <T>(string connectionString, CommandType cmdType, string cmdText, ReaderHandler <T> handler, params OracleParameter[] commandParameters)
 {
     using (OracleDataReader rdr = ExecuteReader(connectionString, cmdType, cmdText, commandParameters))
     {
         if (rdr.Read())
         {
             T value = handler(rdr);
             return(value);
         }
         return(default(T));
     }
 }
示例#16
0
 public NestedCommandRule(T id, ReaderHandler <T> handler = null, IEqualityComparer <T> comparer = null)
     : base(id)
 {
     _rules         = new IndexDictionary <T, ICommandRule <T> >(comparer);
     DefaultHandler = handler;
 }
示例#17
0
 protected ConsoleRule(ReaderHandler <T> handler)
 {
     Handler = handler ?? RunAsync;
 }