#include <CompressedVectorNodeImpl.h>
Public Member Functions | |
void | checkLeavesInSet (const StringSet &pathNames, NodeImplSharedPtr origin) override |
int64_t | childCount () const |
CompressedVectorNodeImpl (ImageFileImplWeakPtr destImageFile) | |
uint64_t | getBinarySectionLogicalStart () const |
std::shared_ptr< VectorNodeImpl > | getCodecs () const |
NodeImplSharedPtr | getPrototype () const |
int64_t | getRecordCount () const |
bool | isDefined (const ustring &pathName) override |
bool | isTypeEquivalent (NodeImplSharedPtr ni) override |
std::shared_ptr< CompressedVectorReaderImpl > | reader (std::vector< SourceDestBuffer > dbufs) |
void | setAttachedRecursive () override |
void | setBinarySectionLogicalStart (uint64_t binarySectionLogicalStart) |
void | setCodecs (const std::shared_ptr< VectorNodeImpl > &codecs) |
void | setPrototype (const NodeImplSharedPtr &prototype) |
void | setRecordCount (int64_t recordCount) |
NodeType | type () const override |
std::shared_ptr< CompressedVectorWriterImpl > | writer (std::vector< SourceDestBuffer > sbufs) |
Iterator constructors. More... | |
void | writeXml (ImageFileImplSharedPtr imf, CheckedFile &cf, int indent, const char *forcedFieldName=nullptr) override |
~CompressedVectorNodeImpl () override=default | |
Public Member Functions inherited from e57::NodeImpl | |
void | checkBuffers (const std::vector< SourceDestBuffer > &sdbufs, bool allowMissing) |
void | checkImageFileOpen (const char *srcFileName, int srcLineNumber, const char *srcFunctionName) const |
virtual void | checkLeavesInSet (const StringSet &pathNames, NodeImplSharedPtr origin)=0 |
ImageFileImplSharedPtr | destImageFile () |
ustring | elementName () const |
bool | findTerminalPosition (const NodeImplSharedPtr &target, uint64_t &countFromLeft) |
virtual NodeImplSharedPtr | get (const ustring &pathName) |
ustring | imageFileName () const |
bool | isAttached () const |
virtual bool | isDefined (const ustring &pathName)=0 |
bool | isRoot () const |
bool | isTypeConstrained () |
virtual bool | isTypeEquivalent (NodeImplSharedPtr ni)=0 |
NodeImplSharedPtr | parent () |
ustring | pathName () const |
ustring | relativePathName (const NodeImplSharedPtr &origin, ustring childPathName=ustring()) const |
virtual void | set (const StringList &fields, unsigned level, NodeImplSharedPtr ni, bool autoPathCreate=false) |
virtual void | set (const ustring &pathName, NodeImplSharedPtr ni, bool autoPathCreate=false) |
virtual void | setAttachedRecursive () |
void | setParent (NodeImplSharedPtr parent, const ustring &elementName) |
virtual NodeType | type () const =0 |
virtual void | writeXml (ImageFileImplSharedPtr imf, CheckedFile &cf, int indent, const char *forcedFieldName=nullptr)=0 |
virtual | ~NodeImpl ()=default |
Friends | |
class | CompressedVectorReaderImpl |
Additional Inherited Members | |
Protected Member Functions inherited from e57::NodeImpl | |
NodeImplSharedPtr | getRoot () |
virtual NodeImplSharedPtr | lookup (const ustring &) |
NodeImpl (ImageFileImplWeakPtr destImageFile) | |
NodeImpl & | operator= (NodeImpl &n) |
Protected Attributes inherited from e57::NodeImpl | |
ImageFileImplWeakPtr | destImageFile_ |
ustring | elementName_ |
bool | isAttached_ |
NodeImplWeakPtr | parent_ |
e57::CompressedVectorNodeImpl::CompressedVectorNodeImpl | ( | ImageFileImplWeakPtr | destImageFile | ) |
|
overridedefault |
|
overridevirtual |
Since only called for prototype nodes, shouldn't be able to get here since CompressedVectors can't be in prototypes
Implements e57::NodeImpl.
References e57::E57_ERROR_INTERNAL, and e57::NodeImpl::pathName().
int64_t e57::CompressedVectorNodeImpl::childCount | ( | ) | const |
References e57::NodeImpl::checkImageFileOpen().
Referenced by e57::Decoder::DecoderFactory().
uint64_t e57::CompressedVectorNodeImpl::getBinarySectionLogicalStart | ( | ) | const |
std::shared_ptr< VectorNodeImpl > e57::CompressedVectorNodeImpl::getCodecs | ( | ) | const |
References e57::NodeImpl::checkImageFileOpen().
NodeImplSharedPtr e57::CompressedVectorNodeImpl::getPrototype | ( | ) | const |
References e57::NodeImpl::checkImageFileOpen().
Referenced by e57::Decoder::DecoderFactory().
int64_t e57::CompressedVectorNodeImpl::getRecordCount | ( | ) | const |
Implements e57::NodeImpl.
References e57::E57_ERROR_NOT_IMPLEMENTED, and e57::NodeImpl::pathName().
|
overridevirtual |
Same node type?
recordCount must match
Prototypes and codecs must match ???
Implements e57::NodeImpl.
References e57::E57_COMPRESSED_VECTOR.
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
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::NodeImpl::isAttached(), and e57::toString().
|
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.
References e57::NodeImpl::isAttached_.
void e57::CompressedVectorNodeImpl::setBinarySectionLogicalStart | ( | uint64_t | binarySectionLogicalStart | ) |
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).
References e57::NodeImpl::destImageFile(), e57::E57_ERROR_ALREADY_HAS_PARENT, e57::E57_ERROR_DIFFERENT_DEST_IMAGEFILE, e57::E57_ERROR_SET_TWICE, and e57::NodeImpl::pathName().
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).
References e57::NodeImpl::destImageFile(), e57::E57_ERROR_ALREADY_HAS_PARENT, e57::E57_ERROR_DIFFERENT_DEST_IMAGEFILE, e57::E57_ERROR_SET_TWICE, and e57::NodeImpl::pathName().
void e57::CompressedVectorNodeImpl::setRecordCount | ( | int64_t | recordCount | ) |
|
overridevirtual |
Implements e57::NodeImpl.
References e57::E57_COMPRESSED_VECTOR.
Referenced by ArchProfile.ProfileTaskPanel::accept(), and ArchProfile.ProfileTaskPanel::retranslateUi().
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
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::NodeImpl::isAttached(), and e57::toString().
|
overridevirtual |
Implements e57::NodeImpl.
References e57::NodeImpl::elementName_, e57::CheckedFile::logicalToPhysical(), and e57::space().
|
friend |
Referenced by reader().