// @(#)root/base:$Id$
// Author: Valeriy Onuchin & Fons Rademakers   15/10/2000

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TQClass
#define ROOT_TQClass

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// This is part of the ROOT implementation of the Qt object             //
// communication mechanism (see also                                    //
// http://www.troll.no/qt/metaobjects.html)                             //
//                                                                      //
// See TQObject for details.                                             //
//                                                                      //
// This implementation is provided by                                   //
// Valeriy Onuchin (onuchin@sirius.ihep.su).                            //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TQObject
#include "TQObject.h"
#endif
#ifndef ROOT_TClass
#include "TClass.h"
#endif

// This class makes it possible to have a single connection from
// all objects of the same class
class TQClass : public TQObject, public TClass {

private:
   TQClass(const TClass&) : TQObject(), TClass() {};
   TQClass& operator=(const TQClass&) { return *this; }

friend class TQObject;

public:
   TQClass(const char *name, Version_t cversion,
           const type_info &info, TVirtualIsAProxy *isa,
           const char *dfil = 0, const char *ifil = 0,
           Int_t dl = 0, Int_t il = 0) :
           TQObject(),
           TClass(name, cversion, info,isa,dfil, ifil, dl, il) { }

   virtual ~TQClass() { Disconnect(); }

   ClassDef(TQClass,0)  // Class with connections
};


//---- Class Initialization Behavior --------------------------------------
//
// This Class and Function are automatically used for classes inheriting from
// TQObject. They make it possible to have a single connection from all
// objects of the same class.
namespace ROOT {
   class TDefaultInitBehavior;
   class TQObjectInitBehavior : public TDefaultInitBehavior {
   public:
      virtual TClass *CreateClass(const char *cname, Version_t id,
                                  const type_info &info, TVirtualIsAProxy *isa,
                                  const char *dfil, const char *ifil,
                                  Int_t dl, Int_t il) const
      {
         return new TQClass(cname, id, info, isa, dfil, ifil,dl, il);
      }
   };

   inline const TQObjectInitBehavior *DefineBehavior(TQObject*, TQObject*)
   {
      TQObjectInitBehavior *behave = new TQObjectInitBehavior;
      return behave;
   }
}

#endif

 TQClass.h:1
 TQClass.h:2
 TQClass.h:3
 TQClass.h:4
 TQClass.h:5
 TQClass.h:6
 TQClass.h:7
 TQClass.h:8
 TQClass.h:9
 TQClass.h:10
 TQClass.h:11
 TQClass.h:12
 TQClass.h:13
 TQClass.h:14
 TQClass.h:15
 TQClass.h:16
 TQClass.h:17
 TQClass.h:18
 TQClass.h:19
 TQClass.h:20
 TQClass.h:21
 TQClass.h:22
 TQClass.h:23
 TQClass.h:24
 TQClass.h:25
 TQClass.h:26
 TQClass.h:27
 TQClass.h:28
 TQClass.h:29
 TQClass.h:30
 TQClass.h:31
 TQClass.h:32
 TQClass.h:33
 TQClass.h:34
 TQClass.h:35
 TQClass.h:36
 TQClass.h:37
 TQClass.h:38
 TQClass.h:39
 TQClass.h:40
 TQClass.h:41
 TQClass.h:42
 TQClass.h:43
 TQClass.h:44
 TQClass.h:45
 TQClass.h:46
 TQClass.h:47
 TQClass.h:48
 TQClass.h:49
 TQClass.h:50
 TQClass.h:51
 TQClass.h:52
 TQClass.h:53
 TQClass.h:54
 TQClass.h:55
 TQClass.h:56
 TQClass.h:57
 TQClass.h:58
 TQClass.h:59
 TQClass.h:60
 TQClass.h:61
 TQClass.h:62
 TQClass.h:63
 TQClass.h:64
 TQClass.h:65
 TQClass.h:66
 TQClass.h:67
 TQClass.h:68
 TQClass.h:69
 TQClass.h:70
 TQClass.h:71
 TQClass.h:72
 TQClass.h:73
 TQClass.h:74
 TQClass.h:75
 TQClass.h:76
 TQClass.h:77
 TQClass.h:78
 TQClass.h:79
 TQClass.h:80
 TQClass.h:81
 TQClass.h:82
 TQClass.h:83
 TQClass.h:84
 TQClass.h:85