QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RLinkedStorage Class Reference

Memory based storage that is linked to another storage. More...

#include <RLinkedStorage.h>

Inheritance diagram for RLinkedStorage:
RMemoryStorage RStorage RNonCopyable RRequireHeap

List of all members.

Public Member Functions

virtual void clear ()
 Resets this storage to its initial, empty state.
virtual bool deleteObject (RObject::Id objectId)
 Deletes the object with the given ID.
RStoragegetBackStorage () const
virtual RBlock::Id getBlockId (const QString &blockName)
virtual QString getBlockName (RBlock::Id blockId) const
virtual QSet< QString > getBlockNames ()
virtual RBlock::Id getCurrentBlockId ()
virtual RColor getCurrentColor ()
virtual RLayer::Id getCurrentLayerId ()
virtual RLinetype getCurrentLinetype ()
virtual RLineweight::Lineweight getCurrentLineweight ()
virtual RView::Id getCurrentViewId ()
virtual RLayer::Id getLayerId (const QString &layerName)
virtual QString getLayerName (RLayer::Id layerId)
virtual QSet< QString > getLayerNames ()
virtual RLinetype::Id getLinetypeId (const QString &linetypeName)
virtual QString getLinetypeName (RLinetype::Id linetypeId)
virtual QSet< QString > getLinetypeNames ()
virtual RObject::Handle getNewObjectHandle ()
virtual RObject::Id getNewObjectId ()
 IDs are handled by the back storage exclusively.
virtual RView::Id getViewId (const QString &viewName)
virtual QString getViewName (RView::Id viewId)
virtual QSet< QString > getViewNames ()
virtual bool isInBackStorage (RObject::Id object)
 Linked storages should return true if the given object is stored in the storage the linked storage links to.
virtual QSet< REntity::IdqueryAllBlockReferences ()
virtual QSet< RBlock::IdqueryAllBlocks (bool undone=false)
virtual QSet< REntity::IdqueryAllEntities (bool undone=false, bool allBlocks=false)
virtual QSet< RLayer::IdqueryAllLayers (bool undone=false)
virtual QSet< RLinetype::IdqueryAllLinetypes ()
virtual QSet< RObject::IdqueryAllObjects ()
virtual QSet< RUcs::IdqueryAllUcs ()
virtual QSet< RView::IdqueryAllViews (bool undone=false)
virtual QSharedPointer< RBlockqueryBlock (RBlock::Id blockId) const
virtual QSharedPointer< RBlockqueryBlock (const QString &blockName) const
virtual QSharedPointer< RBlockqueryBlockDirect (RBlock::Id blockId) const
virtual QSet< REntity::IdqueryBlockEntities (RBlock::Id blockId)
virtual QSet< REntity::IdqueryBlockReferences (RBlock::Id blockId)
virtual QSharedPointer< REntityqueryEntity (REntity::Id objectId) const
virtual QSharedPointer< REntityqueryEntityDirect (REntity::Id objectId) const
virtual QSharedPointer< RLayerqueryLayer (RLayer::Id layerId) const
virtual QSharedPointer< RLayerqueryLayer (const QString &layerName) const
virtual QSharedPointer< RLayerqueryLayerDirect (RLayer::Id layerId) const
virtual QSet< REntity::IdqueryLayerEntities (RLayer::Id layerId, bool allBlocks=false)
virtual QSharedPointer< RLinetypequeryLinetype (RLinetype::Id linetypeId) const
virtual QSharedPointer< RLinetypequeryLinetype (const QString &linetypeName) const
virtual QSharedPointer< RObjectqueryObject (RObject::Id objectId) const
virtual QSharedPointer< RObjectqueryObjectDirect (RObject::Id objectId) const
virtual QSet< REntity::IdquerySelectedEntities ()
virtual QSharedPointer< RUcsqueryUcs (RUcs::Id ucsId) const
virtual QSharedPointer< RUcsqueryUcs (const QString &ucsName) const
virtual QSharedPointer< RUcsqueryUcsDirect (RUcs::Id ucsId) const
virtual QSharedPointer< RViewqueryView (RView::Id viewId) const
virtual QSharedPointer< RViewqueryView (const QString &viewName) const
 RLinkedStorage (RStorage &backStorage)
virtual bool setUndoStatus (RObject::Id objectId, bool status)
virtual ~RLinkedStorage ()
- Public Member Functions inherited from RMemoryStorage
virtual void beginTransaction ()
 Starts a new transaction.
bool checkRecursion (RBlock::Id blockId, RBlock::Id potentialChildBlockId)
 Checks recursively, if the given block is allowed to contain references to the potential child block.
virtual void clearEntitySelection (QSet< REntity::Id > *affectedEntities=NULL)
 Clears the selection status of all entities.
virtual void commitTransaction ()
 Commits the current transaction.
virtual void deleteTransactionsFrom (int transactionId)
 Deletes all transactions with IDs from transactionId (inclusive) to the maximum transaction ID.
virtual void deselectEntities (const QSet< REntity::Id > &entityIds, QSet< REntity::Id > *affectedEntities=NULL)
 Deselects all entities with the given IDs.
virtual void deselectEntity (REntity::Id entityId, QSet< REntity::Id > *affectedEntities=NULL)
 Deselects the entity with the given ID.
virtual RBox getBoundingBox (bool includeHiddenLayer=true)
virtual QVariant getKnownVariable (RS::KnownVariable key) const
virtual double getLinetypeScale () const
virtual RLineweight::Lineweight getMaxLineweight () const
virtual int getMaxTransactionId ()
virtual RBox getSelectionBox ()
virtual RTransaction getTransaction (int transactionId)
virtual RS::Unit getUnit () const
virtual QVariant getVariable (const QString &key) const
virtual QStringList getVariables () const
virtual bool hasSelection () const
virtual bool isSelected (REntity::Id entityId)
virtual void resetTransactionStack ()
 RMemoryStorage ()
virtual void rollbackTransaction ()
 Rolls the current transaction back in order to cancel it.
virtual bool saveObject (QSharedPointer< RObject > object)
 Saves the given object to the storage.
virtual void saveTransaction (RTransaction &transaction)
 Saves the given transaction.
virtual void selectAllEntites (QSet< REntity::Id > *affectedEntities=NULL)
 Sets the selection status of all entities.
virtual void selectEntities (const QSet< REntity::Id > &entityIds, bool add=false, QSet< REntity::Id > *affectedEntities=NULL)
 Selects all entities with the given IDs.
virtual void selectEntity (REntity::Id entityId, bool add=false, QSet< REntity::Id > *affectedEntities=NULL)
 Selects the entity with the given ID.
virtual void setCurrentBlock (RBlock::Id blockId)
virtual void setKnownVariable (RS::KnownVariable key, const QVariant &value)
virtual void setLastTransactionId (int transactionId)
 Sets the ID of the last created transaction.
virtual void setLinetypeScale (double v)
virtual void setUnit (RS::Unit unit)
virtual void setVariable (const QString &key, const QVariant &value)
virtual void toggleUndoStatus (QSet< RObject::Id > &objects)
 Toggles the current undo status of all given objects.
virtual void toggleUndoStatus (RObject::Id object)
 Toggles the current undo status of the given object.
virtual ~RMemoryStorage ()
- Public Member Functions inherited from RStorage
void addModifiedListener (RModifiedListener *l)
 Adds a listener for modified status changed events.
virtual RBlock::Id getCurrentBlockId () const
virtual RView::Id getCurrentViewId () const
virtual int getLastTransactionId ()
virtual int getMaxDrawOrder ()
virtual RObject::Handle getMaxObjectHandle ()
virtual RObject::Id getMaxObjectId ()
virtual int getMinDrawOrder ()
virtual bool hasBlock (const QString &blockName)
virtual bool hasLayer (const QString &layerName)
virtual bool hasLinetype (const QString &linetypeName)
virtual bool hasView (const QString &viewName)
virtual bool isBlockFrozen (RBlock::Id blockId) const
virtual bool isEntity (RObject::Id objectId)
virtual bool isLayerFrozen (RLayer::Id layerId) const
virtual bool isLayerLocked (RLayer::Id layerId) const
bool isModified () const
virtual QList< REntity::IdorderBackToFront (const QSet< REntity::Id > &entityIds) const
virtual QSharedPointer< RBlockqueryCurrentBlock ()
virtual QSharedPointer< RLayerqueryCurrentLayer ()
virtual QSharedPointer< RViewqueryCurrentView ()
 RStorage ()
void setCurrentBlock (const QString &blockName)
virtual void setCurrentColor (const RColor &color)
void setCurrentLayer (RLayer::Id layerId)
void setCurrentLayer (const QString &layerName)
void setCurrentLinetype (RLinetype lt)
void setCurrentLineweight (RLineweight::Lineweight lw)
void setCurrentView (RView::Id viewId)
void setCurrentView (const QString &viewName)
virtual void setMaxDrawOrder (int m)
void setModified (bool m)
void setObjectHandle (RObject &object, RObject::Handle objectHandle)
void setObjectId (RObject &object, RObject::Id objectId)
virtual ~RStorage ()
- Public Member Functions inherited from RRequireHeap
void doDelete ()

Private Attributes

RStoragebackStorage
int objectIdOffset

Additional Inherited Members

- Protected Attributes inherited from RMemoryStorage
RBox boundingBox
bool boundingBoxChanged
QHash< REntity::Id,
QSharedPointer< REntity > > 
entityMap
bool inTransaction
QHash< RS::KnownVariable,
QVariant > 
knownVariables
double linetypeScale
RLineweight::Lineweight maxLineweight
QHash< RObject::Id,
QSharedPointer< RObject > > 
objectMap
QHash< int, RTransactiontransactionMap
RS::Unit unit
QMap< QString, QString > variableCaseMap
QHash< QString, QVariant > variables
- Protected Attributes inherited from RStorage
bool modified

Detailed Description

Memory based storage that is linked to another storage.

The other storage is read only and only used to read objects that are not avilable in this storage. All added objects are stored in this storage directly.

Scriptable:
This class is wrapped for script environments.

Constructor & Destructor Documentation

RLinkedStorage::RLinkedStorage ( RStorage backStorage)
RLinkedStorage::~RLinkedStorage ( )
virtual

Member Function Documentation

void RLinkedStorage::clear ( )
virtual

Resets this storage to its initial, empty state.

Reimplemented from RMemoryStorage.

bool RLinkedStorage::deleteObject ( RObject::Id  objectId)
virtual

Deletes the object with the given ID.

Reimplemented from RMemoryStorage.

RStorage* RLinkedStorage::getBackStorage ( ) const
inline
RBlock::Id RLinkedStorage::getBlockId ( const QString &  blockName)
virtual

Reimplemented from RMemoryStorage.

QString RLinkedStorage::getBlockName ( RBlock::Id  blockId) const
virtual

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getBlockNames ( )
virtual

Reimplemented from RMemoryStorage.

RBlock::Id RLinkedStorage::getCurrentBlockId ( )
virtual
RColor RLinkedStorage::getCurrentColor ( )
virtual

Reimplemented from RStorage.

RLayer::Id RLinkedStorage::getCurrentLayerId ( )
virtual

Reimplemented from RStorage.

RLinetype RLinkedStorage::getCurrentLinetype ( )
virtual

Reimplemented from RStorage.

RLineweight::Lineweight RLinkedStorage::getCurrentLineweight ( )
virtual

Reimplemented from RStorage.

RView::Id RLinkedStorage::getCurrentViewId ( )
virtual

Reimplemented from RStorage.

RLayer::Id RLinkedStorage::getLayerId ( const QString &  layerName)
virtual

Reimplemented from RMemoryStorage.

QString RLinkedStorage::getLayerName ( RLayer::Id  layerId)
virtual

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getLayerNames ( )
virtual

Reimplemented from RMemoryStorage.

RLinetype::Id RLinkedStorage::getLinetypeId ( const QString &  linetypeName)
virtual

Reimplemented from RMemoryStorage.

QString RLinkedStorage::getLinetypeName ( RLinetype::Id  linetypeId)
virtual

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getLinetypeNames ( )
virtual

Reimplemented from RMemoryStorage.

RObject::Handle RLinkedStorage::getNewObjectHandle ( )
virtual

Reimplemented from RStorage.

RObject::Id RLinkedStorage::getNewObjectId ( )
virtual

IDs are handled by the back storage exclusively.

Reimplemented from RStorage.

RView::Id RLinkedStorage::getViewId ( const QString &  viewName)
virtual

Reimplemented from RMemoryStorage.

QString RLinkedStorage::getViewName ( RView::Id  viewId)
virtual

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getViewNames ( )
virtual

Reimplemented from RMemoryStorage.

bool RLinkedStorage::isInBackStorage ( RObject::Id  )
virtual

Linked storages should return true if the given object is stored in the storage the linked storage links to.

Reimplemented from RStorage.

QSet< REntity::Id > RLinkedStorage::queryAllBlockReferences ( )
virtual
Returns:
A set of all block reference entity IDs.

Reimplemented from RMemoryStorage.

QSet< RBlock::Id > RLinkedStorage::queryAllBlocks ( bool  undone = false)
virtual
Returns:
A set of all block IDs of the document.

Reimplemented from RMemoryStorage.

QSet< REntity::Id > RLinkedStorage::queryAllEntities ( bool  undone = false,
bool  allBlocks = false 
)
virtual
Returns:
A set of all entity IDs of the document.

Reimplemented from RMemoryStorage.

QSet< RLayer::Id > RLinkedStorage::queryAllLayers ( bool  undone = false)
virtual
Returns:
A set of all layer IDs of the document.

Reimplemented from RMemoryStorage.

QSet< RLinetype::Id > RLinkedStorage::queryAllLinetypes ( )
virtual
Returns:
A set of all linetype IDs of the document.

Reimplemented from RMemoryStorage.

QSet< RObject::Id > RLinkedStorage::queryAllObjects ( )
virtual
Returns:
A set of all object IDs of the document.

Reimplemented from RMemoryStorage.

QSet< RUcs::Id > RLinkedStorage::queryAllUcs ( )
virtual
Returns:
A set of all UCS IDs of the document.

Reimplemented from RMemoryStorage.

QSet< RView::Id > RLinkedStorage::queryAllViews ( bool  undone = false)
virtual
Returns:
A set of all view IDs of the document.

Reimplemented from RMemoryStorage.

QSharedPointer< RBlock > RLinkedStorage::queryBlock ( RBlock::Id  blockId) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RBlock > RLinkedStorage::queryBlock ( const QString &  blockName) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RBlock > RLinkedStorage::queryBlockDirect ( RBlock::Id  blockId) const
virtual

Reimplemented from RMemoryStorage.

QSet< REntity::Id > RLinkedStorage::queryBlockEntities ( RBlock::Id  blockId)
virtual
Todo:
store map block id -> entity ids for faster access

Reimplemented from RMemoryStorage.

QSet< REntity::Id > RLinkedStorage::queryBlockReferences ( RBlock::Id  blockId)
virtual
Returns:
A set of all block reference entity IDs that reference the given block.

Reimplemented from RMemoryStorage.

QSharedPointer< REntity > RLinkedStorage::queryEntity ( REntity::Id  entityId) const
virtual
Returns:
A pointer to the enitity with the given entityId or NULL if no such entity exists.

Reimplemented from RMemoryStorage.

QSharedPointer< REntity > RLinkedStorage::queryEntityDirect ( REntity::Id  objectId) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RLayer > RLinkedStorage::queryLayer ( RLayer::Id  layerId) const
virtual
Returns:
A pointer to the layer with the given layerId or NULL if no such layer exists.

Reimplemented from RMemoryStorage.

QSharedPointer< RLayer > RLinkedStorage::queryLayer ( const QString &  layerName) const
virtual
Returns:
A pointer to the layer with the given layerName or NULL if no such layer exists.

Reimplemented from RMemoryStorage.

QSharedPointer< RLayer > RLinkedStorage::queryLayerDirect ( RLayer::Id  layerId) const
virtual

Reimplemented from RMemoryStorage.

QSet< REntity::Id > RLinkedStorage::queryLayerEntities ( RLayer::Id  layerId,
bool  allBlocks = false 
)
virtual
Returns:
A set of all entity IDs on the given layer.

Reimplemented from RMemoryStorage.

QSharedPointer< RLinetype > RLinkedStorage::queryLinetype ( RLinetype::Id  linetypeId) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RLinetype > RLinkedStorage::queryLinetype ( const QString &  linetypeName) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RObject > RLinkedStorage::queryObject ( RObject::Id  objectId) const
virtual
Returns:
A shared pointer to the object with the given objectId or null pointer if the object is no available in this storage.

Reimplemented from RMemoryStorage.

QSharedPointer< RObject > RLinkedStorage::queryObjectDirect ( RObject::Id  objectId) const
virtual

Reimplemented from RMemoryStorage.

QSet< REntity::Id > RLinkedStorage::querySelectedEntities ( )
virtual
Returns:
A set of entity IDs of all selected entities.

Reimplemented from RMemoryStorage.

QSharedPointer< RUcs > RLinkedStorage::queryUcs ( RUcs::Id  ucsId) const
virtual
Returns:
A pointer to the UCS with the given ucsId or NULL if no such UCS exists.

Reimplemented from RMemoryStorage.

QSharedPointer< RUcs > RLinkedStorage::queryUcs ( const QString &  ucsName) const
virtual
Returns:
A pointer to the UCS with the given ucsName or NULL if no such UCS exists.

Reimplemented from RMemoryStorage.

QSharedPointer< RUcs > RLinkedStorage::queryUcsDirect ( RUcs::Id  ucsId) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RView > RLinkedStorage::queryView ( RView::Id  viewId) const
virtual

Reimplemented from RMemoryStorage.

QSharedPointer< RView > RLinkedStorage::queryView ( const QString &  viewName) const
virtual

Reimplemented from RMemoryStorage.

bool RLinkedStorage::setUndoStatus ( RObject::Id  objectId,
bool  status 
)
virtual

Reimplemented from RMemoryStorage.


Member Data Documentation

RStorage* RLinkedStorage::backStorage
private
int RLinkedStorage::objectIdOffset
private

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