00001 #ifndef X3DTK_X3DPROCESSOR_H 00002 #define X3DTK_X3DPROCESSOR_H 00003 00004 #include "GraphTraversal.h" 00005 00006 #include <list> 00007 00008 namespace X3DTK { 00009 00017 class X3DProcessor 00018 { 00019 public: 00021 X3DProcessor(); 00023 virtual ~X3DProcessor() = 0; 00024 00026 template <class P> 00027 static P *getInstanceOf(); 00028 00030 template <class P> 00031 static void removeInstanceOf(); 00032 00034 static void removeAllInstances(); 00035 00036 private: 00037 static std::list<X3DProcessor *> _X3DProcessorList; 00038 }; 00039 00040 } 00041 00042 #include "X3DProcessor.inl" 00043 00044 #endif