visitor.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: visitor.h,v 1.14 2004/02/23 15:19:58 anhi Exp $
00005 //
00006 
00007 #ifndef BALL_CONCEPT_VISITOR_H
00008 #define BALL_CONCEPT_VISITOR_H
00009 
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013 
00014 namespace BALL 
00015 {
00016 
00023   template <typename Host>
00024   class Visitor
00025   {
00026     public:
00027 
00033     Visitor()
00034       ;
00035 
00038     Visitor(const Visitor& visitor)
00039       ;
00040 
00043     virtual ~Visitor()
00044       ;
00045 
00047 
00052     virtual void visit(Host &) = 0;
00053 
00054     virtual void dummy();
00055   };
00057   
00058   template <typename T>
00059   void Visitor<T>::dummy(){}
00060 
00061   template <typename T>
00062   BALL_INLINE
00063   Visitor<T>::Visitor()
00064     
00065   {
00066   }
00067 
00068   template <typename Host>
00069   BALL_INLINE
00070   Visitor<Host>::Visitor(const Visitor<Host>& /* visitor */)
00071     
00072   {
00073   }
00074 
00075   template <typename T>
00076   Visitor<T>::~Visitor()
00077     
00078   {
00079   }
00080 }
00081 
00082 #endif // BALL_CONCEPT_VISITOR_H