00001
00002
00004
00005 #ifndef X3DPROCESSOR_H
00006 #define X3DPROCESSOR_H
00007
00008 #include "GraphTraversal.h"
00009
00010 #include <list>
00011 #include <typeinfo>
00012
00013 #include <iostream>
00014
00015 namespace X3DTK {
00016
00018
00019 class X3DProcessor
00020 {
00021 public:
00023 X3DProcessor();
00025 virtual ~X3DProcessor() = 0;
00026
00028 template <class P>
00029 static P *getInstanceOf();
00030
00032 template <class P>
00033 static void removeInstanceOf();
00034
00036 static void removeAllInstances();
00037
00038 private:
00039 static std::list<X3DProcessor *> _X3DProcessorList;
00040 };
00041
00042 }
00043
00044 #include "X3DProcessor.inl"
00045
00046 #endif