home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) IBM Corp. 1992 */
- #include <ibexcept.h>
-
- template <class Element, class ElementOps>
- Boolean IGLinkedSequence <Element, ElementOps>::Cursor::setToFirst () {
- return ivCollection->setToFirst (*this);
- }
-
- template <class Element, class ElementOps>
- Boolean IGLinkedSequence <Element, ElementOps>::Cursor::setToNext () {
- return ivCollection->setToNext (*this);
- }
-
- template <class Element, class ElementOps>
- Boolean IGLinkedSequence <Element, ElementOps>::Cursor::isValid () const {
- return ivNode != 0;
- }
-
- template <class Element, class ElementOps>
- void IGLinkedSequence <Element, ElementOps>::Cursor::invalidate () {
- ivNode = 0;
- }
-
- template <class Element, class ElementOps>
- ILinkedSequenceImpl::Node* IGLinkedSequence <Element, ElementOps>::Operations::
- newNode (void const* node) const {
- Node *result = new Node (((Node const*) node)->ivElement);
- ICHECK (result != 0, IOutOfMemory, "out of memory");
- return result;
- }
-
- template <class Element, class ElementOps>
- void IGLinkedSequence <Element, ElementOps>::Operations::
- deleteNode (void* node) const {
- delete (Node*) node;
- }
-
- template < class Element, class ElementOps >
- Boolean IGLinkedSequence < Element, ElementOps >::Operations::
- constantFunctionIteration (void *iterationFunction,
- void* env,
- void const* node) {
- return (*(Boolean (*) (Element const&, void*)) iterationFunction)
- (((Node const*)node)->ivElement, env);
- }
-
- template < class Element, class ElementOps >
- Boolean IGLinkedSequence < Element, ElementOps >::Operations::
- functionIteration (void *iterationFunction, void* env, void* node) {
- return (*(Boolean (*) (Element&, void*)) iterationFunction)
- (((Node*)node)->ivElement, env);
- }
-
- template < class Element, class ElementOps >
- Boolean IGLinkedSequence < Element, ElementOps >::Operations::
- constantIteratorIteration (void* iterator, void const* node) {
- return ((IConstantIterator < Element >*)iterator)->
- applyTo (((Node const*)node)->ivElement);
- }
-
- template < class Element, class ElementOps >
- Boolean IGLinkedSequence < Element, ElementOps >::Operations::
- iteratorIteration (void* iterator, void* node) {
- return ((IIterator < Element >*)iterator)->
- applyTo (((Node*)node)->ivElement);
- }
-
- template < class Element, class ElementOps >
- long IGLinkedSequence < Element, ElementOps >::Operations::
- functionComparison (void *comparisonFunction,
- void const* node1,
- void const* node2) {
- return (*(long (*) (Element const&, Element const&) const)
- comparisonFunction)
- ( ((Node const*)node1)->ivElement,
- ((Node const*)node2)->ivElement );
- }
-
- template <class Element, class ElementOps>
- ElementOps IGLinkedSequence <Element, ElementOps>::cvElementOps;