#pragma once #include "clipscpp.h" #include #include "CLIPSNET_Values.h" using namespace System; using namespace CLIPS; namespace CLIPSNET { class CLIPSCPPUserFunctionBridge; /*################################*/ /* UserFunction class declaration */ /*################################*/ public ref class UserFunction { public: UserFunction(); ~UserFunction(); virtual PrimitiveValue ^ Evaluate(List ^); CLIPSCPPUserFunctionBridge * UserFunctionBridge(); static unsigned short UNBOUNDED = USHRT_MAX; protected: !UserFunction(); private: CLIPSCPPUserFunctionBridge *m_UserFunctionBridge; }; /*########################################*/ /* CLIPSCPPUserFunctionBridge declaration */ /*########################################*/ class CLIPSCPPUserFunctionBridge : private CLIPSCPPUserFunction { public: CLIPSCPPUserFunctionBridge(); CLIPSCPPUserFunctionBridge(msclr::gcroot); ~CLIPSCPPUserFunctionBridge(); DataObject Evaluate(CLIPSCPPEnv *,std::vector); private: msclr::gcroot m_UserFunction; }; };