#ifndef _${name.upper()}_H #define _${name.upper()}_H \#include \#include //${name} class I${name}B; typedef shared_ptr ${name}B; class I${name}B : public virtual IMMIODev { public: static ${name}B create(const char *name); }; class I${name}; typedef shared_ptr ${name}; class I${name} : public virtual IEntry { public: static ${name} create(Path p); public: #if $varExists('commands') /* Commands */ #for $c in $commands virtual void ${c.name}() = 0; #end for #end if }; #endif