home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv8.zip / VACPP / IBMCPP / samples / VISBUILD / RAPSHEET / CPPOV23 / IRSLTREC.CPP < prev    next >
Text File  |  1995-05-14  |  5KB  |  136 lines

  1. //****************************************************************************
  2. // IResultRecord Class - C++ Source File (irsltrec.cpp)                      *
  3. //                                                                           *
  4. // COPYRIGHT: Copyright (C) International Business Machines Corp., 1994,1995 *
  5. //                                                                           *
  6. // DISCLAIMER OF WARRANTIES:                                                 *
  7. //   The following [enclosed] code is sample code created by IBM             *
  8. //   Corporation.  This sample code is not part of any standard IBM product  *
  9. //   and is provided to you solely for the purpose of assisting you in the   *
  10. //   development of your applications.  The code is provided "AS IS",        *
  11. //   without warranty of any kind.  IBM shall not be liable for any damages  *
  12. //   arising out of your use of the sample code, even if they have been      *
  13. //   advised of the possibility of such damages.                             *
  14. //****************************************************************************
  15. //NOTE: WE RECOMMEND USING A FIXED-SPACE FONT TO LOOK AT THE SOURCE.
  16. //
  17.  
  18. #include "irsltrec.hpp"               //IResultRecord header
  19.  
  20. /*******************************************************************
  21.  * Manager Member Functions 
  22.  *******************************************************************/
  23. IResultRecord :: IResultRecord() :
  24.                      IRecord(),
  25.                      dMySize(32759L)
  26. {
  27.    dParentSize = size();
  28.    setSize( dParentSize + dMySize );  //pad with NULLs
  29. }
  30.  
  31. IResultRecord :: IResultRecord ( const IString & stringData ) :
  32.                      IRecord(),
  33.                      dMySize(32759L)
  34. {
  35.    dParentSize = size();
  36.    *this = stringData;
  37.    setSize( dParentSize + dMySize );  //truncate or pad as appropriate
  38. }
  39.  
  40. IResultRecord :: IResultRecord ( const IResultRecord & aRecord ) :
  41.                      IRecord(),
  42.                      dMySize(32759L)
  43. {
  44.    dParentSize = size();
  45.    *this = aRecord;
  46.   /*------------------------------------------------------------------
  47.    * NOTE:  this record would have gotten set with the correct size
  48.    *        if had called the IRecord (aRecord) constructor, but
  49.    *        need to determine what dParentSize is (the assignment
  50.    *        operators need this info).
  51.    *-----------------------------------------------------------------*/
  52. }
  53.  
  54. IResultRecord :: ~IResultRecord()
  55. {
  56. }
  57.  
  58. /*------------------------------------------------------------------------------
  59. | IResultRecord::asDebugInfo                                                   |
  60. |                                                                              |
  61. | Generate a string that identifies for debugging purposes what data           |
  62. | an IResultRecord instance contains.                                          |
  63. |                                                                              |
  64. ------------------------------------------------------------------------------*/
  65. IString IResultRecord :: asDebugInfo () const
  66. {
  67.   IString debugInfo("size=" + IString(dMySize) + ",");
  68.   debugInfo += "numResults=" + IString(numResults()) + ",";
  69.   debugInfo += "data=" + resultData() + ".";
  70.  
  71.   return debugInfo;
  72. }
  73.  
  74. /*******************************************************************
  75.  * Access Member Functions 
  76.  *******************************************************************/
  77. /*------------------------------------------------------------------
  78.  * numResults
  79.  *-----------------------------------------------------------------*/
  80. unsigned short IResultRecord :: numResults () const
  81. {
  82.    unsigned short buffer;
  83.    return field(buffer, 1);
  84. }
  85.  
  86. IResultRecord & IResultRecord :: setNumResults
  87.   (unsigned short iNumResults)
  88. {
  89.    setField(iNumResults, 1);
  90.    return *this;
  91. }
  92.  
  93. /*------------------------------------------------------------------
  94.  * resultsData
  95.  *-----------------------------------------------------------------*/
  96. IString IResultRecord :: resultData () const
  97. {
  98.    IString buffer;
  99.    return field(buffer, 3, 32757);
  100.    }
  101.  
  102. IResultRecord & IResultRecord :: setResultData
  103.   (const IString & iResultData)
  104. {
  105.    setField(iResultData, 3, 32757);
  106.    return *this;
  107. }
  108.  
  109. /*******************************************************************
  110.  * Implementor Member Functions 
  111.  *******************************************************************/
  112. /*------------------------------------------------------------------------------
  113. | Function Name: IResultRecord :: operator =
  114. |
  115. | Implementation:
  116. |   Replace our data with the source IResultRecord data.
  117. ------------------------------------------------------------------------------*/
  118. IResultRecord & IResultRecord :: operator = ( const IResultRecord & aRecord )
  119. {
  120.   IRecord::operator=(aRecord);
  121.   return( *this );
  122. }
  123.  
  124. /*------------------------------------------------------------------------------
  125. | Function Name: IResultRecord :: operator =
  126. |
  127. | Implementation:
  128. |   Replace our data with the source IString data.
  129. ------------------------------------------------------------------------------*/
  130. IResultRecord & IResultRecord :: operator = ( const IString & aString )
  131. {
  132.   IRecord::operator=(aString);
  133.   setSize (dParentSize + dMySize);
  134.   return( *this );
  135. }
  136.