FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Classes | Public Member Functions | Public Attributes | List of all members
Fiber::StorageTransformations Class Reference
Inheritance diagram for Fiber::StorageTransformations:
MemCore::Interface< StorageTransformations > MemCore::typemap< MemCore::TypeInfo > MemCore::InterfaceBase MemCore::ReferenceBase< InterfaceBase > MyStorageTransformations Fiber::FishStorageTransformations MyStorageTransformations

Classes

struct  FilterContext
 
struct  FilterSettings
 
struct  HDF5_Tuning
 Tuning parameters related to HDF5 files. More...
 
class  IOPerformance
 
struct  PrecisionTransformation
 

Public Member Functions

virtual bool SkipStorage (double time, const string &gridname, const MemCore::WeakPtr< Fiber::Grid > &myGrid, const SkeletonID &Sid, const string &RepresenterName, const Field &F, const string &FieldName, Fiber::CreativeArrayBase &theCreator, const MemCore::RefPtr< Fiber::FragmentID > &fID) const
 Specify nothing should be stored that is related to this setting.
 
virtual FilterSettings getFilterSettings (double time, const string &gridname, const MemCore::WeakPtr< Fiber::Grid > &myGrid, const SkeletonID &Sid, const string &RepresenterName, const Field &F, const string &FieldName, Fiber::CreativeArrayBase &theCreator, const MemCore::RefPtr< Fiber::FragmentID > &fID, const MemCore::RefPtr< MemBase > &Mb) const
 
 StorageTransformations (bool AutomaticSetup=false)
 
void autoSetup ()
 
virtual bool isSaveableTime (double T) const
 Allows a child class to determine which time steps, i.e.
 
virtual std::pair< string, string > getExternalLocation (double time, const string &gridname, const SkeletonID &Sid, const string &RepresenterName, const string &FieldName) const
 
virtual string getExternalLocationPrefix (double time, const string &gridname, const SkeletonID &Sid, const string &RepresenterName, const string &FieldName) const
 
virtual void setFieldPacking (double time, const string &gridname, const MemCore::WeakPtr< Fiber::Grid > &myGrid, const SkeletonID &Sid, const string &RepresenterName, const Field &F, const string &FieldName, Fiber::CreativeArrayBase &theCreator, const MemCore::RefPtr< Fiber::FragmentID > &fID) const
 Callback function to possible define bit packing on a Creator, which is done by simply doing addInterface( new Packing() ) whereas Packing is an appropriate structure from field/Packing with parameters suitable for the given Creator.
 
virtual string getExternalFileReference (const string &MainFile, const string &FragmentFile)
 If a data fragment resides in another file than the currently written main file this function computes the file name used for linking that external file, if EnableExternalFileReference is enabled.
 
virtual std::string getExternalLinkFilename (const std::string &link_containing_file_name, const std::string &external_target_file_name) const
 How to compute the filename that shall be used for an external link, based on the file name containing the link and the file name of the object that will be referenced.
 
virtual DynamicSize computeChunkSize (const DynamicSize &FragmentSize, size_t TypeSize, string &StorageInfo)
 
virtual bool isSaveableField (const FieldID &id, const Field &F, const WeakPtr< Fiber::Grid > &theGrid, const std::string &theRepresenterName, double theTime, const std::string &theGridname, const Fiber::SkeletonID &theSkeletonID)
 
virtual bool isSaveableFragment (const RefPtr< FragmentID > &fid, const RefPtr< CreativeArrayBase > &cab, const FieldID &id, const Field &F, const WeakPtr< Fiber::Grid > &theGrid, const std::string &theRepresenterName, double theTime, const std::string &theGridname, const Fiber::SkeletonID &theSkeletonID)
 
virtual void isSaved (const RefPtr< CreativeArrayBase > &cab, const RefPtr< FragmentID > &fid, const FieldID &id, const Field &F, const WeakPtr< Fiber::Grid > &theGrid, const std::string &theRepresenterName, double theTime, const std::string &theGridname, const Fiber::SkeletonID &theSkeletonID)
 A callback function that is called once a Creator has been stored.
 
- Public Member Functions inherited from MemCore::Interface< StorageTransformations >
const type_info & getInterfaceDomain () const
 
- Public Member Functions inherited from MemCore::InterfaceBase
virtual bool apply (Intercube &I, const RefPtr< InterfaceIterationParameter > &)
 
virtual bool apply_const (const Intercube &I, const RefPtr< InterfaceIterationParameter > &)
 
- Public Member Functions inherited from MemCore::ReferenceBase< InterfaceBase >
auto getObjectCountID () const noexcept
 
bool isIdentical (const WeakPtr< Object, Object > &PossibleSelf) const noexcept
 
void mkAutoDestructive ()
 
refcount_t refcount () const noexcept
 
 ReferenceBase (Object *that) noexcept
 
const auto & self () const
 
refcount_t wrefcount () const noexcept
 

Public Attributes

RefPtr< IOPerformancemyIOPerformance
 
int CompressViaLZ4Filter = -1
 Use LZ4 compression.
 
int GzipCompressionLevel = -1
 Use GZIP for compression if positive.
 
bool DoScaling = false
 apply scaling
 
int zstdCompressionLevel = -1
 
int zstdDictionary = -1
 
bool EnableShuffleFilter = false
 https://support.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetShuffle
 
uint32_t ScaleFactor = 0
 
int HDF5_CustomFilter = 0
 
std::vector< unsigned intHDF5FilterParameters
 
bool useWindowsNativeVFDforHDF5 = true
 
int Power10ScaleFactor = 0
 ​ member variables to influence ​the input output of a f5 file useage:
 
FilterSettings::AutoSettingStrategy StrategyMode = FilterSettings::Uncompressed
 A default setting for the return value of getFilterSettings() .
 
PrecisionTransformation defaultPrecisionTransformation
 Setting for the default value of getFilterSettings, and overriden function may or may not use this.
 
bool StoreFragmentsSeparately = false
 if field is fragmented every fragment will be exported individually
 
bool StoreFieldsSeparately = false
 
bool StoreGridsSeparately = false
 
bool trulyDeleteFileContents = false
 A setting that affects particularly HDF5 files that are synchronized with a Bundle in memory ("bound").
 
std::set< RefPtr< FieldID > > SaveableFields
 Do only for certain field names.
 
std::set< RefPtr< GridID > > SaveableGrids
 Do only for certain grid names.
 
struct Fiber::StorageTransformations::HDF5_Tuning HDF5
 Data member for HDF5 tuning.
 
bool EnableExternalFileReference = false
 
bool AllowExternalLinkingOnWritingOutOfRAMData = false
 

Additional Inherited Members

- Public Types inherited from MemCore::Interface< StorageTransformations >
typedef Domain InterfaceDomain_t
 
- Public Types inherited from MemCore::ReferenceBase< InterfaceBase >
typedef Object reference_domain_t
 
typedef WeakPtr< Object, Object > SelfPtr_t
 
- Protected Member Functions inherited from MemCore::ReferenceBase< InterfaceBase >
virtual void extremeUnction ()
 
ReferenceBaseoperator= (const ReferenceBase &R)
 
void suicide ()
 

Member Function Documentation

◆ getExternalFileReference()

string Fiber::StorageTransformations::getExternalFileReference ( const string &  MainFile,
const string &  FragmentFile 
)
virtual

If a data fragment resides in another file than the currently written main file this function computes the file name used for linking that external file, if EnableExternalFileReference is enabled.

By default, it merely returns the FragmentFile. A derived class may do something more complex and compute relative paths etc.

◆ getExternalLinkFilename()

std::string Fiber::StorageTransformations::getExternalLinkFilename ( const std::string &  link_containing_file_name,
const std::string &  external_target_file_name 
) const
virtual

How to compute the filename that shall be used for an external link, based on the file name containing the link and the file name of the object that will be referenced.

By default, the reference will be a relative path name.

◆ isSaveableTime()

bool Fiber::StorageTransformations::isSaveableTime ( double  T) const
virtual

Allows a child class to determine which time steps, i.e.

members of the 1-dimensional parameter space in general, may be saved. By default, returns true for all times.

Member Data Documentation

◆ Power10ScaleFactor

int Fiber::StorageTransformations::Power10ScaleFactor = 0

​ member variables to influence ​the input output of a f5 file useage:

#Step 1 RefPtr<StorageTransformations> ST = new StorageTransformations(); ST->DoScaling = true;

#Step 2 BP.save("MyTiff.tif",NullPtr(), ST);

#Step 3 RefPtr<StorageTransformations> ST = interface_cast<StorageTransformations>(*S);

if( ST->DoScaling ) ..... If DoScaling is activated, then this integer will specify the scaling factor for the HDF5 scale/offset filter.

The offset will be computed automatically by HDF5, only the scale factor in powers of 10 needs to be specified. For instance, a number of 2 will round all floating point values to two digits after the comma.

See also
https://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetScaleoffset

◆ trulyDeleteFileContents

bool Fiber::StorageTransformations::trulyDeleteFileContents = false

A setting that affects particularly HDF5 files that are synchronized with a Bundle in memory ("bound").

If data are deleted in memory (removeField()...), then they are only renamed in the file if this setting is false. HDF5 files have troubles reclaiming space for deleted data, so file contents usually grow anyway when deleting data. This way data are still accessible, though invisible, on subsequent file reads. If data should be really deleted, i.e. made inaccessible even by HDF5 access methods, set this flag to true. It may or may not help to keep file sizes smaller. If files are used with frequent deletion operations, then copying the entire file after processing is needed anyway to clean up space and to achieve the minimal possible file size.