home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Libraries / Log Library 1.01 / LogLibComponent ƒ / LogLibComponent.h < prev    next >
Encoding:
Text File  |  1994-07-03  |  3.8 KB  |  118 lines  |  [TEXT/KAHL]

  1. /*
  2.     LogLibComponent.h
  3.     
  4.     Public Header file for user interaction with the LogLib Component.
  5.     
  6. */
  7.  
  8. // ensure that this header is only included once...
  9. #pragma once
  10.  
  11. // make doubly-sure...
  12. #ifndef __H_LogLibComponent__
  13. #define __H_LogLibComponent__
  14.  
  15. // include the Components.h file
  16. #ifndef __COMPONENTS__
  17. #include <Components.h>
  18. #endif
  19.  
  20. /*
  21.     In the universal headers the definition for ComponentCallNow has been changed so that the equal sign
  22.     is no longer needed.  This kludge will allow the file to be compiled by either the old or universal headers.
  23. */
  24. #if NEW_HEADERS_AVAILABLE
  25. #define EQUALS
  26. #else
  27. #define EQUALS =
  28. #endif
  29.  
  30. // the LogLib Component type
  31. #define kLogLibComponentType        ('LogC')
  32.  
  33. #ifndef kComponentWildCard
  34. #define kComponentWildCard        (0L)
  35. #endif
  36.  
  37. #define kLogDefaultCreator        ('R*ch')
  38. #define kLogDefaultType            ('TEXT')
  39. #define kLogDefaultOpenSetting        (false)
  40. #define kNewLine                0x0d        /* the Mac's newline character */
  41.  
  42. // the LogLib Component selector codes
  43. #define kLogStorage                (0x10)
  44. #define kLogDefaults                (0x11)
  45. #define kLogSetup                (0x12)
  46. #define kLogSetupFSp            (0x13)
  47. #define kLogText                (0x14)
  48. #define kLogTime                (0x15)
  49. #define kLogWrite                (0x16)
  50. #define kLogPText                (0x17)
  51. #define kLogPTime                (0x18)
  52.  
  53. // the LogLib Storage Structure
  54. typedef struct loglibstruct{
  55.     // the basics
  56.     FSSpec            logSpec;            // FSSpec for the log file
  57.     short            fileRefNum;        // the file's reference number
  58.     
  59.     // the settings
  60.     Boolean            inited;            // did the FSSpec get inited or not?
  61.     Boolean            keepLogOpen;        // Should the log be kept open at all times? Default is no
  62.     Boolean            savedValue;        // saved for when user requests direct access to the file...
  63.     Boolean            wasOpened;        // was the file opened at all yet?
  64.     OSType            creator;            // Creator for the log type, default is 'R*ch'
  65.     OSType            type;            // Type for the log, default is 'TEXT'
  66.     
  67.     // my standard component storage stuff
  68.     Component        self;                // the component saves itself
  69.     ComponentInstance    kidnapper;            // when targeted, the component saves its kidnapper
  70.     Component        delegate;            // when this component targets another, it saves the info
  71.     ComponentInstance    delegated;
  72.     short            resFileRefNum;        // this is the ref number for the components resource file.
  73.     
  74. } LogLibRec,* LogLibPtr,** LogLibHdl;
  75.  
  76. // so C++ compilers won't choke...
  77. #ifdef __cplusplus
  78. extern "C" {
  79. #endif
  80.  
  81. // set the default type&creator, also indicate whether to keep log open or open/close as needed.
  82. pascal ComponentResult LogDefaults(ComponentInstance logcomp,OSType creator,OSType type,Boolean keepOpen)\
  83.         EQUALS ComponentCallNow( kLogDefaults , 10 );
  84.         
  85. // set the file name & location for the log file
  86. pascal ComponentResult LogSetup(ComponentInstance logcomp,StringPtr name,short vref, long dirid)\
  87.         EQUALS ComponentCallNow(kLogSetup,0x0a);
  88.  
  89. // same as above but use an FSSpec that has already been created.
  90. pascal ComponentResult LogSetupFSSpec(ComponentInstance logcomp,FSSpec* fsspecptr)\
  91.         EQUALS ComponentCallNow(kLogSetupFSp,0x04);
  92.  
  93. // add the text pointed to by buffer to the log
  94. pascal ComponentResult LogText(ComponentInstance logcomp,char* buffer)\
  95.         EQUALS ComponentCallNow(kLogText,0x04);
  96.  
  97. // add the date, time, and the text pointed to by buffer to the log
  98. pascal ComponentResult LogTime(ComponentInstance logcomp,char* buffer)\
  99.         EQUALS ComponentCallNow(kLogTime,0x04);
  100.  
  101. // write a buffer to the log file
  102. pascal ComponentResult LogWrite(ComponentInstance logcomp,long* size,Ptr buffer)\
  103.         EQUALS ComponentCallNow(kLogWrite,0x08);
  104.  
  105. // add the pascal string pointed to by buffer to the log
  106. pascal ComponentResult LogPText(ComponentInstance logcomp,unsigned char* buffer)\
  107.         EQUALS ComponentCallNow(kLogPText,0x04);
  108.  
  109. // add the date, time, and the pascal string pointed to by buffer to the log
  110. pascal ComponentResult LogPTime(ComponentInstance logcomp,unsigned char* buffer)\
  111.         EQUALS ComponentCallNow(kLogPTime,0x04);
  112.         
  113. #ifdef __cplusplus
  114. }
  115. #endif
  116.  
  117. #endif
  118.