/**
* Provides a market data adapter that can read the historical market data from a CSV file (similar to the CSV Emitter
* module).
*
* <p>There is no assumed order or format for the CSV file. Instead, users should implement a subclass of {@link CSVFeedEventTranslator}
* that knows how to parse the data according to the particulars of a given CSV file. The subclass can be compiled and placed on the classpath
* or an instantiated object can be constructed and passed to the {@link CSVFeedCredentials} constructor.</p>
*
* <p>To use the <code>CSVFeed</code>, create a {@link MarketDataRequest} and pass it to the feed similarly to how other feeds process
* market data requests. This can be via the Strategy API, in which case the request should use
* {@link org.marketcetera.marketdata.MarketDataRequestBuilder#withProvider(String)} and specify {@link CSVFeedModuleFactory#getProviderDescription()}
* or by using the module framework and passing a <code>MarketDataRequest</code> to {@link CSVFeedModule#requestData(org.marketcetera.module.DataRequest, org.marketcetera.module.DataEmitterSupport)}.</p>
*
* <p>To specify a file to read from, pass the absolute or relative path of the file as a symbol in a market data request with
* {@link org.marketcetera.marketdata.MarketDataRequestBuilder#withSymbols(String)}. Each "symbol" in this context should be a distinct file
* name. All files will be read more or less simultaneously and the lines passed to the event translator described above. The market data
* request will stop when all files have been read.</p>
*
* <p>One should set the Esper CEP module to <em>external time</em> if using this module to replay historical data.</p>
*/
package org.marketcetera.marketdata.csv;