Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

ObjectOf Class Template Reference

#include <ObjectOf.h>

Inheritance diagram for ObjectOf::

AbelianGroup AbelianWord AheadInfo AssociationsIterator AssociationsOf BaseObjectOf Chars DArray DerivedObjectOf DiffHistory DiffHistoryVtx DListIterator DListOf ListIterator ListOf PolyWord QuickAssociationsIterator QuickAssociationsOf SetContainer SetIterator SetOf SGOfNilpotentGroup StackOf SubgroupGraph VectorOf VectorPtrOf WordOrder List of all members.

Public Methods

 ObjectOf (const ObjectOf &o)
 Copy constructor. More...

 ~ObjectOf ()
ObjectOf& operator= (const ObjectOf &o)

Protected Methods

const Rep* look () const
Rep* enhance () const
Rep* change ()
void acquireRep (const Rep *rep)
 ObjectOf (Rep *newrep)

Private Methods

void force_derivation ()

Private Attributes

Rep* theRep

Detailed Description

template<class Rep> class ObjectOf

Description:

A representation pointer wrapper. Provided for backward compatibility.

Usage:

ObjectOf<MyClassRep> assumes that 1) MyClassRep is derived from RefCounter 2) MyClassRep has a member MyClassRep* clone(); returning a (logical) deep copy of *this

Derive MyClass from ObjectOf<MyClassRep> see comments in PureRep.

Definition at line 82 of file ObjectOf.h.


Constructor & Destructor Documentation

template<class Rep>
ObjectOf<Rep>::ObjectOf<Rep> ( const ObjectOf<Rep> & o ) [inline]
 

Copy constructor.

Assignes representation object of the parameter and increases its reference count

Definition at line 93 of file ObjectOf.h.

template<class Rep>
ObjectOf<Rep>::~ObjectOf<Rep> ( ) [inline]
 

Decreases referense copunt. If last one than delete the representation object

Definition at line 98 of file ObjectOf.h.

template<class Rep>
ObjectOf<Rep>::ObjectOf<Rep> ( Rep * newrep ) [inline, protected]
 

Special Constructor To wrap new representations

Definition at line 181 of file ObjectOf.h.


Member Function Documentation

template<class Rep>
ObjectOf<Rep> & ObjectOf<Rep>::operator= ( const ObjectOf<Rep> & o ) [inline]
 

Assignment operator. Increment number of refrences of 'o'. If '*this' was the last copy deletes reference object

Definition at line 108 of file ObjectOf.h.

template<class Rep>
const Rep * ObjectOf<Rep>::look ( ) const [inline, protected]
 

Returns a constant pointer to its representation object For safe read-only access.

Reimplemented in Elt, SetIterator, DerivedObjectOf, Group, SGofFreeGroup, and Subgroup.

Definition at line 143 of file ObjectOf.h.

Referenced by AssociationsIteratorRep::AssociationsIteratorRep(), SubgroupGraph::MHallCompletion(), AbelianGroup::abelianMaximalRoot(), SGofFreeGroup::actualType(), SGOfNilpotentGroup::actualType(), Group::actualType(), GenericObject::actualType(), Elt::actualType(), ListOf::agreement(), DListOf::agreement(), AbelianGroup::areEqual(), SGOfNilpotentGroup::asDecomposition(), WordOrder::balancedEquationFromRelator(), SGOfNilpotentGroup::basis(), SGOfNilpotentGroup::basisIsInitialized(), SGOfNilpotentGroup::basisNames(), DiffHistoryVtx::betterThan(), QuickAssociationsOf::bound(), AssociationsOf::bound(), DiffHistory::buildAheadInfoRep(), WordOrder::buildDiffHistoryRep(), WordOrder::buildDiffHistoryVtxRep(), SetOf::cardinality(), QuickAssociationsOf::cardinality(), AssociationsOf::cardinality(), Group::commutator(), SubgroupGraph::completeness(), AbelianGroup::computeIntegralHomology(), ListOf::concatenate(), DListOf::concatenate(), SGofFreeGroup::conjugacyProblem(), Group::conjugateBy(), Elt::conjugateBy(), SubgroupGraph::conjugateInSubgroup(), VectorOf::constref(), SubgroupGraph::contains(), SGOfNilpotentGroup::contains(), SetOf::contains(), PolyWord::debugInfo(), SGOfNilpotentGroup::decompose(), SetIterator::done(), QuickAssociationsIterator::done(), ListIterator::done(), DListIterator::done(), AssociationsIterator::done(), PolyWord::duplicate(), ListOf::element(), DListOf::element(), DiffHistory::empty(), SetOf::equalTo(), ListOf::equalTo(), DListOf::equalTo(), SGofFreeGroup::eval(), AbelianGroup::findEltPrimeForm(), AbelianGroup::findSubgIntersection(), AbelianGroup::findSubgroupIsolator(), AbelianGroup::findVirtFreeComplementOfSG(), Group::firstElt(), PolyWord::firstLetter(), AbelianGroup::fixedPointsOfAuto(), BaseObjectOf::force_derivation(), AbelianWord::fullLength(), SubgroupGraph::generatesTheFreeGroup(), SubgroupGraph::generatorToLabel(), SGofFreeGroup::generators(), SGOfNilpotentGroup::generators(), AbelianGroup::getAllRelators(), DiffHistoryVtx::getBackptr(), AbelianGroup::getCanonicalSmithPresentation(), DArray::getCol(), DiffHistoryVtx::getDiff(), DiffHistory::getDiff(), AbelianGroup::getFPGroup(), AbelianGroup::getFileName(), AbelianGroup::getFileNameOfPDGens(), DiffHistoryVtx::getGenerator(), DiffHistoryVtx::getLength(), WordOrder::getNumSymbols(), WordOrder::getOrderType(), WordOrder::getPosition(), AbelianWord::getPowers(), DArray::getRow(), WordOrder::getSymbol(), WordOrder::getSymbolIndex(), SubgroupGraph::getValence(), WordOrder::getWeight(), AbelianWord::getWord(), SGofFreeGroup::hash(), DiffHistory::hash(), VectorOf::hash(), VectorPtrOf::hash(), Elt::hash(), AbelianGroup::haveCyclicDecomposition(), AbelianGroup::havePrimaryDecomposition(), DArray::height(), WordOrder::historyBound(), DiffHistory::improveBy(), SGOfNilpotentGroup::index(), VectorOf::indexOf(), ListOf::indexOf(), DListOf::indexOf(), VectorPtrOf::indexOf(), SGOfNilpotentGroup::initBasis(), SGOfNilpotentGroup::initParent(), SGOfNilpotentGroup::initPreimage(), DListOf::insert(), SubgroupGraph::intersection(), AbelianGroup::invariants(), PolyWord::inverse(), WordOrder::inverse(), Elt::inverse(), AbelianWord::inverse(), AbelianGroup::inverseAuto(), SubgroupGraph::inverseLabel(), Group::inverseOf(), SGOfNilpotentGroup::isAbelian(), SGOfNilpotentGroup::isCentral(), PolyWord::isCollected(), SubgroupGraph::isComplete(), AbelianGroup::isEltProperPower(), StackOf::isEmpty(), AbelianGroup::isEpimorphism(), AbelianGroup::isFree(), SGOfNilpotentGroup::isNormal(), AbelianGroup::isPowerOfSecond(), AbelianGroup::isPureCyclSubgroup(), Group::isSyntacticIdentity(), SGOfNilpotentGroup::isTrivial(), AbelianGroup::isTrivial(), AbelianWord::isTrivial(), Group::isTrivialElt(), VectorPtrOf::isValid(), StackOf::isntEmpty(), AbelianGroup::isomorphicTo(), SubgroupGraph::join(), SGOfNilpotentGroup::join(), AbelianGroup::joinSubgroups(), QuickAssociationsIterator::key(), AssociationsIterator::key(), SubgroupGraph::labelToGenerator(), DArray::lastCol(), PolyWord::lastLetter(), DArray::lastRow(), PolyWord::length(), VectorOf::length(), ListOf::length(), DListOf::length(), Chars::length(), VectorPtrOf::length(), Subgroup::look(), SGofFreeGroup::look(), Group::look(), DerivedObjectOf::look(), SetIterator::look(), Elt::look(), Group::makeIdentity(), SGOfNilpotentGroup::makePresentation(), Group::multiply(), AbelianGroup::newToOldGens(), SetIteratorData::next(), QuickAssociationsIteratorRep::next(), Group::nextElt(), SGOfNilpotentGroup::normalClosureBasis(), SGOfNilpotentGroup::normalClosureGens(), AbelianWord::numberOfGenerators(), PolyWord::numberOfLetters(), AbelianGroup::oldInAbelianForm(), AbelianGroup::oldToNewGens(), Elt::operator *(), AbelianWord::operator *(), Elt::operator *=(), PolyWord::operator Word(), Chars::operator const char *(), SubgroupGraph::operator<(), PolyWord::operator<(), AbelianGroup::operator<(), SetOf::operator<(), ListIterator::operator<(), ListOf::operator<(), DListIterator::operator<(), DListOf::operator<(), Chars::operator<(), AssociationsIterator::operator<(), AssociationsOf::operator<(), AbelianWord::operator<(), DiffHistory::operator<<(), AbelianGroup::operator<<(), SetOf::operator<<(), ListOf::operator<<(), DListOf::operator<<(), VectorPtrOf::operator<<(), AbelianWord::operator<<(), DiffHistory::operator==(), Group::operator==(), VectorOf::operator==(), SetIterator::operator==(), SetIteratorData::operator==(), QuickAssociationsIterator::operator==(), QuickAssociationsIteratorRep::operator==(), ListIterator::operator==(), ListIteratorRep::operator==(), DListIterator::operator==(), DListIteratorRep::operator==(), DArray::operator==(), Chars::operator==(), AssociationsIterator::operator==(), AssociationsIteratorRep::operator==(), VectorPtrOf::operator==(), Elt::operator==(), AbelianWord::operator==(), VectorOf::operator[](), DArray::operator[](), Chars::operator[](), VectorPtrOf::operator[](), AbelianWord::operator[](), SGOfNilpotentGroup::order(), AbelianGroup::order(), AbelianGroup::orderOfAuto(), AbelianGroup::orderOfElt(), AbelianGroup::orderOfTheTorsionSubgroup(), AbelianGroup::pBlockOfElt(), AbelianGroup::pHeightOfElt(), SGofFreeGroup::parentGroup(), SGOfNilpotentGroup::parentGroup(), SGOfNilpotentGroup::parentIsInitialized(), StackOf::pop(), StackOf::popAll(), WordOrder::possibleReduction(), AheadInfo::possibleReduction(), WordOrder::possibleReductionAhead(), DiffHistoryVtx::possibleReductionAhead(), DiffHistory::possibleReductionAhead(), SubgroupGraph::powerInSubgroup(), AbelianGroup::powerOfEltInSubgroup(), SGOfNilpotentGroup::preimageBasis(), SGOfNilpotentGroup::preimageIsInitialized(), AbelianGroup::primeFormInOldGens(), SGOfNilpotentGroup::printBasis(), AbelianGroup::printInPrimaryForm(), PolyWord::printOn(), DiffHistoryVtx::printOn(), DiffHistory::printOn(), AbelianGroup::printPrimaryDec(), SGofFreeGroup::printWord(), AbelianGroup::printWordInNewGens(), PolyWord::raiseToPower(), Group::raiseToPower(), SubgroupGraph::rank(), AbelianGroup::rankOfFreeAbelianFactor(), SGOfNilpotentGroup::readIPC(), WordOrder::reduction(), DiffHistoryVtx::reduction(), DiffHistory::reduction(), ListIteratorRep::reset(), DListIteratorRep::reset(), AssociationsIteratorRep::reset(), ListOf::reverse(), DListOf::reverse(), DiffHistory::sameLengthWords(), WordOrder::selfInverse(), DListIteratorRep::setToEnd(), WordOrder::signature(), ListOf::splice(), DListOf::splice(), SGOfNilpotentGroup::subgroupClass(), ListOf::sublist(), DListOf::sublist(), SubgroupGraph::targetOfGenerator(), SubgroupGraph::targetOfLabel(), SGOfNilpotentGroup::theHirschNumber(), PolyWord::toChars(), WordOrder::update(), VectorOf::val(), VectorPtrOf::val(), DListIterator::valid(), SetIterator::value(), QuickAssociationsIterator::value(), ListIterator::value(), DListIterator::value(), AssociationsIterator::value(), QuickAssociationsOf::valueOf(), AssociationsOf::valueOf(), SubgroupGraph::vertexCount(), DArray::width(), SGofFreeGroup::wordProblem(), and SGOfNilpotentGroup::writeIPC().

template<class Rep>
Rep * ObjectOf<Rep>::enhance ( ) const [inline, protected]
 

Returns a pointer to its representation object

Warning:
for altering an object without triggering cloning. Use to change theRep without altering semantics.

Reimplemented in Elt, SetIterator, DerivedObjectOf, Group, SGofFreeGroup, and Subgroup.

Definition at line 147 of file ObjectOf.h.

Referenced by SGofFreeGroup::MHallCompletion(), PolyWord::PolyWord(), VectorOf::VectorOf(), VectorPtrOf::VectorPtrOf(), Group::areEqual(), SubgroupGraph::conjugateInSubgroup(), SGofFreeGroup::conjugateInSubgroup(), SubgroupGraph::conjugateTo(), SGofFreeGroup::conjugateTo(), SGofFreeGroup::contains(), Subgroup::enhance(), SGofFreeGroup::enhance(), Group::enhance(), DerivedObjectOf::enhance(), SetIterator::enhance(), Elt::enhance(), SubgroupGraph::equalTo(), SGofFreeGroup::equalTo(), SubgroupGraph::findIndex(), SGofFreeGroup::findIndex(), SubgroupGraph::findWhiteheadBasis(), SGofFreeGroup::findWhiteheadBasis(), SGofFreeGroup::generatesTheFreeGroup(), SubgroupGraph::inNielsenWords(), SGofFreeGroup::inNielsenWords(), SGofFreeGroup::intersection(), SubgroupGraph::isAFreeFactor(), SGofFreeGroup::isAFreeFactor(), SGofFreeGroup::isAbelian(), Group::isAbelian(), SGofFreeGroup::isFinite(), Group::isFinite(), SGofFreeGroup::isInfinite(), Group::isInfinite(), SGofFreeGroup::isMalnormal(), SGofFreeGroup::isNormal(), SGofFreeGroup::isTrivial(), Group::isTrivial(), SGofFreeGroup::join(), SubgroupGraph::nielsenBasis(), SGofFreeGroup::nielsenBasis(), SubgroupGraph::nielsenWord(), SGofFreeGroup::nielsenWord(), SubgroupGraph::normalizer(), SGofFreeGroup::normalizer(), SGofFreeGroup::order(), SGofFreeGroup::powerInSubgroup(), SGofFreeGroup::rank(), SetOf::rehash(), SubgroupGraph::rightSchreierRepresentative(), and SGofFreeGroup::rightSchreierRepresentative().

template<class Rep>
Rep * ObjectOf<Rep>::change ( ) [inline, protected]
 

Returns a pointer to its representation object For safe read/write access.

Reimplemented in Elt, SetIterator, DerivedObjectOf, Group, SGofFreeGroup, and Subgroup.

Definition at line 153 of file ObjectOf.h.

Referenced by SubgroupGraph::MHallComplete(), SetOf::adjoinElement(), PolyWord::append(), VectorOf::append(), ListOf::append(), DListOf::append(), VectorPtrOf::append(), DArray::assignCol(), QuickAssociationsOf::bind(), AssociationsOf::bind(), Subgroup::change(), SGofFreeGroup::change(), Group::change(), DerivedObjectOf::change(), SetIterator::change(), Elt::change(), PolyWord::clear(), DArray::colDelAfter(), DArray::colDelBefore(), DArray::colDelRange(), DArray::colInsAfter(), DArray::colInsBefore(), AbelianGroup::computeCyclicDecomposition(), SubgroupGraph::contains(), AbelianGroup::findPrimaryBasis(), PolyWord::freelyReduce(), DiffHistory::improveBy(), ListOf::insert(), DListOf::insert(), SubgroupGraph::joinConjugate(), SetIterator::next(), QuickAssociationsIterator::next(), ListIterator::next(), DListIterator::next(), AssociationsIterator::next(), SubgroupGraph::operator>(), PolyWord::operator>(), AbelianGroup::operator>(), SetOf::operator>(), ListIterator::operator>(), ListOf::operator>(), DListIterator::operator>(), DListOf::operator>(), operator>(), Chars::operator>(), AssociationsIterator::operator>(), AssociationsOf::operator>(), AbelianWord::operator>(), DArray::operator>>(), Chars::operator>>(), VectorOf::operator[](), DArray::operator[](), Chars::operator[](), VectorPtrOf::operator[](), AbelianWord::operator[](), StackOf::pop(), StackOf::popAll(), VectorOf::prepend(), ListOf::prepend(), DListOf::prepend(), VectorPtrOf::prepend(), DListIterator::previous(), StackOf::push(), DArray::reSize(), SubgroupGraph::readPiece(), VectorOf::ref(), VectorPtrOf::ref(), SetOf::removeAllElements(), SetOf::removeElement(), ListOf::removeElement(), DListOf::removeElement(), ListOf::removeElementOfIndex(), DListOf::removeElementOfIndex(), PolyWord::removeFirstLetter(), SetIterator::reset(), QuickAssociationsIterator::reset(), ListIterator::reset(), DListIterator::reset(), AssociationsIterator::reset(), DArray::rowDelAfter(), DArray::rowDelBefore(), DArray::rowDelRange(), DArray::rowInsAfter(), DArray::rowInsBefore(), DListIterator::setToEnd(), VectorOf::shrink(), VectorPtrOf::shrink(), ListOf::splice(), DListOf::splice(), QuickAssociationsOf::unbind(), and AssociationsOf::unbind().

template<class Rep>
void ObjectOf<Rep>::acquireRep ( const Rep * rep ) [inline, protected]
 

Special `assignment-like' member: to permit an object to acquire another's representation consistently useful in delegation of object-level methods

Definition at line 160 of file ObjectOf.h.

template<class Rep>
void ObjectOf<Rep>::force_derivation ( ) [inline, private]
 

With this member RefCounter is forced to be an accessible base class of Rep

Reimplemented in BaseObjectOf.

Definition at line 201 of file ObjectOf.h.


Member Data Documentation

template<class Rep>
Rep * ObjectOf<Rep>::theRep [private]
 

Pointer to the representation object

Definition at line 193 of file ObjectOf.h.


The documentation for this class was generated from the following file:
Generated at Tue Jun 19 09:50:00 2001 for Magnus Classes by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001