Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

NodeFactory.h

00001 // Copyright (C) 1999 Jean-Marc Valin & Dominic Letourneau
00002 
00003 #ifndef _NODEFACTORY_H_
00004 #define _NODEFACTORY_H_
00005 
00006 #include "ParameterSet.h"
00007 #include <vector>
00008 #include <string>
00009 
00010 namespace FD {
00011 
00012 class Node;
00013 
00019 class _NodeFactory {
00020 protected:
00021    std::string name;
00022    
00023 public:
00024    _NodeFactory(std::string _name)
00025       : name(_name)
00026    {}   
00027    virtual const std::string &getName() {return name;}
00028 
00029    virtual Node* Create(const std::string &name, const ParameterSet &parameters) = 0;
00030    virtual ~_NodeFactory() {;}
00031 
00032 private:
00033 
00034 
00035 };
00036 
00037 
00038 //Template class used by all Nodes
00039 template <class T>
00040 class NodeFactory : public _NodeFactory {
00041 public:
00042    NodeFactory(std::string _name)
00043       : _NodeFactory(_name)
00044    {}
00045    virtual Node* Create(const std::string &name, const ParameterSet &parameters) {
00046       return ((Node*) new T(name,parameters));
00047    }
00048 };
00049 
00050 }//end namespace FD
00051 #endif

Generated on Wed Oct 5 14:28:55 2005 for FlowDesigner by  doxygen 1.4.4