home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / APPS / hl10osrc.lzh / Include / CardRecord.h < prev    next >
Text File  |  1994-04-23  |  2KB  |  57 lines

  1. /* -*- Mode: C -*- */
  2. /* CardRecord.h - A record as a card
  3.  * Created by Robert Heller on Fri Dec  6 20:20:08 1991
  4.  *
  5.  * ------------------------------------------------------------------
  6.  * Home Libarian by Deepwoods Software
  7.  * Common Header Files
  8.  * ------------------------------------------------------------------
  9.  * Modification History:
  10.  * ------------------------------------------------------------------
  11.  * Contents:
  12.  * ------------------------------------------------------------------
  13.  * 
  14.  * 
  15.  * Copyright (c) 1991,1992 by Robert heller (D/B/A Deepwoods Software)
  16.  *        All Rights Reserved
  17.  * 
  18.  */
  19. #ifndef _CRECORD_
  20. #define _CRECORD_
  21. #include <common.h>
  22. #include <Card.h>
  23.  
  24. // This class maps between the card on disk (as a record) and the card
  25. // in memory (as a Card structure).
  26. // RawData is the disk record.  Card is the structure representation
  27. class CardRecord {
  28.     Record RawData;
  29.     Card* card;
  30.     Card* RecordToCard();    // parse a card record into a Card*
  31.     void UpdateRecord();    // convert a Card* to a record
  32. public:
  33.     // Constructors/type converters
  34.           CardRecord(Record* record);    // Record to CardRecord
  35.           CardRecord(CoreItem* coreitem);    // CoreItem to CardRecord
  36.           CardRecord(Card* card);        // Card to CardRecord
  37.           CardRecord(CardRecord& cardrecord); // CardRecord to CardRecord
  38.          ~CardRecord();             // get rid of a CardRecord
  39.     // pointer magic - make a CardRecord look just like a Card*
  40.     Card* operator -> () {return card;}
  41.     Card& operator *  () {return *card;}
  42.     Card* operator &  () {return card;}
  43.     // copier function
  44.     CardRecord& operator = (CardRecord& cardrecord);
  45.     // Convert a CardRecord to a plain Record
  46.     operator Record  ()
  47.         {
  48.             UpdateRecord();
  49.             Record record = RawData;
  50.             return record;
  51.         }
  52. };
  53.  
  54. #endif
  55.  
  56.  
  57.