#include "MyMemReleaserAbstractVisitor.h" #include "MyMemReleaserStateVariables.h" #include using namespace std; namespace X3DTK { MyMemReleaserAbstractVisitor::MyMemReleaserAbstractVisitor() : MemReleaserAbstractVisitor() { // Defines the new enter function for the X3DAbstractNode. define(Recorder::getEnterFunction(&MyMemReleaserAbstractVisitor::enterX3DAbstractNode)); // Defines the new enter function for the Cylinder. This method will not be recorded // because X3D::Cylinder doesn't belong to the Abstract component. define(Recorder::getEnterFunction(&MyMemReleaserAbstractVisitor::enterCylinder)); } void MyMemReleaserAbstractVisitor::enterX3DAbstractNode(X3DAbstractNode *N) { // Prints the name of the node. cout << N->getTypeName() << " released" << endl; // Call to the super class method. MemReleaserAbstractVisitor::enterX3DAbstractNode(N); Singleton::getInstance()->addNode(); } void MyMemReleaserAbstractVisitor::enterCylinder(X3D::Cylinder *) { // empty because it will never be called... } }