Пример #1
0
void MetaDboBase::checkNotOrphaned()
{
	if(isOrphaned())
	{
		throw Exception("using orphaned wtdbo ptr");
	}
}
Пример #2
0
void PropertyStorage::markNotOrphaned(LocationProperty inNode)
	{
	if (isOrphaned(inNode))
		{
		mAllOrphanedProperties.erase(inNode);
		mNonrootOrphanedProperties.erase(inNode);
		mNonrootNonmutableOrphanedProperties.erase(inNode);
		}
	}
Пример #3
0
void PropertyStorage::markOrphaned(LocationProperty inNode)
	{
	if (!isOrphaned(inNode))
		{
		mAllOrphanedProperties.insert(inNode);
		if (mNodeRoots.find(inNode) == mNodeRoots.end())
			{
			mNonrootOrphanedProperties.insert(inNode);
			if (inNode.attributeType() != attrMutable)
				mNonrootNonmutableOrphanedProperties.insert(inNode);
			}
		}
	}
Пример #4
0
void PropertyStorage::deleteOrphan(LocationProperty inNode)
	{
	lassert(isOrphaned(inNode));
	markNotOrphaned(inNode);

	setDependencies(inNode, std::set<LocationProperty>());

	mValues.erase(inNode);
	mNode_LazyCleanAndLevel.drop(inNode);

	mLocationProperties.drop(inNode.getLocation(), inNode.getPropertyID());
	mClassPropertyLocations.drop(inNode.getLocation().getType()->getClassID(), inNode);
	}
Пример #5
0
void PropertyStorage::dropRootNode(LocationProperty inNode, WeakRootPtr inRootPtr)
	{
	mNodeRoots[inNode].erase(inRootPtr);
	if (mNodeRoots[inNode].size() == 0)
		{
		mNodeRoots.erase(inNode);

		if (isOrphaned(inNode))
			{
			mNonrootOrphanedProperties.insert(inNode);
			if (inNode.attributeType() != attrMutable)
				mNonrootNonmutableOrphanedProperties.insert(inNode);
			}
		}
	}