Skip to content

introduce DataSource class to handle all channel/data info

The point of this abstraction is to make it easier to create new data sources that aren't based on the standard frame/diskcache paradigm traditionally used by the NDS servers. All information about the data backend is abstracted by this class, including all information about channels and how data is retrieved, with public interfaces to retrieve channel info and data.

In this first iteration we move all channel/data functions out of the NDS2ServerLogic class, and into the new DataSource class, with minimal modification to any of the public interfaces or logic. More work is needed to:

  • not require the NDS2Server to have to know about service interfaces needed by the DataSource (channel_info, frame_lookup).

  • move memcache usage back up to the NDS2Server level so that data can be cached regardless of the source.

  • not require "channel_*_passthrough" methods that require the DataSource to know/speak the NDS protocol.

  • move "epoch" stuff into DataSource, or preferably just purge it entirely since it's a useless public interface.

  • define/document the interface between the server and the data source.

Edited by Jameson Rollins

Merge request reports