ScriptServer Class Reference
[Kernel Module]

#include <scriptserver.h>

Inheritance diagram for ScriptServer:

RootServer< ScriptServer > Root Server< ScriptServer > Object TreeNode< Root > Referenced Counted Serialized List< Root > ListNode< Root >

List of all members.


Detailed Description

Stores all script loaders in one place. Script loaders has to be created here.

Public Member Functions

 ScriptServer (const char *id)
virtual ~ScriptServer ()
bool SetDefaultLanguage (const string &language)
const string & GetDefaultLanguage ()
ScriptLoaderNewScriptLoader (const char *class_name, const string &language)
bool RunCode (const char *code, string &result, const char *language=NULL)
bool RunFunction (const char *func_name, string &result, const char *language=NULL)
bool RunScript (const string &file_path, string &result)
virtual string Prompt ()
virtual bool Trigger (void)
void Exit ()

Protected Member Functions

ScriptLoaderGetLoader (const char *language)

Private Attributes

bool exit_requested
 Whether Exit function was called.
string default_language
 Name of default language.
Ref< ScriptLoaderdefault_loader
 Default loader used when language is not specified.

Constructor & Destructor Documentation

ScriptServer::ScriptServer ( const char *  id  ) 

Constructor.

ScriptServer::~ScriptServer (  )  [virtual]

Destructor.


Member Function Documentation

bool ScriptServer::SetDefaultLanguage ( const string &  language  ) 

Sets default language. The loader of this language will be used to run the scripts when language is not set explicitly.

Parameters:
language Identifier of script language.
Returns:
True if loader of specified language is found.

const string & ScriptServer::GetDefaultLanguage (  )  [inline]

Returns defult language.

Returns:
Default language.

ScriptLoader * ScriptServer::NewScriptLoader ( const char *  class_name,
const string &  language 
)

Cerates new script loader of given class. This loader will be associated with specified language. Each loader is a NOH child of script server.

Parameters:
class_name Class name of script loader.
language Identifier of script language.
Returns:
Pointer to new object.

bool ScriptServer::RunCode ( const char *  code,
string &  result,
const char *  language = NULL 
)

Runs a script statement.

Parameters:
code The statement to execute.
result Will be filled with the result.
language Identifier of script language, NULL means defult language.
Returns:
True if successful.

bool ScriptServer::RunFunction ( const char *  func_name,
string &  result,
const char *  language = NULL 
)

Runs a script function with the specified name without any args.

Parameters:
func_name Function name.
result Will be filled with the result.
language Identifier of script language, NULL means defult language.
Returns:
True if successful.

bool ScriptServer::RunScript ( const string &  file_path,
string &  result 
)

Runs a script file.

Language is recognised from file extension.

Todo:
More powerful language recognising (one language can registered more file extensions).
Parameters:
file_path The script file name with path.
result Will be filled with the result.
Returns:
True if successful.

string ScriptServer::Prompt (  )  [virtual]

Generates a prompt string for interactive mode.

Returns:
Prompt string.

bool ScriptServer::Trigger ( void   )  [virtual]

This method should be called frequently (normally once per frame) when the script server is not run in interactive mode.

Returns:
Whether there was request to exit interractive mode.

Reimplemented from Server< ScriptServer >.

void ScriptServer::Exit (  )  [inline]

Exits interractive mode.

ScriptLoader * ScriptServer::GetLoader ( const char *  language  )  [protected]

Returns loader of given language. If language parameter is NULL, the default loader is returned.

Parameters:
language Identifier of script language.
Returns:
Pointer to script loader or NULL if some error occures.


Member Data Documentation

bool ScriptServer::exit_requested [private]

Whether Exit function was called.

string ScriptServer::default_language [private]

Name of default language.

Ref<ScriptLoader> ScriptServer::default_loader [private]

Default loader used when language is not specified.


The documentation for this class was generated from the following files:
Generated on Sat Oct 20 14:47:35 2007 for Dark Oberon by  doxygen 1.5.3