GeneralizedIOStrategy - softwareunderground/xsdf GitHub Wiki
Generalized IO Strategy
All that matters to the user of our tools is access that is easy to use and fast. Only when data management comes into play actual storage methods will become an issue. The central issue is therefore not how things are done, but more what our tools will deliver.
The consequence is that our tool can define only what services will be available to the outside world, and leave anything else to click-on modules that do the actual work. And that's exactly the core concept we want to pursue.
But, we also know that just delivering interface specifications will simply not do. Having a nice console with buttons you can push is worth nothing without stuff that actually does something. So we envisage at least one 'internal' very fast and optimized storage format, and SEG-Y read and write capabilities. These have to be delivered for the project to be any kind of success.
Having said that, we can still design as if the availability of any specific input- or output storage modules is irrelevant. The only thing we're bound to is that we should think about what each of the actual input and output 'adapters' will be able to deliver.