Ejemplo n.º 1
0
        /// <summary>
        /// Open file for reading and then read one line at a time calling the event processing delegate (function pointer) to
        /// process the event
        /// </summary>
        /// <remarks>
        /// Streaming events sequentially from a file is slightly faster than loading all events into an array before processing.
        /// It also reduces the memory required when processing a large file.
        /// </remarks>
        /// <param name="fileName">Event file name</param>
        /// <param name="eventProcessingFunction">Delegate (function pointer) for the method that will process the events</param>
        internal void StreamFromFile(string fileName, ApiEventFeedReplay.EventReceivedHandler eventProcessingFunction)
        {
            StreamReader file = null;

            try
            {
                file = new StreamReader(fileName);
                string line;
                do
                {
                    line = file.ReadLine();
                    if (line != null)
                    {
                        Spark.Event eventItem = ApiEventReaderWriter.Parse(line);
                        eventProcessingFunction(eventItem);
                    }
                } while (line != null);
            }
            finally
            {
                if (file != null)
                {
                    file.Close();                   //Close file stream even if there is an error
                }
            }
        }
        /// <summary>
        /// Initiate event reader
        /// </summary>
        private void ExecuteEventReader()
        {
            ApiEventReaderWriter reader = new ApiEventReaderWriter();

            reader.StreamFromFile(FileName, EventRecieved);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initiate data feed
        /// </summary>
        public override void Execute()
        {
            ApiEventReaderWriter reader = new ApiEventReaderWriter();

            reader.StreamFromFile(FileName, EventRecieved);
        }