OpenZGY/C++ API and Internals (ALPHA)
Access seismic data stored in ZGY format.
Classes | Namespaces | Typedefs | Enumerations
file.h File Reference

Low level I/O, abstract layer. More...

#include <cstdint>
#include <vector>
#include <string>
#include <memory>
#include <functional>
#include "../declspec.h"
#include "timer.h"

Go to the source code of this file.

Classes

class  InternalZGY::Config
 
class  InternalZGY::FileConfig
 
class  InternalZGY::ReadRequest
 
class  InternalZGY::FileADT
 
class  InternalZGY::FileFactory
 
class  InternalZGY::FileCommon
 Implementation of some methods that might be shared. More...
 

Namespaces

 OpenZGY
 The entire public API is in this namespace.
 
 InternalZGY
 Implementation not visible to clients.
 

Typedefs

typedef std::vector< ReadRequest > InternalZGY::ReadList
 
typedef std::vector< ReadList > InternalZGY::ReadDoubleList
 

Enumerations

enum  OpenMode { Closed = 0, ReadOnly, ReadWrite, Truncate }
 
enum  UsageHint {
  Unknown = 0x00, TextFile = 0x01, Header = 0x10, Data = 0x20,
  Compressed = 0x40, Mixed = 0x40
}
 

Detailed Description

Low level I/O, abstract layer.

This file contains the base class for low level I/O either to on-prem data using the regular read and write methods of the OS or to a cloud back-end.

InternalZGY::Config:
InternalZGY::FileConfig(Config):
InternalZGY::SDConfig(Config):
Details such as user credentials etc. established when the
file is open. Specific to the backend type.
Note that there is currently no way to pass a configuration
object along with every read and write request. This might
have been useful for a server type application but would
require the config parameter to ripple across at least 50
existing methods. I doubt this would be worth the trouble.
InternalZGY::FileADT: <=== file.h
InternalZGY::LocalFile(FileADT): <=== file_local.h
InternalZGY::LocalFileOther(LocalFile): <=== file_local.h
InternalZGY::LocalFileLinux(LocalFile): <=== file_local.h
InternalZGY::SeismicStoreFile(FileADT): <=== file_sd.h
InternalZGY::SeismicStoreFileDelayedWrite(FileADT): <=== file_sd.h
Higher level code should only access the polymorphic FileADT
base class and the InternalZGY::FileFactory that creates an
instance of the desired type.