Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::Script Class Reference

#include <Script.h>

+ Inheritance diagram for Divide::Script:

Public Member Functions

 Script (const string &scriptPathOrCode, FileType fileType=FileType::TEXT)
 
virtual ~Script () override
 
template<typename T >
void addGlobal (const T &var, const char *name, bool asConst, bool overwrite)
 
template<typename T >
void registerType (const char *typeName)
 
template<typename Func >
void registerFunction (const Func &function, const char *functionName)
 
template<typename T = void>
eval ()
 
template<>
void eval ()
 
- Public Member Functions inherited from Divide::GUIDWrapper
 GUIDWrapper () noexcept
 
 GUIDWrapper (const GUIDWrapper &old) noexcept
 
 GUIDWrapper (GUIDWrapper &&old) noexcept
 
virtual ~GUIDWrapper ()=default
 
FORCE_INLINE I64 getGUID () const noexcept
 
GUIDWrapperoperator= (const GUIDWrapper &old)=delete
 
GUIDWrapperoperator= (GUIDWrapper &&other)=delete
 

Static Public Member Functions

static void idle ()
 
static bool OnStartup ()
 
static bool OnShutdown ()
 
static void onScriptModify (std::string_view script, FileUpdateEvent &evt)
 
- Static Public Member Functions inherited from Divide::GUIDWrapper
static I64 generateGUID () noexcept
 

Protected Types

using ScriptMap = hashMap< I64, Script * >
 

Protected Member Functions

void compile ()
 
void bootstrap ()
 
void extractAtoms ()
 
void preprocessIncludes (const std::string &source, I32 level)
 
void caughtException (const char *message, bool isEvalException) const
 

Static Protected Member Functions

static void handleOutput (std::string_view msg)
 

Protected Attributes

chaiscript::ChaiScript_uptr _script
 
std::string _scriptSource
 
FileNameAndPath _scriptFile
 
FileType _scriptFileType
 
vector< ResourcePath_usedAtoms
 
- Protected Attributes inherited from Divide::GUIDWrapper
const I64 _guid
 

Static Protected Attributes

static I64 s_scriptFileWatcher = -1
 
static ScriptMap s_scripts
 
static bool s_scriptsReady = false
 

Detailed Description

Definition at line 48 of file Script.h.

Member Typedef Documentation

◆ ScriptMap

Definition at line 91 of file Script.h.

Constructor & Destructor Documentation

◆ Script()

Divide::Script::Script ( const string scriptPathOrCode,
FileType  fileType = FileType::TEXT 
)
explicit

Definition at line 25 of file Script.cpp.

◆ ~Script()

Divide::Script::~Script ( )
overridevirtual

Definition at line 52 of file Script.cpp.

Member Function Documentation

◆ addGlobal()

template<typename T >
void Divide::Script::addGlobal ( const T &  var,
const char *  name,
bool  asConst,
bool  overwrite 
)

Definition at line 41 of file Script.inl.

◆ bootstrap()

void Divide::Script::bootstrap ( )
protected

Definition at line 116 of file Script.cpp.

◆ caughtException()

void Divide::Script::caughtException ( const char *  message,
bool  isEvalException 
) const
protected

Definition at line 214 of file Script.cpp.

◆ compile()

void Divide::Script::compile ( )
protected

Definition at line 105 of file Script.cpp.

◆ eval() [1/2]

template<typename T >
T Divide::Script::eval

Definition at line 64 of file Script.inl.

◆ eval() [2/2]

template<>
void Divide::Script::eval ( )
inline

Definition at line 76 of file Script.inl.

◆ extractAtoms()

void Divide::Script::extractAtoms ( )
protected

Definition at line 171 of file Script.cpp.

◆ handleOutput()

void Divide::Script::handleOutput ( std::string_view  msg)
staticprotected

Definition at line 186 of file Script.cpp.

◆ idle()

void Divide::Script::idle ( )
static

Definition at line 62 of file Script.cpp.

◆ onScriptModify()

void Divide::Script::onScriptModify ( std::string_view  script,
FileUpdateEvent evt 
)
static

Definition at line 191 of file Script.cpp.

◆ OnShutdown()

bool Divide::Script::OnShutdown ( )
static

Definition at line 92 of file Script.cpp.

◆ OnStartup()

bool Divide::Script::OnStartup ( )
static

Definition at line 65 of file Script.cpp.

◆ preprocessIncludes()

void Divide::Script::preprocessIncludes ( const std::string &  source,
I32  level 
)
protected

Definition at line 134 of file Script.cpp.

◆ registerFunction()

template<typename Func >
void Divide::Script::registerFunction ( const Func &  function,
const char *  functionName 
)

Definition at line 59 of file Script.inl.

◆ registerType()

template<typename T >
void Divide::Script::registerType ( const char *  typeName)

Definition at line 54 of file Script.inl.

Member Data Documentation

◆ _script

chaiscript::ChaiScript_uptr Divide::Script::_script
protected

Definition at line 83 of file Script.h.

◆ _scriptFile

FileNameAndPath Divide::Script::_scriptFile
protected

Definition at line 85 of file Script.h.

◆ _scriptFileType

FileType Divide::Script::_scriptFileType
protected

Definition at line 86 of file Script.h.

◆ _scriptSource

std::string Divide::Script::_scriptSource
protected

Definition at line 84 of file Script.h.

◆ _usedAtoms

vector<ResourcePath> Divide::Script::_usedAtoms
protected

Definition at line 87 of file Script.h.

◆ s_scriptFileWatcher

I64 Divide::Script::s_scriptFileWatcher = -1
staticprotected

Definition at line 89 of file Script.h.

◆ s_scripts

Script::ScriptMap Divide::Script::s_scripts
staticprotected

Definition at line 92 of file Script.h.

◆ s_scriptsReady

bool Divide::Script::s_scriptsReady = false
staticprotected

Definition at line 93 of file Script.h.


The documentation for this class was generated from the following files: