| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | #ifndef _SCRIPT_MODULE_H_#define _SCRIPT_MODULE_H_#include "runtime.h"#include "console/console.h"#include "platform/types.h"namespace Con{   class Module   {   private:      S32 mRefCount = 0;   public:      Module() = default;      virtual ~Module() = default;      void incRefCount() { mRefCount++; }      void decRefCount() { mRefCount--; if (!mRefCount) delete this; }      virtual const char* getFunctionArgs(StringTableEntry functionName, U32 functionOffset) = 0;      virtual const char* getPath() = 0;      virtual const char* getName() = 0;      virtual EvalResult exec(U32 offset, const char* fnName, Namespace* ns, U32 argc,                              ConsoleValue* argv, bool noCalls, StringTableEntry packageName,                              S32 setFrame = -1) = 0;      virtual void findBreakLine(U32 ip, U32& line, U32& instruction) {}      virtual const char* getFileLine(U32 ip) { return ""; }      /// Returns the first breakable line or 0 if none was found.      /// @param lineNumber The one based line number.      virtual U32 findFirstBreakLine(U32 lineNumber) { return 0; }      /// Set a OP_BREAK instruction on a line. If a break      /// is not possible on that line it returns false.      /// @param lineNumber The one based line number.      virtual bool setBreakpoint(U32 lineNumber) { return false;}      virtual void setAllBreaks() {}      virtual void clearAllBreaks() {}      virtual void clearBreakpoint(U32 lineNumber) {}      virtual Vector<U32> getBreakableLines() { return {}; }   };}#endif
 |