You should definitely rewrite the ExternalFeedSimulator class and get rid of the included ExternalFeedProducer class.
The Data Adapter should receive all data and detect the changed data in order to send them to Lightstreamer.

However, to keep the Data Adapter simple for demo purpose, the Data Adapter can also forward all data to Lightstreamer, which will be responsible for detecting the changed data and only send them to the client. Please consider that this is not recommended in a production scenario.
The simplest structure might be:

Code:
constructor:
   create a map to hold all snapshots
      (let's create an IDictionary and call it _snaps)

method Start:
   start a new thread with the following behaviour:
      every 5 seconds:
         read the file
         for each stock:
            create an IDictionary to store all field name/value pairs
            associate the IDictionary to the stock name in _snaps
               (the previous association, if any, should be garbage collected)
            call onEvent on the listener and send the IDictionary 

method SendCurrentValues:
   get the IDictionary associated to the requested item name in _snap
   if found:
      call onEvent on the listener and send the IDictionary
   else
      call onEvent on the listener with an empty IDictionary