QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RLinkedStorage Class Reference

Copyright (c) 2011-2013 by Andrew Mustun. 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) const
virtual QString getBlockName (RBlock::Id blockId) const
virtual QSet< QString > getBlockNames () const
virtual RBlock::Id getCurrentBlockId () const
virtual RColor getCurrentColor ()
virtual RLayer::Id getCurrentLayerId ()
virtual RLinetype getCurrentLinetype () const
virtual RLineweight::Lineweight getCurrentLineweight () const
virtual RView::Id getCurrentViewId ()
virtual QString getDimensionFont () const
virtual QVariant getKnownVariable (RS::KnownVariable key) const
virtual RLayer::Id getLayerId (const QString &layerName) const
virtual QString getLayerName (RLayer::Id layerId) const
virtual QSet< QString > getLayerNames () const
virtual RLinetype::Id getLinetypeId (const QString &linetypeName) const
virtual QString getLinetypeName (RLinetype::Id linetypeId) const
virtual QSet< QString > getLinetypeNames () const
virtual RObject::Handle getNewObjectHandle ()
virtual RObject::Id getNewObjectId ()
 IDs are handled by the back storage exclusively.
virtual RView::Id getViewId (const QString &viewName) const
virtual QString getViewName (RView::Id viewId) const
virtual QSet< QString > getViewNames () const
virtual bool hasChildEntities (REntity::Id parentId)
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, RS::EntityType type=RS::EntityAll)
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 QSet< REntity::IdqueryChildEntities (REntity::Id parentId, RS::EntityType type=RS::EntityAll)
virtual QSharedPointer< REntityqueryEntity (REntity::Id objectId) const
virtual QSharedPointer< REntityqueryEntityDirect (REntity::Id objectId) const
virtual QSet< REntity::IdqueryInfiniteEntities ()
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< RObjectqueryObjectByHandle (RObject::Handle objectHandle) 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)
 Copyright (c) 2011-2013 by Andrew Mustun.
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) const
virtual double getLinetypeScale () const
virtual RLineweight::Lineweight getMaxLineweight () const
virtual int getMaxTransactionId ()
virtual RBox getSelectionBox () const
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 QSharedPointer< RObjectqueryObjectByHandleDirect (RObject::Handle objectHandle) const
virtual bool removeObject (QSharedPointer< RObject > object)
virtual void resetTransactionStack ()
 RMemoryStorage ()
 Copyright (c) 2011-2013 by Andrew Mustun.
virtual void rollbackTransaction ()
 Rolls the current transaction back in order to cancel it.
virtual bool saveObject (QSharedPointer< RObject > object, bool checkBlockRecursion=true, bool keepHandles=false)
 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 setDimensionFont (const QString &f)
void setEntitySelected (QSharedPointer< REntity > entity, bool on, QSet< REntity::Id > *affectedEntities=NULL, bool onlyDescend=false)
 Selects first the top most parent in the entity hierarchy and then all children of it.
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, bool overwrite=true)
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 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) const
virtual bool hasLayer (const QString &layerName) const
virtual bool hasLinetype (const QString &linetypeName) const
virtual bool hasVariable (const QString &key) const
virtual bool hasView (const QString &viewName) const
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 ()
 Copyright (c) 2011-2013 by Andrew Mustun.
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
QMultiHash< RBlock::Id,
QSharedPointer< REntity > > 
blockEntityMap
QHash< RBlock::Id,
QSharedPointer< RBlock > > 
blockMap
RBox boundingBox
bool boundingBoxChanged
QString dimensionFont
QHash< REntity::Id,
QSharedPointer< REntity > > 
entityMap
bool inTransaction
QHash< RS::KnownVariable,
QVariant > 
knownVariables
QHash< RLayer::Id,
QSharedPointer< RLayer > > 
layerMap
double linetypeScale
RLineweight::Lineweight maxLineweight
QHash< RObject::Handle,
QSharedPointer< RObject > > 
objectHandleMap
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

Copyright (c) 2011-2013 by Andrew Mustun.

All rights reserved.

This file is part of the QCAD project.

QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with QCAD. 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)

Copyright (c) 2011-2013 by Andrew Mustun.

All rights reserved.

This file is part of the QCAD project.

QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with QCAD.

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) const
virtual

Reimplemented from RMemoryStorage.

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

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getBlockNames ( ) const
virtual

Reimplemented from RMemoryStorage.

RBlock::Id RLinkedStorage::getCurrentBlockId ( ) const
virtual

Reimplemented from RStorage.

RColor RLinkedStorage::getCurrentColor ( )
virtual

Reimplemented from RStorage.

RLayer::Id RLinkedStorage::getCurrentLayerId ( )
virtual

Reimplemented from RStorage.

RLinetype RLinkedStorage::getCurrentLinetype ( ) const
virtual

Reimplemented from RStorage.

RLineweight::Lineweight RLinkedStorage::getCurrentLineweight ( ) const
virtual

Reimplemented from RStorage.

RView::Id RLinkedStorage::getCurrentViewId ( )
virtual

Reimplemented from RStorage.

QString RLinkedStorage::getDimensionFont ( ) const
virtual

Reimplemented from RMemoryStorage.

QVariant RLinkedStorage::getKnownVariable ( RS::KnownVariable  key) const
virtual

Reimplemented from RMemoryStorage.

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

Reimplemented from RMemoryStorage.

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

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getLayerNames ( ) const
virtual

Reimplemented from RMemoryStorage.

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

Reimplemented from RMemoryStorage.

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

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getLinetypeNames ( ) const
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) const
virtual

Reimplemented from RMemoryStorage.

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

Reimplemented from RMemoryStorage.

QSet< QString > RLinkedStorage::getViewNames ( ) const
virtual

Reimplemented from RMemoryStorage.

bool RLinkedStorage::hasChildEntities ( REntity::Id  parentId)
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,
RS::EntityType  type = RS::EntityAll 
)
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
Returns:
A set of all entity IDs that are part of the given block.

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.

QSet< REntity::Id > RLinkedStorage::queryChildEntities ( REntity::Id  parentId,
RS::EntityType  type = RS::EntityAll 
)
virtual
Returns:
A set of all block attributes which are not stored in the block definition but as separate entities on the same level as the block reference.

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.

QSet< REntity::Id > RLinkedStorage::queryInfiniteEntities ( )
virtual
Returns:
A set of entity IDs of all infinite entities (xlines).

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::queryObjectByHandle ( RObject::Handle  objectHandle) const
virtual

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: