home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
VSCPPv8.zip
/
VACPP
/
IBMCPP
/
samples
/
VISBUILD
/
VBSAMPLE
/
IORDRREC.CPP
< prev
next >
Wrap
Text File
|
1995-05-10
|
17KB
|
388 lines
/*******************************************************************************
* FILE NAME: iordrrec.cpp *
* *
* DESCRIPTION: *
* Functions to implement the class(es): *
* IOrderedRecord - Base class for classes that represent records *
* that have an ordering relationship. *
* *
* COPYRIGHT: *
* IBM(R) VisualAge(TM) C++ for OS/2(R), Version 3 *
* (C) Copyright IBM Corporation 1991, 1995. *
* - Licensed Material - Program-Property of IBM - All Rights Reserved. *
* US Government Users Restricted Rights - Use, duplication, or disclosure *
* restricted by GSA ADP Schedule Contract with IBM Corp. *
* *
* This program will not run in DOS mode. *
* *
* DISCLAIMER OF WARRANTIES: *
* The following [enclosed] code is sample code created by IBM *
* Corporation. This sample code is not part of any standard IBM product *
* and is provided to you solely for the purpose of assisting you in the *
* development of your applications. The code is provided "AS IS", *
* without warranty of any kind. IBM shall not be liable for any damages *
* arising out of your use of the sample code, even if they have been *
* advised of the possibility of such damages. *
*******************************************************************************/
#include <iordrrec.hpp>
// Define the functions and static data members to be exported.
// Ordinals 200 through 249 are reserved for use by IOrderedRecord.
#pragma export(IOrderedRecord::IOrderedRecord(),, 200)
#pragma export(IOrderedRecord::IOrderedRecord(const IString&),, 201)
#pragma export(IOrderedRecord::IOrderedRecord(const IOrderedRecord&),, 202)
#pragma export(IOrderedRecord::isOrdered() const,, 203)
#pragma export(IOrderedRecord::operator!=(const IOrderedRecord&) const,, 204)
#pragma export(IOrderedRecord::operator<(const IOrderedRecord&) const,, 205)
#pragma export(IOrderedRecord::operator<=(const IOrderedRecord&) const,, 206)
#pragma export(IOrderedRecord::operator=(const IOrderedRecord&),, 207)
#pragma export(IOrderedRecord::operator=(const IString&),, 208)
#pragma export(IOrderedRecord::operator==(const IOrderedRecord&) const,, 209)
#pragma export(IOrderedRecord::operator>(const IOrderedRecord&) const,, 210)
#pragma export(IOrderedRecord::operator>=(const IOrderedRecord&) const,, 211)
#pragma export(IOrderedRecord::~IOrderedRecord(),, 212)
#pragma export(operator!=(const IOrderedRecord&,const IString&),, 213)
#pragma export(operator!=(const IString&,const IOrderedRecord&),, 214)
#pragma export(operator<(const IOrderedRecord&,const IString&),, 215)
#pragma export(operator<(const IString&,const IOrderedRecord&),, 216)
#pragma export(operator<=(const IOrderedRecord&,const IString&),, 217)
#pragma export(operator<=(const IString&,const IOrderedRecord&),, 218)
#pragma export(operator==(const IOrderedRecord&,const IString&),, 219)
#pragma export(operator==(const IString&,const IOrderedRecord&),, 220)
#pragma export(operator>(const IOrderedRecord&,const IString&),, 221)
#pragma export(operator>(const IString&,const IOrderedRecord&),, 222)
#pragma export(operator>=(const IOrderedRecord&,const IString&),, 223)
#pragma export(operator>=(const IString&,const IOrderedRecord&),, 224)
// It's possible for the caller of the external entry points to have a
// different C library environment. Make sure the exception handler for
// our library environment is registered on entry and deregistered on exit.
#pragma handler(IOrderedRecord::IOrderedRecord())
#pragma handler(IOrderedRecord::IOrderedRecord(const IString&))
#pragma handler(IOrderedRecord::IOrderedRecord(const IOrderedRecord&))
#pragma handler(IOrderedRecord::isOrdered())
#pragma handler(IOrderedRecord::operator!=(const IOrderedRecord&))
#pragma handler(IOrderedRecord::operator<(const IOrderedRecord&))
#pragma handler(IOrderedRecord::operator<=(const IOrderedRecord&))
#pragma handler(IOrderedRecord::operator=(const IOrderedRecord&))
#pragma handler(IOrderedRecord::operator=(const IString&))
#pragma handler(IOrderedRecord::operator==(const IOrderedRecord&))
#pragma handler(IOrderedRecord::operator>(const IOrderedRecord&))
#pragma handler(IOrderedRecord::operator>=(const IOrderedRecord&))
#pragma handler(IOrderedRecord::~IOrderedRecord())
#pragma handler(operator!=(const IOrderedRecord&,const IString&))
#pragma handler(operator!=(const IString&,const IOrderedRecord&))
#pragma handler(operator<(const IOrderedRecord&,const IString&))
#pragma handler(operator<(const IString&,const IOrderedRecord&))
#pragma handler(operator<=(const IOrderedRecord&,const IString&))
#pragma handler(operator<=(const IString&,const IOrderedRecord&))
#pragma handler(operator==(const IOrderedRecord&,const IString&))
#pragma handler(operator==(const IString&,const IOrderedRecord&))
#pragma handler(operator>(const IOrderedRecord&,const IString&))
#pragma handler(operator>(const IString&,const IOrderedRecord&))
#pragma handler(operator>=(const IOrderedRecord&,const IString&))
#pragma handler(operator>=(const IString&,const IOrderedRecord&))
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: IOrderedRecord
|
| Implementation:
| Default initialization of the base class is okay.
|-----------------------------------------------------------------------------*/
IOrderedRecord :: IOrderedRecord()
{
;
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: IOrderedRecord
|
| Implementation:
| Initialize with the similar base class constructor.
|-----------------------------------------------------------------------------*/
IOrderedRecord :: IOrderedRecord ( const IString & recordData ) :
IRecord( recordData )
{
;
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: IOrderedRecord
|
| Implementation:
| Initialize with the similar base class constructor.
|-----------------------------------------------------------------------------*/
IOrderedRecord :: IOrderedRecord ( const IOrderedRecord & aRecord ) :
IRecord( aRecord )
{
;
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: ~IOrderedRecord
|
| Implementation:
| Default destruction is okay.
|-----------------------------------------------------------------------------*/
IOrderedRecord :: ~IOrderedRecord()
{
;
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: isOrdered
|
| Implementation:
| Of course, IOrderedRecord objects are ordered.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: isOrdered ( ) const
{
return( true );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator ==
|
| Implementation:
| Invoke the similar IString operator.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: operator == ( const IOrderedRecord & aRecord ) const
{
return( sRecordData == aRecord.sRecordData );
}
/*------------------------------------------------------------------------------
| Function Name: operator ==
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator == ( const IOrderedRecord & record1,
const IString & record2 )
{
IOrderedRecord sRecord2( record2 );
return( record1 == sRecord2 );
}
/*------------------------------------------------------------------------------
| Function Name: operator ==
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator == ( const IString & record1,
const IOrderedRecord & record2 )
{
IOrderedRecord sRecord1( record1 );
return( sRecord1 == record2 );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator !=
|
| Implementation:
| Invoke the similar IString operator.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: operator != ( const IOrderedRecord & aRecord ) const
{
return( sRecordData != aRecord.sRecordData );
}
/*------------------------------------------------------------------------------
| Function Name: operator !=
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator != ( const IOrderedRecord & record1,
const IString & record2 )
{
IOrderedRecord sRecord2( record2 );
return( record1 != sRecord2 );
}
/*------------------------------------------------------------------------------
| Function Name: operator !=
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator != ( const IString & record1,
const IOrderedRecord & record2 )
{
IOrderedRecord sRecord1( record1 );
return( sRecord1 != record2 );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator <
|
| Implementation:
| Invoke the similar IString operator.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: operator < ( const IOrderedRecord & aRecord ) const
{
return( sRecordData < aRecord.sRecordData );
}
/*------------------------------------------------------------------------------
| Function Name: operator <
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator < ( const IOrderedRecord & record1,
const IString & record2 )
{
IOrderedRecord sRecord2( record2 );
return( record1 < sRecord2 );
}
/*------------------------------------------------------------------------------
| Function Name: operator <
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator < ( const IString & record1,
const IOrderedRecord & record2 )
{
IOrderedRecord sRecord1( record1 );
return( sRecord1 < record2 );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator >
|
| Implementation:
| Invoke the similar IString operator.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: operator > ( const IOrderedRecord & aRecord ) const
{
return( sRecordData > aRecord.sRecordData );
}
/*------------------------------------------------------------------------------
| Function Name: operator >
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator > ( const IOrderedRecord & record1,
const IString & record2 )
{
IOrderedRecord sRecord2( record2 );
return( record1 > sRecord2 );
}
/*------------------------------------------------------------------------------
| Function Name: operator >
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator > ( const IString & record1,
const IOrderedRecord & record2 )
{
IOrderedRecord sRecord1( record1 );
return( sRecord1 > record2 );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator <=
|
| Implementation:
| Invoke the similar IString operator.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: operator <= ( const IOrderedRecord & aRecord ) const
{
return( sRecordData <= aRecord.sRecordData );
}
/*------------------------------------------------------------------------------
| Function Name: operator <=
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator <= ( const IOrderedRecord & record1,
const IString & record2 )
{
IOrderedRecord sRecord2( record2 );
return( record1 <= sRecord2 );
}
/*------------------------------------------------------------------------------
| Function Name: operator <=
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator <= ( const IString & record1,
const IOrderedRecord & record2 )
{
IOrderedRecord sRecord1( record1 );
return( sRecord1 <= record2 );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator >=
|
| Implementation:
| Invoke the similar IString operator.
------------------------------------------------------------------------------*/
IBoolean IOrderedRecord :: operator >= ( const IOrderedRecord & aRecord ) const
{
return( sRecordData >= aRecord.sRecordData );
}
/*------------------------------------------------------------------------------
| Function Name: operator >=
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator >= ( const IOrderedRecord & record1,
const IString & record2 )
{
IOrderedRecord sRecord2( record2 );
return( record1 >= sRecord2 );
}
/*------------------------------------------------------------------------------
| Function Name: operator >=
|
| Implementation:
| Invoke the similar IOrderedRecord virtual operator.
------------------------------------------------------------------------------*/
IBoolean operator >= ( const IString & record1,
const IOrderedRecord & record2 )
{
IOrderedRecord sRecord1( record1 );
return( sRecord1 >= record2 );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator =
|
| Implementation:
| Invoke the similar superclass assignment operator.
------------------------------------------------------------------------------*/
IOrderedRecord & IOrderedRecord :: operator = ( const IOrderedRecord & aRecord )
{
this->IRecord::operator=( aRecord );
return( *this );
}
/*------------------------------------------------------------------------------
| Function Name: IOrderedRecord :: operator =
|
| Implementation:
| Invoke the similar superclass assignment operator.
------------------------------------------------------------------------------*/
IOrderedRecord & IOrderedRecord :: operator = ( const IString & aRecord )
{
this->IRecord::operator=( aRecord );
return( *this );
}