home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 035 / pmics.zip / session.hh < prev    next >
Text File  |  1994-11-23  |  2KB  |  75 lines

  1. #ifndef SESSION_DEFINED
  2. #define SESSION_DEFINED
  3. //**************************************************************************
  4. // Class:   Session                                                        *
  5. //                                                                         *
  6. // Purpose: Provide a session for communication.                           *
  7. //                                                                         *
  8. //**************************************************************************
  9.  
  10. #include <os2def.h>
  11. #include <ithread.hpp>
  12.  
  13. class ASession
  14. {
  15. public:                               //Define the public Information
  16.   virtual write (char *data) = 0;     // output to the session
  17.   virtual write (char *data, int len) = 0;     // output to the session
  18.   virtual ~ASession() {}
  19.   virtual Boolean active() = 0;
  20. private:                              //Define the private Information
  21. };
  22.  
  23.  
  24. class ADosSession : public ASession
  25. {
  26. public:                               //Define the public Information
  27.   ADosSession();              // Constructor
  28.   ~ADosSession();
  29.   write (char *data);              // output to the session
  30.   write (char *data, int len) {return write(data);}
  31.   Boolean active() { return isActive; }
  32.   
  33. private:                              //Define the private Information
  34.   ULONG writePipe;              // pipe for writing to session
  35.   PID   childPID;
  36.   IThread *pthr;
  37.   Boolean isActive;
  38. };
  39.  
  40.  
  41. class AComSession : public ASession
  42. {
  43. public:                               //Define the public Information
  44.   AComSession();              // Constructor
  45.   ~AComSession();
  46.   write (char *data);              // output to the session
  47.   write (char *data, int len) { return write(data); }
  48.   Boolean active() { return isActive; }
  49.   
  50. private:                              //Define the private Information
  51.   Boolean    isActive;
  52.   IThread    *listenThread;
  53.   int        comPort;
  54.   int        comBaud;
  55. };
  56.  
  57.  
  58. class ATcpSession : public ASession
  59. {
  60. public:                               //Define the public Information
  61.   ATcpSession();              // Constructor
  62.   ~ATcpSession();
  63.   write (char *data);              // output to the session
  64.   write (char *data, int len);              // output to the session
  65.   Boolean active() { return sock > 0; }
  66.   void EtherInit();
  67.   void TTYInit();
  68.   
  69. private:                              //Define the private Information
  70.   IThread    *listenThread;
  71.   int        sock;
  72. };
  73.  
  74. #endif
  75.