AGX Dynamics 2.42.3.1
Loading...
Searching...
No Matches
agxData::FileFrameReader Class Reference

Frame reader that supports the files-and-foldes prototype format. More...

#include <FileTrack.h>

+ Inheritance diagram for agxData::FileFrameReader:

Public Types

enum  BinaryReadStrategy { FSTREAM , CACHED , DIRECT }
 Controls how the binary data of a frame is read from disk. More...
 
- Public Types inherited from agx::Object
typedef agx::observer_ptr< const Event > EventConstObserver
 
typedef agx::ref_ptr< const Event > EventConstRef
 
typedef agx::observer_ptr< Event > EventObserver
 
typedef agx::Vector< EventObserver > EventObserverVector
 
typedef agx::VectorPOD< Event * > EventPtrVector
 
typedef agx::ref_ptr< Event > EventRef
 
typedef agx::Vector< EventRef > EventRefVector
 

Public Member Functions

 FileFrameReader (agxData::JournalArchive::Session *session)
 
BinaryReadStrategy getBinaryReadStrategy () const
 
agx::UInt getFrameOffset () const
 
virtual const agxData::JournalArchive::Session * getSession () const override
 
virtual bool jumpToFrame (agx::UInt frameIndex) override
 Select which frame that should be returned by the next call to 'readFrame'.
 
virtual bool jumpToTime (agx::Real time) override
 
void setBinaryReadStrategy (BinaryReadStrategy strategy)
 
- Public Member Functions inherited from agxData::DiskFrameReader
virtual void advanceToNextFrame () override
 
agx::UInt findFrameAtTime (agx::Real time) const
 
agx::UInt getFrameIndexToRead () const
 
virtual agx::UInt getFrameStride () override
 
virtual agx::UInt getNextFrameIndex () override
 
virtual const JournalArchive::Session * getSession () const =0
 
virtual agx::Real getTimeStep () override
 
virtual Frame * readFrame () override
 Reads the next frame from disk using the virtual readFrame(UInt) method.
 
virtual bool shouldExtract (const agx::Path &path) override
 
- Public Member Functions inherited from agxData::FrameReader
 FrameReader (bool active)
 
virtual void advanceToNextFrame ()
 
virtual agx::UInt getFrameStride ()
 
virtual agx::UInt getNextFrameIndex ()
 
virtual agx::Real getTimeStep ()
 
virtual bool jumpToFrame (agx::UInt frameIndex)
 Select which frame that should be returned by the next call to 'readFrame'.
 
virtual bool jumpToTime (agx::Real time)
 
virtual Frame * readFrame ()=0
 Reads the next frame from the stream and moves the stream forward one frame.
 
virtual bool shouldExtract (const agx::Path &path)
 
- Public Member Functions inherited from agxData::FrameIO
void addDataBinding (const agx::Path &internalPath, const agx::Path &externalPath, bool recursive=false)
 Register a data binding.
 
void addDataBinding (const agx::Path &path, bool recursive=false)
 Alias for addDataBinding(path, path)
 
void clearDataBindings ()
 Remove all data bindings.
 
const Frame::DataBindingRefVector & getDataBindings () const
 
SerializedFrame::HeaderFormat getHeaderFormat () const
 
Track * getTrack ()
 
const Track * getTrack () const
 
bool isActive () const
 
void loadDataBindings (const agx::String &xmlFilePath)
 Load bindings from an xml file.
 
bool loadDataBindingsJSON (const agx::String &jsonFilePath)
 
bool removeDataBinding (const agx::Path &internalPath, const agx::Path &externalPath)
 
bool removeDataBinding (const agx::Path &path)
 
void setHeaderFormat (SerializedFrame::HeaderFormat format)
 
- Public Member Functions inherited from agx::Object
 Object (const Name &name=Name(), Model *model=Object::ClassModel())
 
void addListener (EventListener *listener)
 
virtual void buildNavigationTree (agxJson::Value &eNode) const
 
virtual void configure (TiXmlElement *)
 
agx::String fullName () const
 
agx::String fullPath () const
 
agx::String fullPath (const agx::Object *root) const
 
template<typename T >
T * getAutoScopedResource (const agx::Path &path)
 
template<typename T >
const T * getAutoScopedResource (const agx::Path &path) const
 
agx::Object * getAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::Object * getAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const
 
agx::Object * getContext ()
 
template<typename T >
T * getContext ()
 
const agx::Object * getContext () const
 
template<typename T >
const T * getContext () const
 
agx::UInt32 getId () const
 
const agx::Name & getImplementationName () const
 
agx::Model * getModel ()
 
const agx::Model * getModel () const
 
const agx::Name & getName () const
 
agx::Object * getNextSibling ()
 
const agx::Object * getNextSibling () const
 
agx::Path getPath () const
 
agx::Path getPath (const agx::Object *root) const
 
template<typename T >
T * getResource (const agx::Path &path)
 
template<typename T >
const T * getResource (const agx::Path &path) const
 
agx::Object * getResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::Object * getResource (const agx::Path &path, agx::Model *model=nullptr) const
 
virtual agx::Object * getResourceImpl (const agx::Path &path, agx::Model *model)
 
agx::Object * getRootContext ()
 
const agx::Object * getRootContext () const
 
bool hasListener (EventListener *listener)
 
bool hasParent (const agx::Object *node) const
 
bool isUnique () const
 
virtual void printSubtree () const
 
virtual void rebind ()
 
void removeListener (EventListener *listener)
 
virtual void save (TiXmlElement *) const
 
virtual void setContext (agx::Object *context)
 
void setId (UInt32 id)
 
void setModel (agx::Model *model)
 Set the object model (handled automatically).
 
void setName (const agx::Name &name)
 Set the name of the object.
 
virtual void snapshot (TiXmlNode *, const String &) const
 
- Public Member Functions inherited from agx::Referenced
 Referenced ()
 Default constructor.
 
 Referenced (const Referenced &)
 
template<typename T >
T * as ()
 Subclass casting.
 
template<typename T >
const T * as () const
 
template<typename T >
T * asSafe ()
 Safe subclass casting, return nullptr if template type does not match.
 
template<typename T >
const T * asSafe () const
 
int getReferenceCount () const
 
template<typename T >
bool is () const
 Subclass test.
 
Referenced & operator= (const Referenced &)
 Assignment operator. Will increment the number of references to the referenced object.
 
void reference (void *ptr=nullptr) const
 Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
 
void unreference (void *ptr=nullptr) const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
void unreference_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 

Protected Member Functions

virtual ~FileFrameReader ()
 
virtual void endSequence () override
 
virtual void prepareSequence (agx::UInt startFrame, agx::UInt lastFrame) override
 
- Protected Member Functions inherited from agxData::DiskFrameReader
 DiskFrameReader ()
 
virtual void endSequence ()
 
virtual void prepareSequence (agx::UInt startFrame, agx::UInt lastFrame)
 
virtual agxData::Frame * readFrame (agx::UInt frameIndex)=0
 Read a frame from disk.
 
- Protected Member Functions inherited from agxData::FrameReader
virtual ~FrameReader ()
 
- Protected Member Functions inherited from agxData::FrameIO
 FrameIO (bool active)
 
virtual ~FrameIO ()
 
void addDataBinding (Frame::DataBinding *binding)
 
- Protected Member Functions inherited from agx::Object
virtual ~Object ()
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Additional Inherited Members

- Static Public Member Functions inherited from agx::Object
static agx::Model * ClassModel ()
 
static agx::String generateName (const agx::String &bindPath)
 
static const HashSet< Object * > & getActiveObjects ()
 
static bool getEnableRebind ()
 Should rebinding be allowed? Right now a global setting.
 
static Object * load (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
static Object * load (const String &path, Device *device, const String &type="", size_t instance=0)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type="", size_t instance=0)
 
static void load (const String &path, Device *device, ObjectPtrVector &loadedObjects)
 
static Object * load (TiXmlElement *eObject, Device *device)
 
template<typename T >
static T * load (TiXmlElement *eObject, Device *device)
 
static TiXmlDocument openDocument (const String &path)
 
static void setEnableRebind (bool flag)
 Sets if rebinding of objects should be allowed (Right now a global setting).
 
- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 
- Protected Types inherited from agxData::DiskFrameReader
typedef agx::HashSet< agx::Path > BindingTable
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandler * getDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 
- Protected Attributes inherited from agxData::DiskFrameReader
BindingTable m_bindingTable
 
FrameRef m_currentFrame
 
BindingTable m_exclusions
 
FrameRefVector m_frameMergeSequence
 
agx::UInt m_frameToRead
 
agx::Mutex m_mutex
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

Frame reader that supports the files-and-foldes prototype format.

Definition at line 48 of file FileTrack.h.

Member Enumeration Documentation

◆ BinaryReadStrategy

Controls how the binary data of a frame is read from disk.

  • FSTREAM Files are read using std::ifstream.
  • CACHED Files are read using open/read with default settings.
  • DIRECT Files are read using open/read with flags to disable OS buffering of the file content.
Enumerator
FSTREAM 
CACHED 
DIRECT 

Definition at line 67 of file FileTrack.h.

Constructor & Destructor Documentation

◆ FileFrameReader()

agxData::FileFrameReader::FileFrameReader ( agxData::JournalArchive::Session *  session)

◆ ~FileFrameReader()

virtual agxData::FileFrameReader::~FileFrameReader ( )
protectedvirtual

Member Function Documentation

◆ endSequence()

virtual void agxData::FileFrameReader::endSequence ( )
overrideprotectedvirtual

Reimplemented from agxData::DiskFrameReader.

◆ getBinaryReadStrategy()

BinaryReadStrategy agxData::FileFrameReader::getBinaryReadStrategy ( ) const

◆ getFrameOffset()

agx::UInt agxData::FileFrameReader::getFrameOffset ( ) const
Returns
The index of the first frame in the track

Definition at line 203 of file FileTrack.h.

◆ getSession()

virtual const agxData::JournalArchive::Session * agxData::FileFrameReader::getSession ( ) const
overridevirtual
Returns
The session that frames are being read from. Is always a subclass of Journal::Session suitable for the type of the current DiskFrameReader instance.

Implements agxData::DiskFrameReader.

◆ jumpToFrame()

virtual bool agxData::FileFrameReader::jumpToFrame ( agx::UInt  frameIndex)
overridevirtual

Select which frame that should be returned by the next call to 'readFrame'.

Returns
false if jumping is not allowed

Reimplemented from agxData::FrameReader.

◆ jumpToTime()

virtual bool agxData::FileFrameReader::jumpToTime ( agx::Real  time)
overridevirtual

Reimplemented from agxData::FrameReader.

◆ prepareSequence()

virtual void agxData::FileFrameReader::prepareSequence ( agx::UInt  startFrame,
agx::UInt  lastFrame 
)
overrideprotectedvirtual

Reimplemented from agxData::DiskFrameReader.

◆ setBinaryReadStrategy()

void agxData::FileFrameReader::setBinaryReadStrategy ( BinaryReadStrategy  strategy)

The documentation for this class was generated from the following file: