home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC7.DMS / in.adf / classsource.lha / ClassSource / BOOPSI / boopsiclass / boopsiclass.c
Encoding:
C/C++ Source or Header  |  1995-02-12  |  865 b   |  45 lines

  1. #include <classes/BOOPSI/boopsiclass.h>
  2.  
  3. #pragma -
  4. #include <pragma/intuition_lib.h>
  5. #include <clib/alib_protos.h>
  6. #pragma +
  7.  
  8. extern "C" ULONG HookEntry();
  9.  
  10. BoopsiClass::BoopsiClass(UWORD instanceSize, ULONG (*dispatcher) (),
  11.         STRPTR pubSuperClass, Class *privSuperClass,
  12.         STRPTR pubName, ULONG flags)
  13.     : ShareC()
  14. {
  15.     boopsi = MakeClass(pubName,pubSuperClass,privSuperClass,instanceSize,flags);
  16.     if (!boopsi)
  17.         throw BoopsiClassX();
  18.     boopsi->cl_Dispatcher.h_Entry = HookEntry;
  19.     boopsi->cl_Dispatcher.h_SubEntry = dispatcher;
  20. }
  21.  
  22. BoopsiClass::BoopsiClass(const BoopsiClass &s)
  23.     : ShareC(s)
  24. {
  25.     boopsi = s.boopsi;
  26. }
  27.  
  28. BoopsiClass::~BoopsiClass()
  29. {
  30.     if (only())
  31.         FreeClass(boopsi);
  32. }
  33.  
  34. BoopsiClass &BoopsiClass::operator= (const BoopsiClass &s)
  35. {
  36.     if (this != &s)
  37.     {
  38.         if (only())
  39.             FreeClass(boopsi);
  40.         ShareC::operator= (s);
  41.         boopsi = s.boopsi;
  42.     };
  43.     return *this;
  44. }
  45.