23 #define S4G_COND_TYPE1(s4gm, pVar,retval) if (!pVar){s4g_GenMsg(s4gm, S4G_MSG_LEVEL_ERROR, "variable is not init, api function [%s]",__FUNCTION__); return retval;} 24 #define S4G_COND_TYPE2(s4gm, pVar,retval) if (!pVar->m_pData){s4g_GenMsg(s4gm, S4G_MSG_LEVEL_ERROR, "variable is has not data, api function [%s]",__FUNCTION__); return retval;} 25 #define S4G_COND_TYPE_12(s4gm, pVar,retval) S4G_COND_TYPE1(s4gm, pVar,retval) S4G_COND_TYPE2(s4gm, pVar,retval) 283 MemAlloc<s4g_Variable, S4G_RESERVE_VALUE_MEM>
m_oMemVar;
s4g_Table * getTable(s4g_Variable *pVar)
возвращает приведенное значение переменной к table.
Definition: s4g_gc.cpp:583
MemAlloc< s4g_ClassObject, S4G_RESERVE_CLASS_OBJECT_MEM > m_oMemObjClass
резервация памяти для объектов классов
Definition: s4g_gc.h:307
s4g_c_function getCfunc(s4g_Variable *pVar)
возвращает приведенное значение переменной к C/C++ функции
Definition: s4g_gc.cpp:604
s4g_Variable * createVarNull(int typeVar=S4G_GC_TYPE_VAR_FREE)
создать переменную со значением null (то есть пустую переменную)
Definition: s4g_gc.cpp:254
MemAlloc< s4g_Array, S4G_RESERVE_TABLE_MEM > m_oMemArray
резервация памяти для массивов
Definition: s4g_gc.h:301
S4G_TYPE
все типы данных которые могут быть использованы в скриптах
Definition: s4g.h:160
s4g_Variable * createVarSfuncEmpty(int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением скриптовой функции (пустой)
Definition: s4g_gc.cpp:383
s4g_Variable * getGvar()
возвращает переменную со значением таблицы глобального пространства имен
Definition: s4g_gc.h:53
void clearTopContext()
очистить верхний контекст
Definition: s4g_gc.cpp:1024
ID deactivatePrev()
деактивировать все предыдущие контексты, возвращает номер контекста который деактивирован последним ...
Definition: s4g_gc.cpp:1002
s4g_pdata getPdata(s4g_Variable *pVar)
возвращает приведенное значение переменной к юзердате
Definition: s4g_gc.cpp:618
s4g_Stack< s4g_Variable *, S4G_RESERVE_VALUE > m_aVars
массив переменных
Definition: s4g_gc.h:271
void removeTableInContext(ID id)
заменить таблицу в контексте на контекстную таблицу, ибо если этот вызов произошел то у нас стояла за...
Definition: s4g_gc.cpp:981
void releaseEmptyPages()
удаление пустых страниц памяти
Definition: s4g_gc.cpp:150
s4g_Variable * createVarData()
создать переменную и выделить память под значение
Definition: s4g_gc.cpp:165
const char * getStr(s4g_Variable *pVar)
возвращает приведенное значение переменной к константной строке
Definition: s4g_gc.cpp:569
тип скриптовая функция
Definition: s4g_types.h:362
s4g_Stack< s4g_Data *, S4G_RESERVE_DATA > m_aData
массив данных
Definition: s4g_gc.h:274
long s4g_int
int
Definition: s4g.h:270
void deleteVar(s4g_Variable *pVar)
удаление переменной
Definition: s4g_gc.cpp:718
#define S4G_GC_TYPE_DATA_FREE
простое публичное значение, когда счетчик ссылок обнулится можно удалять
Definition: s4g_types.h:34
MemAlloc< s4g_Variable, S4G_RESERVE_VALUE_MEM > m_oMemVar
резервация памяти для значений
Definition: s4g_gc.h:283
s4g_Variable * m_pGvar
переменная хранящая в себе глобальное пространство имен
Definition: s4g_gc.h:267
s4g_Data * createDataUint(s4g_uint num, int typeData=S4G_GC_TYPE_DATA_FREE)
создать uint со значением num.
Definition: s4g_gc.cpp:232
s4g_Variable * createVarArrayEmpty(int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением "пустой массив".
Definition: s4g_gc.cpp:294
s4g_float getFloat(s4g_Variable *pVar)
возвращает приведенное значение переменной к float.
Definition: s4g_gc.cpp:562
void * s4g_pdata
указатель
Definition: s4g.h:282
Заголовочный файл основы взаимодествия хоста со скриптами
s4g_Variable * createVarDataCopy(s4g_Variable *pVarSrc, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE, bool canCopyData=false)
создание копии переменной со значение, canCopyData - копировать ли данные, или просто присвоить (без ...
Definition: s4g_gc.cpp:186
void collectGarbage()
запуск сборки мусора
Definition: s4g_gc.cpp:724
таблица, наиболее распространенный тип в скриптах
Definition: s4g_types.h:123
MemAlloc< s4g_Context, S4G_RESERVE_CONTEXTS_MEM > m_oMemContext
резервация памяти для контекстов
Definition: s4g_gc.h:289
s4g_ClassObject * getClassObject(s4g_Variable *pVar)
возвращает приведенное значение переменной к объекту класса
Definition: s4g_gc.cpp:632
#define S4G_GC_TYPE_VAR_FREE
переменная подлежит удалению
Definition: s4g_types.h:52
const char * getVarName(s4g_Variable *pVar, char *szName=0)
в szName запишет имя переменной по ее указателю (поиск перебором), в ppOwner запишет владельца ...
Definition: s4g_gc.cpp:473
s4g_Variable * createVarString(const char *szString, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением szString.
Definition: s4g_gc.cpp:361
void clear()
очистка всех данных (кроме внутренних констант)
Definition: s4g_gc.cpp:95
ID m_idConstContext
идентификатор константного контекста
Definition: s4g_gc.h:311
s4g_Variable * createVarCfunc(s4g_c_function func, int typeVar=S4G_GC_TYPE_VAR_FREE)
создать переменную со значением С++ функция
Definition: s4g_gc.cpp:403
void deleteData(s4g_Data *pData)
удаления значения
Definition: s4g_gc.cpp:667
ID m_idVarFALSE
id false переменной в массиве переменных
Definition: s4g_gc.h:260
ID addContext(s4g_Table *pTable, S4G_CONTEXT_TYPE_WORK typeWork=S4G_CONTEXT_TYPE_WORK_ONLINE)
добавить контекст основанный на таблице, возвращает id добавленного контекста, используется для замык...
Definition: s4g_gc.cpp:962
String * getStr2(s4g_Variable *pVar)
возвращает приведенное значение переменной к указателю на класс строки, изменение которого приведет к...
Definition: s4g_gc.cpp:576
MemAlloc< s4g_Class, S4G_RESERVE_CLASS_MEM > m_oMemClass
резервация памяти для классов
Definition: s4g_gc.h:304
s4g_Data * createDataCopy(s4g_Data *pDataSrc, int typeData=S4G_GC_TYPE_DATA_FREE)
создание значения на основании уже существующего значения, по сути копия, ссылка нулевая ...
Definition: s4g_gc.cpp:210
S4G_CONTEXT_TYPE_WORK
типы контекстов
Definition: s4g_types.h:378
s4g_Variable * getVarNull()
возвращает уже созданную переменную с null значением
Definition: s4g_gc.cpp:269
s4g_Variable * createVarInt(s4g_int num, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением num.
Definition: s4g_gc.cpp:306
int getMemCountBusy()
возращает количество занятой памяти в байтах
Definition: s4g_gc.cpp:1059
ID m_idVarNULL
id null переменной в массиве переменных
Definition: s4g_gc.h:258
#define S4G_ADD_MEM_CONTEXTS
количество создаваемых контекстов на каждый случай нехватки
Definition: s4g.h:222
s4g_Data * createDataFloat(s4g_float num, int typeData=S4G_GC_TYPE_DATA_FREE)
создать float со значением num.
Definition: s4g_gc.cpp:243
void assign(s4g_Variable *pVarDest, s4g_Variable *pVarSrc)
присвоить в pVarDest данные из pVarSrc.
Definition: s4g_gc.cpp:445
s4g_OwnerVar * getContextOwner(ID id)
возвращает указатель на s4g_OwnerVar контекста по id.
Definition: s4g_gc.cpp:655
MemAlloc< String, S4G_RESERVE_STRING_MEM > m_oMemString
резервация памяти для строк
Definition: s4g_gc.h:292
int(* s4g_c_function)(s4g_Main *s4gm)
тип си(++) функции
Definition: s4g.h:289
Сборщик мусора
Definition: s4g_gc.h:32
ID m_idDataTRUE
id true переменной в массиве данных
Definition: s4g_gc.h:263
ID existsInAccessibleContexts(const char *szName, s4g_Variable **ppVar)
существует ли переменная с именем szName во всех доступных контекстах, если да то возвращает id конте...
Definition: s4g_gc.cpp:1033
s4g_bool getBool(s4g_Variable *pVar)
возвращает приведенное значение переменной к bool.
Definition: s4g_gc.cpp:611
s4g_Variable * createVarTable(s4g_Table *pTable, int typeVar=S4G_GC_TYPE_VAR_FREE)
создать переменную со значением уже существующей таблицы
Definition: s4g_gc.cpp:373
ID m_idDataFALSE
id false переменной в массиве данных
Definition: s4g_gc.h:264
рабочий
Definition: s4g_types.h:381
s4g_Data * createDataInt(s4g_int num, int typeData=S4G_GC_TYPE_DATA_FREE)
создать int со значением num.
Definition: s4g_gc.cpp:221
s4g_Variable * getFromConstContext(const char *szName)
получить переменную из константного контекста
Definition: s4g_gc.cpp:930
s4g_Array * getArray(s4g_Variable *pVar)
возвращает приведенное значение переменной к array.
Definition: s4g_gc.cpp:590
void addConstContext()
добавить константный(всегда доступный) контекст, используется для бибилиотек языка ...
Definition: s4g_gc.cpp:904
ID createContext(s4g_Table **ppTable, S4G_CONTEXT_TYPE_WORK typeWork=S4G_CONTEXT_TYPE_WORK_ONLINE)
создать и добавить новый контекст, возвращает id контекста, а в ppTable записывает указатель на табли...
Definition: s4g_gc.cpp:942
short int s4g_bool
bool
Definition: s4g.h:279
s4g_Table * m_pGtable
глобальное пространство имен _g.
Definition: s4g_gc.h:266
s4g_Variable * createVarBool(s4g_bool bf, int typeVar=S4G_GC_TYPE_VAR_FREE)
создать переменную со значением bf.
Definition: s4g_gc.cpp:336
MemAlloc< s4g_Table, S4G_RESERVE_TABLE_MEM > m_oMemTable
резервация памяти для таблиц
Definition: s4g_gc.h:298
ID m_idFixedData
последний ключ в таблице с данными + 1 (для того чтобы не анализиировать константные данные при сборк...
Definition: s4g_gc.h:314
s4g_Variable * createVarTableEmpty(int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением "пустая таблица".
Definition: s4g_gc.cpp:283
void fixationConstVarData()
фиксация конечной позиции констант (окончание загрузки скрипта)
Definition: s4g_gc.cpp:883
ID m_idVarTRUE
id true переменной в массиве переменных
Definition: s4g_gc.h:259
MemAlloc< s4g_Data, S4G_RESERVE_DATA_MEM > m_oMemData
резервация памяти для данных
Definition: s4g_gc.h:286
s4g_Table * getGtable()
возвращает таблицу глобального пространства имен
Definition: s4g_gc.h:48
основа взаимодествия
Definition: s4g_main.h:45
массив переменной длины
Definition: s4g_types.h:221
ID m_idDataNULL
id null переменной в массиве данных
Definition: s4g_gc.h:262
S4G_TYPE getType(s4g_Variable *pVar)
получить тип переменной
Definition: s4g_gc.cpp:647
s4g_Class * getClass(s4g_Variable *pVar)
возвращает приведенное значение переменной к class.
Definition: s4g_gc.cpp:625
int getMemCountAllocated()
возращает количество выделенной (в том числе и зарезервированной) памяти в байтах ...
Definition: s4g_gc.cpp:1085
переменная
Definition: s4g_types.h:101
s4g_uint getUint(s4g_Variable *pVar)
возвращает приведенное значение переменной к uint.
Definition: s4g_gc.cpp:555
ID m_idFixedVars
последний ключ в таблице со значениями + 1 (для того чтобы не анализиировать константные значения при...
Definition: s4g_gc.h:317
s4g_Variable * getVarFromContextByNum(ID idRelativeTopContext, ID idVar)
получить переменную по idVar из контекста, которые расположен на top - idRelativeTopContext позиции о...
Definition: s4g_gc.cpp:1047
s4g_Stack< s4g_Context *, S4G_RESERVE_CONTEXTS > m_aCurrContexts
массив подключенных в данный момент контекстов
Definition: s4g_gc.h:277
MemAlloc< s4g_Sfunction, S4G_RESERVE_SFUNC_MEM > m_oMemSFunc
резервация памяти для скриптовых функций
Definition: s4g_gc.h:295
s4g_OwnerVar * getDataOwner(ID id)
возвращает указатель на s4g_OwnerVar значения по id.
Definition: s4g_gc.cpp:660
unsigned long s4g_uint
uint
Definition: s4g.h:273
s4g_Variable * createVarClassObjectEmpty(s4g_Variable *pVarClass, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением объект класса
Definition: s4g_gc.cpp:431
Заголовочный файл с основными типами данных
мета класс
Definition: s4g_types.h:262
s4g_Variable * createVarFloat(s4g_float num, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением num.
Definition: s4g_gc.cpp:326
int m_iCountCurrContexts
текущий размер массива контекстов
Definition: s4g_gc.h:280
s4g_Variable * getVarBool(bool bf)
возвращает уже созданную переменную с bool значением
Definition: s4g_gc.cpp:466
void allocMemContexts(int iCount=S4G_ADD_MEM_CONTEXTS)
выделить дополнительную память для контекстов
Definition: s4g_gc.cpp:891
значение
Definition: s4g_types.h:76
s4g_int getInt(s4g_Variable *pVar)
возвращает приведенное значение переменной к int.
Definition: s4g_gc.cpp:548
bool add2ConstContext(const char *szName, s4g_Variable *pVar)
добавить в константный контекст переменную и установить ей имя
Definition: s4g_gc.cpp:918
float s4g_float
float
Definition: s4g.h:276
s4g_Variable * createVarPdata(s4g_pdata pdata, int typeData=S4G_GC_TYPE_VAR_FREE)
создать переменную со значением pdata.
Definition: s4g_gc.cpp:274
s4g_Variable * createVarSfunc(s4g_Sfunction *func, int typeVar=S4G_GC_TYPE_VAR_FREE)
создать переменную со значением уже существующей скриптовой функции
Definition: s4g_gc.cpp:394
void activatePrev(ID idLastContext)
активирует предыдущие контексты до idLastContext (это значение было получено при вызове deactivatePre...
Definition: s4g_gc.cpp:993
объект класса
Definition: s4g_types.h:317
s4g_Variable * createVarUint(s4g_uint num, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением num.
Definition: s4g_gc.cpp:316
void deleteTopContext(bool canClear)
пометить контекст как ненужный и при сборке мусора снести все с него
Definition: s4g_gc.cpp:1014
s4g_Variable * createVarClassEmpty(const char *szName, int typeVar=S4G_GC_TYPE_VAR_FREE, int typeData=S4G_GC_TYPE_DATA_FREE)
создать переменную со значением класса
Definition: s4g_gc.cpp:412
s4g_Sfunction * getSfunc(s4g_Variable *pVar)
возвращает приведенное значение переменной к скриптовой функции
Definition: s4g_gc.cpp:597