46 #include "binarybuffer.h"
55 class iScriptCompilable;
56 class iScriptMultipleReturn;
94 virtual void RemoveArgument(
Whole ArgNumber) = 0;
98 virtual Whole GetArgumentCount()
const = 0;
103 virtual void ClearArguments() = 0;
117 virtual void SetSourceCode(
const String& Code) = 0;
121 virtual String GetSourceCode()
const = 0;
179 {
return ++RefCount; }
184 {
return --RefCount; }
255 virtual bool IsCompiled()
const = 0;
314 virtual Whole GetReturnCount()
const = 0;
318 virtual ArgumentGroup GetAllReturns()
const = 0;
virtual iScriptCompilable * GetAsScriptCompilable()
If your only handle to this is a pointer of type iScript this can be called to get a pointer to an iS...
static RefCountType * ConstructionPointer(RefCountType *Target)
The Construction Pointer for a Scripting::iScript is the pointer created during the New call...
static RefCountType * ConstructionPointer(RefCountType *Target)
The Construction Pointer for a Scripting::iScriptCompilable is the pointer created during the New cal...
std::vector< CountedPtr< iScriptArgument > > ArgumentGroup
A group of arguments that can be returned from some scripts.
Scripting::iScriptCompilable RefCountType
The Scripting::iScriptCompilable is its own reference count.
virtual bool CanReturnMultples() const
Does this script support multiple return values.
virtual iScriptMultipleReturn * GetMostDerived()
Get a pointer to the most Derived type of this class.
Whole IncrementReferenceCount()
Increase the reference count by one and return the updated count.
The interface for a script that can be compiled to bytecode.
The interface for a script.
static RefCountType * ConstructionPointer(RefCountType *Target)
The Construction Pointer for a Scripting::iScriptMultipleReturn is the pointer created during the New...
This script can return simple group of values.
Scripting::iScriptMultipleReturn RefCountType
The Scripting::iScriptMultipleReturn is its own reference count.
A dynamic cast from the pointer as provided with no attempt to calls functions on the pointer target...
Whole GetReferenceCount()
Get the current amount of references.
virtual bool IsCompilable() const
Any script implementing this class is compilable.
This is used to deduce at compile if a specific class has built-in reference counting or needs an ext...
virtual bool CanReturnMultples()
Does this script support multiple return values.
virtual iScript * GetMostDerived()
Get a pointer to the most Derived type of this class.
virtual iScript * GetReferenceCountTargetAsPointer()
Gets the actual pointer to the target.
This file describes and implements a reference counted pointer that is NOT threadsafe.
virtual iScriptCompilable * GetAsScriptCompilable() const
If your only handle to this is a pointer of type iScript this can be called to get a pointer to an iS...
virtual iScriptMultipleReturn * GetAsiScriptMultipleReturn()
If your only handle to this is a pointer of type iScript this can be called to get a pointer to an iS...
Scripting::iScript RefCountType
The Scripting::iScript is its own reference count.
iScript()
default constructor
This file has the interfaces for Script Arguments and the associated dependency chain.
The bulk of the engine components go in this namspace.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
Whole DecrementReferenceCount()
Decrease the reference count by one and return the updated count.
virtual iScriptCompilable * GetMostDerived()
Get a pointer to the most Derived type of this class.
virtual bool IsCompilable() const
Used to check if this Script supports compilation bytecode.
std::string String
A datatype used to a series of characters.
virtual iScriptCompilable * GetAsScriptCompilable()
If your only handle to this is a pointer of type iScript this can be called to get a pointer to an iS...
virtual bool IsCompiled() const
Used to check if there is a bytecode version of the script available.
Whole RefCount
This is the Counter that stores how many references exist.
virtual iScriptMultipleReturn * GetAsiScriptMultipleReturn()
If your only handle to this is a pointer of type iScript this can be called to get a pointer to an iS...