// -*- mode: c++ -*-
#ifndef _CMAGIC
#define _CMAGIC
#include <assert.h>
/** This is a simple class for debugging.
    It checks if it has been properly initialised
    or if it has been destroyed twice */
class CMagic{
  int mMagic;
public:
  /** This function checks the magic number of 
      this and asserts to zero, if something is wrong
  */
  void check()const;
  /** 
      as check(), but it also prints a small message 
      to cout
  */
  void checkNPrint()const;
  /** sets the magic number */
  CMagic();
  /** sets the magic to another value */
  ~CMagic();
};


#endif
