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

Meta data read/write. More...

#include "../declspec.h"
#include "../exception.h"
#include "file.h"
#include "enum.h"
#include "lookuptable.h"
#include <cstdint>
#include <memory>
#include <ostream>
#include <sstream>
#include <iomanip>
#include <vector>
#include <cstring>

Go to the source code of this file.

Classes

class  InternalZGY::ZgyInternalWriterArgs
 Internal counterpart to OpenZGY::ZgyWriterArgs. More...
 
class  InternalZGY::IHeaderAccess
 
class  InternalZGY::IFileHeaderAccess
 
class  InternalZGY::IOffsetHeaderAccess
 
class  InternalZGY::IInfoHeaderAccess
 
class  InternalZGY::IHistHeaderAccess
 
class  InternalZGY::ILookupTableAccess
 
class  InternalZGY::HeaderAccessFactory
 
class  InternalZGY::ZgyInternalMeta
 

Namespaces

 InternalZGY
 Implementation not visible to clients.
 

Detailed Description

Meta data read/write.

The meta data in an OpenZGY file is broken down into multiple headers. In this file, a set of classes for each header type is responsble for reading and decoding that header. A lot of the code is inlined to make it easier to maintain. Keeping everything that needs to be updated close together.

class FooHeaderV1POD
class FooHeaderV1POD etc.

class IFooHeaderAccess : public IHeaderAccess

class FooHeaderAccess : public IHeaderAccess

class FooHeaderV1Access : public FooHeaderAccess
class FooHeaderV2Access : public FooHeaderAccess
etc.

HeaderAccessFactory::createFoo(std::uint32_t version)

This file was initially generated with some help from openzgy.tools.cppmeta. But that was only a starting point. If major changes are needed to the format (will hopefully never happen) then the code generator might still be useful. otherwise this file is expected to be maintained by hand.