home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / machack / Hacks96 / troz.cgi.sit / troz.cgi / MyConfiguration.h < prev    next >
C/C++ Source or Header  |  1996-06-22  |  11KB  |  303 lines

  1. #pragma once
  2. /*****
  3.  *
  4.  *    MyConfiguration.h
  5.  *
  6.  *    You will want to modify the constants in this header file to
  7.  *    set the code to compile with the particular options you want.
  8.  *    Use 1 (one) to turn an option on, 0 (zero) to turn it off.
  9.  *
  10.  *    I've marked recent additions to this file with
  11.  *        •new•
  12.  *    in a comment.
  13.  *
  14.  *    This is a support file for "Grant's CGI Framework".
  15.  *    Please see the license agreement that accompanies the distribution package
  16.  *    for licensing details.
  17.  *
  18.  *    Copyright ©1995,1996 by Grant Neufeld
  19.  *    grant@acm.com
  20.  *    http://arpp.carleton.ca/grant/
  21.  *
  22.  *****/
  23.  
  24. #include "constants.h"
  25.  
  26.  
  27. /***  CONFIGURATION OPTIONS  ***/
  28.  
  29. /**  THREADS  **/
  30.  
  31. /* if off, the thread manager must be present for the app to run */
  32. #define kCompileWithThreadsOptional        0
  33. /* if on, all Apple Events (including the CGI sdoc event) will be
  34.     spawned off as separate threads. If off, you are on your own for
  35.     threading the CGI events. */
  36. #define kCompileWithThreadedAppleEvents    0
  37. /* number of threads to preallocate; used by startupThreads.
  38.     If you've turned off kCompileWithThreadedAppleEvents and make no
  39.     calls to the MyNewThreadFromPool function, you'll probably want to
  40.     set this to zero */
  41. #define kStartupThreadsPreallocate        0
  42.  
  43.  
  44. /**  QUITTING  **/
  45.  
  46. /* if on, app will try to quit after a set time of idling */
  47. #define kCompileWithQuitOnLongIdle        0
  48. /* the amount of idle time, in ticks (60ths of a second), before
  49.     the application self quits. 60*60 is one minute in ticks. */
  50. #define kIdleTimeToQuit                    (5 * kOneMinuteInTicks)
  51. /* if on, app will not quit on idle if it was opened with no special
  52.     event - starts off by receiving an OpenApplication AppleEvent */
  53. #define kCompileWithIdleQuitOnOpenApp    0
  54. /* if memory gets 'precariously' low, the application will be set to quit.
  55.     This _may_ (note: untested) speed up the application. Needs profiling */
  56. #define kCompileWithQuitOnLowMemory        1
  57.  
  58.  
  59. /**  Modules  (CGI/ListSTAR)  **/
  60.  
  61. /* the following determine which modules are compiled */
  62. /* CGI */
  63. #define kCompileWithCGICode                1
  64. /* ListSTAR */
  65. #define kCompileWithListSTARCode        0
  66.  
  67.  
  68. /**  CGI Support  **/
  69.  
  70. /* Send-partial event support (cgiAESendPartial).
  71.     Also includes the connection field of the CGIRecord. */
  72. #define kCompileWithCGISendPartial        0
  73. /* Form handling code (all the CGIFormFields... functions).
  74.     If you turn this off, the formFields and totalFields will not
  75.     be available in the CGIHandles. */
  76. #define kCompileWithCGIFormHandling        0
  77. /* automatically format form data before calling MyCGIProcess. */
  78. #define kCompileWithCGIFormAutoProcess    0
  79. /* automatically decode parameters (convert %xx values, and special chars)
  80.     Parameters affected: path_args, http_search_args */
  81. #define kCompileWithCGIAutoDecode        0
  82. /* Used for backwards compatibility - if you have old code that
  83.     uses the responseData field of the CGIRecord (CGIHdl) structure as
  84.     a 'char *', turn off this flag (set to zero). Otherwise, just leave
  85.     it on (set to 1). If you update your old code to use responseData as
  86.     a Handle, then set this on. */
  87. #define kCompileWithCGIResponseDataAsHandle    1
  88. /* •new•15 if this is option is set, the framework will generate an
  89.     http error header if you do not set responseData in the CGIHdl.
  90.     Turning this option off is really only useful if you want to build
  91.     a Preprocessor CGI which will need to return no data if it wishes
  92.     to indicate to the server that the preprocessor did not handle the
  93.     cgi event, and that that event should be passed along to normal
  94.     processing. */
  95. #define kCompileWithCGINoDataHTTPError    0
  96.  
  97. /* support use as a user defined action */
  98. #define kCompileWithCGIActionSupport    0
  99.  
  100. /**  CGI Parameters  **/
  101.  
  102. /* If you want to link your own data into the CGIHdl, use the
  103.     'refCon' field (a long value) to store custom data. */
  104. #define kCompileWithCGIRefCon            0
  105.  
  106. /* '----' path_args            */
  107. #define kCompileWithCGIpath_args        0
  108. /* 'kfor' http_search_args    */
  109. #define kCompileWithCGIhttp_search_args    0
  110. /* 'user' username            */
  111. #define kCompileWithCGIusername            0
  112. /* 'pass' password            */
  113. #define kCompileWithCGIpassword            0
  114. /* 'frmu' from_user            */
  115. #define kCompileWithCGIfrom_user        0
  116. /* 'addr' client_address    */
  117. #define kCompileWithCGIclient_address    0
  118. /* 'post' post_args            */
  119. #define kCompileWithCGIpost_args        0
  120. /* 'meth' method            */
  121. #define kCompileWithCGImethod            1
  122. /* 'svnm' server_name        */
  123. #define kCompileWithCGIserver_name        1
  124. /* 'svpt' server_port        */
  125. #define kCompileWithCGIserver_port        0
  126. /* 'scnm' script_name        */
  127. #define kCompileWithCGIscript_name        1
  128. /* 'ctyp' content_type        */
  129. #define kCompileWithCGIcontent_type        0
  130. /* •new•15 'CLen' content_length    */
  131. #define kCompileWithCGIcontent_length    0
  132. /* 'refr' referer            */
  133. #define kCompileWithCGIreferer            0
  134. /* 'Agnt' user_agent        */
  135. #define kCompileWithCGIuser_agent        0
  136. /* 'Kcip' client_ip            */
  137. #define kCompileWithCGIclient_ip        0
  138. /* 'Kfrq' full_request        */
  139. #define kCompileWithCGIfull_request        0
  140.  
  141. #if kCompilingForWSAPI
  142. /* these fields are only available to WSAPI plug-ins */
  143. /* •new•15  */
  144. #define kCompileWithCGIfileMIMEType        0
  145. /* •new•15  */
  146. #define kCompileWithCGIserverField        0
  147. /* •new•15  */
  148. #define kCompileWithCGIserverDirectoryPath    0
  149. /* •new•15  */
  150. #define kCompileWithCGIurlPhysicalPath    0
  151. /* •new•15  */
  152. #define kCompileWithCGIifModifiedSince    0
  153. /* •new•15  */
  154. #define kCompileWithCGIcurrentRealm        0
  155. #endif /* kCompilingForWSAPI */
  156.  
  157. //• this isn't actually a parameter of the CGI event, so I've removed it
  158. ///* 'Pvrs' version            */
  159. //#define kCompileWithCGIversion    0
  160.  
  161.  
  162. /**  INTERFACE  **/
  163.  
  164. /* setting this to off will create a background only application with
  165.     no user interface. The application won't show up in the
  166.     application menu. */
  167. #define kCompileWithForeground            1
  168. #if kCompileWithForeground /* only allow the options below if foreground */
  169.  
  170. /* setting this on will allow user interface elements such as error 
  171.     dialogs to pop up. Turn it off if you want the application to be able
  172.     to run without requiring any user interaction. User interface elements
  173.     such as menus will still be available (providing CompileWithForeground
  174.     is on). */
  175. #define    kCompileWithFullUserInterface    0
  176. /* display the splash screen on startup */
  177. #define kCompileWithSplashScreen        1
  178. /* application uses modeless dialogs - required if you are supporting
  179.     url clicking in your about box */
  180. #define kCompileWithModelessDialogs        1
  181. /* application uses custom windows */
  182. #define kCompileWithApplicationWindows    0
  183. /* application handles custom keyboard entry */
  184. #define kCompileWithKeyboardEvents        0
  185. /* support drag and drop manager */
  186. #define kCompileWithDragNDrop            0
  187.  
  188. /* •new• support url clicking for download in the about box */
  189. #define kCompileWithAboutURL            1
  190.  
  191. #endif /* kCompileWithForeground */
  192.  
  193.  
  194. /***  PROCESS / APPLICATION  ***/
  195.  
  196. /* If this is defined, the application will have a global 'gProcessFSSpec'
  197.     that is automatically, during startup, set to be the application's
  198.     file spec. */
  199. #define kCompileWithProcessFileSpec        1
  200. /* default setting for the sleep time passed to functions such as
  201.     WaitNextEvent */
  202. #define kSleepTicks                        (2 * kOneSecondInTicks)
  203. /* default setting for the sleep time passed to functions such as
  204.     WaitNextEvent when the application is busy with tasks */
  205. #define kSleepTicksWhenBusy                5
  206. /* •new•15 set this on if you want to support the CustomPeriodicTask
  207.     function which allows you to have tasks processed, outside of
  208.     CGI events, on a periodic basis. */
  209. #define kCompileWithPeriodicTask        0
  210. /* •new•15 amount of time to suggest for inbetween periodic tasks */
  211. #define kSleepTimeForPeriodicTask        (60 * kOneSecondInTicks)
  212. /* •new•15 set this on if you want to support the CustomDeferredTask
  213.     function which allows you to have tasks processed when the
  214.     application is less busy */
  215. #define kCompileWithDeferredTask        0
  216.  
  217.  
  218. /***  MEMORY CONFIGURATION  ***/
  219.  
  220. /* You will need to estimate your memory requirements here */
  221.  
  222. /* 'comfort' zone of free memory. This must be big enough to allow
  223.     any essential functions to be called.
  224.     This is used as an 'emergency' reserve of memory to be
  225.     deallocated if seriously needed.
  226.     Named kMemCushion in IM-Memory: 1-43, 1-36 */
  227. #define kMemCushionSize            16535L /* 16k */
  228. /* for pre-allocation of master pointers.
  229.     Used in initAppMemory "Main.c"
  230.     IM-Memory: 1-42 */
  231. #define    kMoreMasterCalls        4
  232. /* minimum free space needed (in bytes) for application to be able to run.
  233.     Should probably be a multiple of 1024.
  234.     Should be bigger than kMemChusionSize */
  235. #define kMinSegSize                32768L /* 32k */
  236.  
  237. /** COMPILING  **/
  238.  
  239. /* if you don't want to support the old function names that began
  240.     with 'My', then turn this option on. The names were changed because
  241.     people were wanting to keep the 'My' namespace for their custom code */
  242. #define kCompileWithout_MY_Names        1
  243.  
  244.  
  245. /**  PROFILER support  **/
  246.  
  247. /* max 21 chars in length.
  248.     End result will be something like "\p<name>-68K.prof" or "...-PPC.prof" */
  249. #define kProfileNameStr            "troz.cgi"
  250.  
  251.  
  252. /** LOGGING */
  253.  
  254. #define kCompileWithLogSupport            0
  255.  
  256.  
  257. /**  DEBUGGING Support  **/
  258.  
  259. #if kCompileWithLogSupport /* logging required for these options */
  260.     /* cgi will log a number of actions to the log file */
  261.     #define kCompileWithDebugLogging    0
  262.     /* cgi will log error messages to the log file */
  263.     #define kCompileWithErrorLogging    0
  264. #else /* don't change these two lines */
  265.     #define kCompileWithDebugLogging 0 /* always off if logging off */
  266.     #define kCompileWithErrorLogging 0 /* always off if logging off */
  267. #endif
  268. /* if you are debugging your code, you should set assertions on (1).
  269.     If you are shipping your application, you should turn assertions off (0). */
  270. #define kCompileWithAssertions            1
  271.  
  272.  
  273. /**  MISCELLANEOUS  **/
  274.  
  275. /* If you are using Pascal for the custom functions (mixing C
  276.     and Pascal source files in a project) the C functions need to be
  277.     defined to support Pascal calling conventions. Set this option on
  278.     for Pascal calling conventions to be used (allowing you to call some
  279.     of the functions in the C source files from Pascal files. */
  280. #define kCompileWithPascalSupport        0
  281.  
  282. /* •new• set this to be your application creator type */
  283. #define kMyCreatorType                    'troZ'
  284. /* •new•15 max 31 char. Must be a unique ID for your CGI/plug-in */
  285. #define kMyCGIName                         "TROZ" 
  286.  
  287.  
  288. /***  PRIVATE SETTINGS  ***/
  289. /* !!! Please don't touch anything in this section */
  290.  
  291. #if (kStartupThreadsPreallocate < 1) && kCompileWithDeferredTask
  292. #error /* you must have at least one preallocated thread if you are going to use deferred tasks */
  293. #endif
  294.  
  295. #if kCompileWithPascalSupport
  296.     #define p_export    pascal
  297. #else
  298.     #define p_export    
  299. #endif
  300.  
  301.  
  302. /***  EOF  ***/
  303.