ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
e57::CompressedVectorNodeImpl Class Reference

#include <CompressedVectorNodeImpl.h>

Inheritance diagram for e57::CompressedVectorNodeImpl:
Collaboration diagram for e57::CompressedVectorNodeImpl:

Public Member Functions

 CompressedVectorNodeImpl (ImageFileImplWeakPtr destImageFile)
 
 ~CompressedVectorNodeImpl () override=default
 
NodeType type () const override
 
bool isTypeEquivalent (NodeImplSharedPtr ni) override
 
bool isDefined (const ustring &pathName) override
 
void setAttachedRecursive () override
 
void setPrototype (const NodeImplSharedPtr &prototype)
 
NodeImplSharedPtr getPrototype () const
 
void setCodecs (const std::shared_ptr< VectorNodeImpl > &codecs)
 
std::shared_ptr< VectorNodeImplgetCodecs () const
 
int64_t childCount () const
 
void checkLeavesInSet (const StringSet &pathNames, NodeImplSharedPtr origin) override
 
void writeXml (ImageFileImplSharedPtr imf, CheckedFile &cf, int indent, const char *forcedFieldName=nullptr) override
 
std::shared_ptr< CompressedVectorWriterImplwriter (std::vector< SourceDestBuffer > sbufs)
 Iterator constructors. More...
 
std::shared_ptr< CompressedVectorReaderImplreader (std::vector< SourceDestBuffer > dbufs)
 
int64_t getRecordCount () const
 
uint64_t getBinarySectionLogicalStart () const
 
void setRecordCount (int64_t recordCount)
 
void setBinarySectionLogicalStart (uint64_t binarySectionLogicalStart)
 
void dump (int indent=0, std::ostream &os=std::cout) const override
 
- Public Member Functions inherited from e57::NodeImpl
void checkImageFileOpen (const char *srcFileName, int srcLineNumber, const char *srcFunctionName) const
 
bool isRoot () const
 
NodeImplSharedPtr parent ()
 
ustring pathName () const
 
ustring relativePathName (const NodeImplSharedPtr &origin, ustring childPathName=ustring()) const
 
ustring elementName () const
 
ImageFileImplSharedPtr destImageFile ()
 
ustring imageFileName () const
 
bool isAttached () const
 
void setParent (NodeImplSharedPtr parent, const ustring &elementName)
 
bool isTypeConstrained ()
 
virtual NodeImplSharedPtr get (const ustring &pathName)
 
virtual void set (const ustring &pathName, NodeImplSharedPtr ni, bool autoPathCreate=false)
 
virtual void set (const StringList &fields, unsigned level, NodeImplSharedPtr ni, bool autoPathCreate=false)
 
void checkBuffers (const std::vector< SourceDestBuffer > &sdbufs, bool allowMissing)
 
bool findTerminalPosition (const NodeImplSharedPtr &target, uint64_t &countFromLeft)
 
virtual ~NodeImpl ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from e57::NodeImpl
 NodeImpl (ImageFileImplWeakPtr destImageFile)
 
NodeImploperator= (NodeImpl &n)
 
virtual NodeImplSharedPtr lookup (const ustring &)
 
NodeImplSharedPtr getRoot ()
 
- Protected Attributes inherited from e57::NodeImpl
ImageFileImplWeakPtr destImageFile_
 
NodeImplWeakPtr parent_
 
ustring elementName_
 
bool isAttached_
 

Detailed Description

Definition at line 33 of file CompressedVectorNodeImpl.h.

Constructor & Destructor Documentation

◆ CompressedVectorNodeImpl()

e57::CompressedVectorNodeImpl::CompressedVectorNodeImpl ( ImageFileImplWeakPtr  destImageFile)

Definition at line 37 of file CompressedVectorNodeImpl.cpp.

◆ ~CompressedVectorNodeImpl()

e57::CompressedVectorNodeImpl::~CompressedVectorNodeImpl ( )
overridedefault

Member Function Documentation

◆ checkLeavesInSet()

void e57::CompressedVectorNodeImpl::checkLeavesInSet ( const StringSet pathNames,
NodeImplSharedPtr  origin 
)
overridevirtual

Since only called for prototype nodes, should't be able to get here since CompressedVectors can't be in prototypes

Implements e57::NodeImpl.

Definition at line 190 of file CompressedVectorNodeImpl.cpp.

References e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, and e57::NodeImpl::pathName().

◆ childCount()

int64_t e57::CompressedVectorNodeImpl::childCount ( ) const

◆ dump()

void e57::CompressedVectorNodeImpl::dump ( int  indent = 0,
std::ostream &  os = std::cout 
) const
overridevirtual

Reimplemented from e57::NodeImpl.

Definition at line 232 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::dump(), QtCompat::endl(), e57::space(), and type().

◆ getBinarySectionLogicalStart()

uint64_t e57::CompressedVectorNodeImpl::getBinarySectionLogicalStart ( ) const
inline

Definition at line 67 of file CompressedVectorNodeImpl.h.

◆ getCodecs()

std::shared_ptr< VectorNodeImpl > e57::CompressedVectorNodeImpl::getCodecs ( ) const

Definition at line 122 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::checkImageFileOpen().

◆ getPrototype()

NodeImplSharedPtr e57::CompressedVectorNodeImpl::getPrototype ( ) const

◆ getRecordCount()

int64_t e57::CompressedVectorNodeImpl::getRecordCount ( ) const
inline

Definition at line 63 of file CompressedVectorNodeImpl.h.

◆ isDefined()

bool e57::CompressedVectorNodeImpl::isDefined ( const ustring pathName)
overridevirtual

◆ isTypeEquivalent()

bool e57::CompressedVectorNodeImpl::isTypeEquivalent ( NodeImplSharedPtr  ni)
overridevirtual

Same node type?

recordCount must match

Prototypes and codecs must match ???

Implements e57::NodeImpl.

Definition at line 128 of file CompressedVectorNodeImpl.cpp.

References e57::E57_COMPRESSED_VECTOR.

◆ reader()

std::shared_ptr< CompressedVectorReaderImpl > e57::CompressedVectorNodeImpl::reader ( std::vector< SourceDestBuffer dbufs)

Check don't have any writers/readers open for this ImageFile

dbufs can't be empty

Can be read or write mode, but must be attached

Get pointer to me (really shared_ptr<CompressedVectorNodeImpl>)

Downcast pointer to right type

Return a shared_ptr to new object

Definition at line 309 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::checkImageFileOpen(), CompressedVectorReaderImpl, e57::NodeImpl::destImageFile(), e57::NodeImpl::destImageFile_, e57::E57_ERROR_BAD_API_ARGUMENT, e57::E57_ERROR_NODE_UNATTACHED, e57::E57_ERROR_TOO_MANY_READERS, e57::E57_ERROR_TOO_MANY_WRITERS, E57_EXCEPTION2, e57::NodeImpl::isAttached(), and e57::toString().

◆ setAttachedRecursive()

void e57::CompressedVectorNodeImpl::setAttachedRecursive ( )
overridevirtual

Mark this node as attached to an ImageFile

Mark nodes in prototype tree, if defined

Mark nodes in codecs tree if defined

Reimplemented from e57::NodeImpl.

Definition at line 166 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::isAttached_.

◆ setBinarySectionLogicalStart()

void e57::CompressedVectorNodeImpl::setBinarySectionLogicalStart ( uint64_t  binarySectionLogicalStart)
inline

Definition at line 75 of file CompressedVectorNodeImpl.h.

◆ setCodecs()

void e57::CompressedVectorNodeImpl::setCodecs ( const std::shared_ptr< VectorNodeImpl > &  codecs)

Can't set codecs twice.

codecs can't have a parent (must be a root node)

Verify that codecs is destined for same ImageFile as this is

Note that codecs is not attached to CompressedVector in a parent/child relationship. This means that codecs is a root node (has no parent).

Definition at line 85 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::destImageFile(), e57::E57_ERROR_ALREADY_HAS_PARENT, e57::E57_ERROR_DIFFERENT_DEST_IMAGEFILE, e57::E57_ERROR_SET_TWICE, E57_EXCEPTION2, and e57::NodeImpl::pathName().

◆ setPrototype()

void e57::CompressedVectorNodeImpl::setPrototype ( const NodeImplSharedPtr prototype)

Can't set prototype twice.

prototype can't have a parent (must be a root node)

Verify that prototype is destined for same ImageFile as this is

!! check for incomplete CompressedVectors when closing file

Note that prototype is not attached to CompressedVector in a parent/child relationship. This means that prototype is a root node (has no parent).

Definition at line 42 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::destImageFile(), e57::E57_ERROR_ALREADY_HAS_PARENT, e57::E57_ERROR_DIFFERENT_DEST_IMAGEFILE, e57::E57_ERROR_SET_TWICE, E57_EXCEPTION2, and e57::NodeImpl::pathName().

◆ setRecordCount()

void e57::CompressedVectorNodeImpl::setRecordCount ( int64_t  recordCount)
inline

Definition at line 71 of file CompressedVectorNodeImpl.h.

◆ type()

NodeType e57::CompressedVectorNodeImpl::type ( ) const
inlineoverridevirtual

Implements e57::NodeImpl.

Definition at line 39 of file CompressedVectorNodeImpl.h.

References e57::E57_COMPRESSED_VECTOR.

Referenced by dump().

◆ writer()

std::shared_ptr< CompressedVectorWriterImpl > e57::CompressedVectorNodeImpl::writer ( std::vector< SourceDestBuffer sbufs)

Iterator constructors.

Check don't have any writers/readers open for this ImageFile

sbufs can't be empty

Get pointer to me (really shared_ptr<CompressedVectorNodeImpl>)

Downcast pointer to right type

Return a shared_ptr to new object

Definition at line 260 of file CompressedVectorNodeImpl.cpp.

References e57::NodeImpl::checkImageFileOpen(), e57::NodeImpl::CompressedVectorWriterImpl, e57::NodeImpl::destImageFile(), e57::NodeImpl::destImageFile_, e57::E57_ERROR_BAD_API_ARGUMENT, e57::E57_ERROR_FILE_IS_READ_ONLY, e57::E57_ERROR_NODE_UNATTACHED, e57::E57_ERROR_TOO_MANY_READERS, e57::E57_ERROR_TOO_MANY_WRITERS, E57_EXCEPTION2, e57::NodeImpl::isAttached(), and e57::toString().

◆ writeXml()

void e57::CompressedVectorNodeImpl::writeXml ( ImageFileImplSharedPtr  imf,
CheckedFile cf,
int  indent,
const char *  forcedFieldName = nullptr 
)
overridevirtual

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