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

  1. //****************************************************************************
  2. // IArrestRecord Class - C++ Source File (iarstrec.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 "iarstrec.hpp"               //IArrestRecord header
  19.  
  20. /*******************************************************************
  21.  * Manager Member Functions 
  22.  *******************************************************************/
  23. IArrestRecord :: IArrestRecord() :
  24.                      IRecord(),
  25.                      dMySize(14L)
  26. {
  27.    dParentSize = size();
  28.    setSize( dParentSize + dMySize );  //pad with '\x00'
  29. }
  30.  
  31. IArrestRecord :: IArrestRecord ( const IString & stringData ) :
  32.                      IRecord(),
  33.                      dMySize(14L)
  34. {
  35.    dParentSize = size();
  36.    *this = stringData;
  37.    setSize( dParentSize + dMySize );  //truncate or pad as appropriate
  38. }
  39.  
  40. IArrestRecord :: IArrestRecord ( const IArrestRecord & aRecord ) :
  41.                      IRecord(),
  42.                      dMySize(14L)
  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. IArrestRecord :: ~IArrestRecord()
  55. {
  56. }
  57.  
  58. /*******************************************************************
  59.  * Access Member Functions 
  60.  *******************************************************************/
  61. /*------------------------------------------------------------------
  62.  * charge
  63.  *-----------------------------------------------------------------*/
  64. unsigned short IArrestRecord :: charge () const
  65. {
  66.    unsigned short buffer;
  67.    return field(buffer, 1);
  68. }
  69.  
  70. IArrestRecord & IArrestRecord :: setCharge
  71.   (unsigned short iCharge)
  72. {
  73.    setField(iCharge, 1);
  74.    return *this;
  75. }
  76.  
  77. /*------------------------------------------------------------------
  78.  * status
  79.  *-----------------------------------------------------------------*/
  80. unsigned short IArrestRecord :: status () const
  81. {
  82.    unsigned short buffer;
  83.    return field(buffer, 3);
  84. }
  85.  
  86. IArrestRecord & IArrestRecord :: setStatus
  87.   (unsigned short iStatus)
  88. {
  89.    setField(iStatus, 3);
  90.    return *this;
  91. }
  92.  
  93. /*------------------------------------------------------------------
  94.  * statusDate
  95.  *-----------------------------------------------------------------*/
  96. IString IArrestRecord :: statusDate () const
  97. {
  98.    IString buffer;
  99.    return field(buffer, 5, 10);   //pad with NULLs
  100. }
  101.  
  102. IArrestRecord & IArrestRecord :: setStatusDate
  103.   (const IString & iStatusDate)
  104. {
  105.    setField(iStatusDate, 5, 10);       //pad with NULLs
  106.    return *this;
  107. }
  108.  
  109.  
  110. /*******************************************************************
  111.  * Implementor Member Functions 
  112.  *******************************************************************/
  113. /*------------------------------------------------------------------------------
  114. | Function Name: IArrestRecord :: operator =
  115. |
  116. | Implementation:
  117. |   Replace our data with the source IArrestRecord data.
  118. ------------------------------------------------------------------------------*/
  119. IArrestRecord & IArrestRecord :: operator = ( const IArrestRecord & aRecord )
  120. {
  121.   IRecord::operator=(aRecord);
  122.   return( *this );
  123. }
  124.  
  125. /*------------------------------------------------------------------------------
  126. | Function Name: IArrestRecord :: operator =
  127. |
  128. | Implementation:
  129. |   Replace our data with the source IString data.
  130. ------------------------------------------------------------------------------*/
  131. IArrestRecord & IArrestRecord :: operator = ( const IString & aString )
  132. {
  133.   IRecord::operator=(aString);
  134.   setSize (dParentSize + dMySize);
  135.   return( *this );
  136. }
  137.