home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v1.zip
/
IBMCPP
/
IBMCLASS
/
ILNSEQ.C
< prev
next >
Wrap
Text File
|
1993-09-22
|
4KB
|
88 lines
/*******************************************************************************
* *
* COPYRIGHT: *
* IBM C/C++ Tools Version 2.01 - Collection Class Library *
* Licensed Materials - Property of IBM *
* (C) Copyright IBM Corporation 1992, 1993 *
* All Rights Reserved *
* US Government Users Restricted Rights - Use, duplication, or disclosure *
* restricted by GSA ADP Schedule Contract with IBM Corp. *
* *
*******************************************************************************/
#include <ibexcept.h>
template <class Element, class ElementOps>
IBoolean IGLinkedSequence <Element, ElementOps>::Cursor::setToFirst () {
return ivCollection->setToFirst (*this);
}
template <class Element, class ElementOps>
IBoolean IGLinkedSequence <Element, ElementOps>::Cursor::setToNext () {
return ivCollection->setToNext (*this);
}
template <class Element, class ElementOps>
IBoolean 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, IOutOfMemoryText)
return result;
}
template <class Element, class ElementOps>
void IGLinkedSequence <Element, ElementOps>::Operations::
deleteNode (void* node) const {
delete (Node*) node;
}
template < class Element, class ElementOps >
IBoolean IGLinkedSequence < Element, ElementOps >::Operations::
constantFunctionIteration (void *iterationFunction,
void* env,
void const* node) {
return (*(IBoolean (*) (Element const&, void*)) iterationFunction)
(((Node const*)node)->ivElement, env);
}
template < class Element, class ElementOps >
IBoolean IGLinkedSequence < Element, ElementOps >::Operations::
functionIteration (void *iterationFunction, void* env, void* node) {
return (*(IBoolean (*) (Element&, void*)) iterationFunction)
(((Node*)node)->ivElement, env);
}
template < class Element, class ElementOps >
IBoolean IGLinkedSequence < Element, ElementOps >::Operations::
constantIteratorIteration (void* iterator, void const* node) {
return ((IConstantIterator < Element >*)iterator)->
applyTo (((Node const*)node)->ivElement);
}
template < class Element, class ElementOps >
IBoolean 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 );
}