home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Libraries / TurboTCP 2.0.1 / TurboTCP source / CTCPApplication.cp next >
Encoding:
Text File  |  1994-07-03  |  2.7 KB  |  128 lines  |  [TEXT/MPCC]

  1. /*
  2. ** CTCPApplication.cp
  3. **
  4. **    TurboTCP support library
  5. **    Application subclass
  6. **
  7. **    Copyright © 1993-94, FrostByte Design / Eric Scouten
  8. **
  9. */
  10.  
  11.  
  12. #include "CTCPApplication.h"
  13.  
  14. #include "UTurboTCP.h"
  15.  
  16.  
  17. TCL_DEFINE_CLASS_M1(CTCPApplication, CApplication);
  18.  
  19. //    —— constructors ——
  20.  
  21. /*______________________________________________________________________
  22. **
  23. ** constructors
  24. **
  25. **    Perform standard application initialization. Nothing too fancy here.
  26. **
  27. **        extraMasters (short):        how many calls to MoreMasters (I recommend
  28. **                                    a higher than usual value here…)
  29. **        aRainyDayFund (Size):        size of TCL’s “rainy day” fund
  30. **        aCriticalBalance (Size):        same as for CApplication::IApplication
  31. **        aToolboxBalance (Size):        same as for CApplication::IApplication
  32. **
  33. */
  34.  
  35. CTCPApplication::CTCPApplication()
  36.  
  37. { }
  38.  
  39. CTCPApplication::CTCPApplication(short extraMasters, Size aRainyDayFund,
  40.                                 Size aCriticalBalance, Size aToolboxBalance)
  41.     : CApplication(extraMasters, aRainyDayFund, aCriticalBalance, aToolboxBalance)
  42.  
  43. { }
  44.  
  45. // old-style constructor retained for compatibility
  46.  
  47. void CTCPApplication::ITCPApplication(short extraMasters, Size aRainyDayFund,
  48.                                 Size aCriticalBalance, Size aToolboxBalance)
  49.  
  50. {
  51.     CApplication::IApplication(extraMasters, aRainyDayFund, aCriticalBalance,
  52.                         aToolboxBalance);
  53. }
  54.  
  55.  
  56. /*______________________________________________________________________
  57. **
  58. ** MakeHelpers
  59. **
  60. **    Overriden to add the TCP driver to the list of "helpers."
  61. **
  62. */
  63.  
  64. void CTCPApplication::MakeHelpers()
  65.  
  66. {
  67.     // do standard TCL initialization
  68.  
  69.     CApplication::MakeHelpers();
  70.  
  71.  
  72.     // set some default values
  73.     
  74.     cMaxSleepTime = 90;                    // don’t want to sleep for very long
  75.                                         // ALSO, must set the “Background Null Events”
  76.                                         //    checkbox under Set Project Type…
  77.                                         //    (SIZE flags)
  78.  
  79.     maxTCPEvents = 0;                        // use TurboTCP’s default event count/tick count
  80.     maxTCPTicks = 0;                        //    as defined in UTurboTCP::ProcessNetEvents()
  81.  
  82.  
  83.     // initialize TCP driver
  84.  
  85.     UTurboTCP::InitTCP();
  86.  
  87. }
  88.  
  89.  
  90. //    —— application shutdown ——
  91.     
  92. /*______________________________________________________________________
  93. **
  94. ** Quit
  95. **
  96. **    Dispose of the TCP driver object.
  97. **
  98. **        return (Boolean):    TRUE if quit was confirmed by each window
  99. */
  100.  
  101. Boolean CTCPApplication::Quit()
  102.  
  103. {
  104.     Boolean reallyQuitting = CApplication::Quit();
  105.     if (reallyQuitting)
  106.         UTurboTCP::CloseTCP();
  107.     return reallyQuitting;
  108. }
  109.  
  110.  
  111. //    —— foreground/background event trapping ——
  112.  
  113. /*______________________________________________________________________
  114. **
  115. ** Process1Event
  116. **
  117. **    Here we tap into the event loop to process TCP completions and notifications, now freed
  118. **    from interrupt-level constraints on memory management.
  119. **
  120. */
  121.  
  122. void CTCPApplication::Process1Event()
  123.  
  124. {
  125.     UTurboTCP::ProcessNetEvents(maxTCPEvents, maxTCPTicks);
  126.     CApplication::Process1Event();
  127. }
  128.