diff options
author | Cinder <cinder@sdf.org> | 2015-02-08 12:53:39 -0700 |
---|---|---|
committer | Cinder <cinder@sdf.org> | 2015-02-08 12:53:39 -0700 |
commit | ca08bd5aba5e69fce3b0f5b4f861ffec9fe4d2e5 (patch) | |
tree | 16bdd84d4a0911c80d95d5dc04a3bdd342506e55 /indra/lscript/lscript_library.h | |
parent | ae6440eecc4d6c018a3634c2c06052757bde962f (diff) |
OPEN-292 - Remove lscript from project,
Remove legacy udp script upload methods,
Refactor script runtime perms from three arrays to one struct array so we don't have to juggle array order anymore.
Diffstat (limited to 'indra/lscript/lscript_library.h')
-rwxr-xr-x | indra/lscript/lscript_library.h | 427 |
1 files changed, 0 insertions, 427 deletions
diff --git a/indra/lscript/lscript_library.h b/indra/lscript/lscript_library.h deleted file mode 100755 index f3dbb09196..0000000000 --- a/indra/lscript/lscript_library.h +++ /dev/null @@ -1,427 +0,0 @@ -/** - * @file lscript_library.h - * @brief External library interface - * - * $LicenseInfo:firstyear=2002&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#ifndef LL_LSCRIPT_LIBRARY_H -#define LL_LSCRIPT_LIBRARY_H - -#include "lscript_byteformat.h" -#include "v3math.h" -#include "llquaternion.h" -#include "lluuid.h" -#include "lscript_byteconvert.h" - -class LLScriptLibData; - -class LLScriptLibraryFunction -{ -public: - LLScriptLibraryFunction(F32 eu, F32 st, void (*exec_func)(LLScriptLibData *, LLScriptLibData *, const LLUUID &), const char *name, const char *ret_type, const char *args, BOOL god_only = FALSE); - ~LLScriptLibraryFunction(); - - F32 mEnergyUse; - F32 mSleepTime; - void (*mExecFunc)(LLScriptLibData *, LLScriptLibData *, const LLUUID &); - const char *mName; - const char *mReturnType; - const char *mArgs; - BOOL mGodOnly; -}; - -class LLScriptLibrary -{ -public: - LLScriptLibrary(); - ~LLScriptLibrary(); - - void init(); - - void addFunction(F32 eu, F32 st, void (*exec_func)(LLScriptLibData *, LLScriptLibData *, const LLUUID &), const char *name, const char *ret_type, const char *args, BOOL god_only = FALSE); - void assignExec(const char *name, void (*exec_func)(LLScriptLibData *, LLScriptLibData *, const LLUUID &)); - - std::vector<LLScriptLibraryFunction> mFunctions; -}; - - - -class LLScriptLibData -{ -public: - // TODO: Change this to a union - LSCRIPTType mType; - S32 mInteger; - F32 mFP; - char *mKey; - char *mString; - LLVector3 mVec; - LLQuaternion mQuat; - LLScriptLibData *mListp; - - friend bool operator<=(const LLScriptLibData &a, const LLScriptLibData &b) - { - if (a.mType == b.mType) - { - if (a.mType == LST_INTEGER) - { - return a.mInteger <= b.mInteger; - } - if (a.mType == LST_FLOATINGPOINT) - { - return a.mFP <= b.mFP; - } - if (a.mType == LST_STRING) - { - return strcmp(a.mString, b.mString) <= 0; - } - if (a.mType == LST_KEY) - { - return strcmp(a.mKey, b.mKey) <= 0; - } - if (a.mType == LST_VECTOR) - { - return a.mVec.magVecSquared() <= b.mVec.magVecSquared(); - } - } - return TRUE; - } - - friend bool operator==(const LLScriptLibData &a, const LLScriptLibData &b) - { - if (a.mType == b.mType) - { - if (a.mType == LST_INTEGER) - { - return a.mInteger == b.mInteger; - } - if (a.mType == LST_FLOATINGPOINT) - { - return a.mFP == b.mFP; - } - if (a.mType == LST_STRING) - { - return !strcmp(a.mString, b.mString); - } - if (a.mType == LST_KEY) - { - return !strcmp(a.mKey, b.mKey); - } - if (a.mType == LST_VECTOR) - { - return a.mVec == b.mVec; - } - if (a.mType == LST_QUATERNION) - { - return a.mQuat == b.mQuat; - } - } - return FALSE; - } - - S32 getListLength() const - { - const LLScriptLibData *data = this; - S32 retval = 0; - while (data->mListp) - { - retval++; - data = data->mListp; - } - return retval; - } - - BOOL checkForMultipleLists() - { - LLScriptLibData *data = this; - while (data->mListp) - { - data = data->mListp; - if (data->mType == LST_LIST) - return TRUE; - } - return FALSE; - } - - S32 getSavedSize() - { - S32 size = 0; - // mType - size += 4; - - switch(mType) - { - case LST_INTEGER: - size += 4; - break; - case LST_FLOATINGPOINT: - size += 4; - break; - case LST_KEY: - size += (S32)strlen(mKey) + 1; /*Flawfinder: ignore*/ - break; - case LST_STRING: - size += (S32)strlen(mString) + 1; /*Flawfinder: ignore*/ - break; - case LST_LIST: - break; - case LST_VECTOR: - size += 12; - break; - case LST_QUATERNION: - size += 16; - break; - default: - break; - } - return size; - } - - S32 write2bytestream(U8 *dest) - { - S32 offset = 0; - integer2bytestream(dest, offset, mType); - switch(mType) - { - case LST_INTEGER: - integer2bytestream(dest, offset, mInteger); - break; - case LST_FLOATINGPOINT: - float2bytestream(dest, offset, mFP); - break; - case LST_KEY: - char2bytestream(dest, offset, mKey); - break; - case LST_STRING: - char2bytestream(dest, offset, mString); - break; - case LST_LIST: - break; - case LST_VECTOR: - vector2bytestream(dest, offset, mVec); - break; - case LST_QUATERNION: - quaternion2bytestream(dest, offset, mQuat); - break; - default: - break; - } - return offset; - } - - LLScriptLibData() : mType(LST_NULL), mInteger(0), mFP(0.f), mKey(NULL), mString(NULL), mVec(), mQuat(), mListp(NULL) - { - } - - LLScriptLibData(const LLScriptLibData &data) : mType(data.mType), mInteger(data.mInteger), mFP(data.mFP), mKey(NULL), mString(NULL), mVec(data.mVec), mQuat(data.mQuat), mListp(NULL) - { - if (data.mKey) - { - mKey = new char[strlen(data.mKey) + 1]; /* Flawfinder: ignore */ - if (mKey == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mKey, data.mKey); /* Flawfinder: ignore */ - } - if (data.mString) - { - mString = new char[strlen(data.mString) + 1]; /* Flawfinder: ignore */ - if (mString == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mString, data.mString); /* Flawfinder: ignore */ - } - } - - LLScriptLibData(U8 *src, S32 &offset) : mListp(NULL) - { - static char temp[TOP_OF_MEMORY]; /* Flawfinder: ignore */ - mType = (LSCRIPTType)bytestream2integer(src, offset); - switch(mType) - { - case LST_INTEGER: - mInteger = bytestream2integer(src, offset); - break; - case LST_FLOATINGPOINT: - mFP = bytestream2float(src, offset); - break; - case LST_KEY: - { - bytestream2char(temp, src, offset, sizeof(temp)); - mKey = new char[strlen(temp) + 1]; /* Flawfinder: ignore */ - if (mKey == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mKey, temp); /* Flawfinder: ignore */ - } - break; - case LST_STRING: - { - bytestream2char(temp, src, offset, sizeof(temp)); - mString = new char[strlen(temp) + 1]; /* Flawfinder: ignore */ - if (mString == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mString, temp); /* Flawfinder: ignore */ - } - break; - case LST_LIST: - break; - case LST_VECTOR: - bytestream2vector(mVec, src, offset); - break; - case LST_QUATERNION: - bytestream2quaternion(mQuat, src, offset); - break; - default: - break; - } - } - - void set(U8 *src, S32 &offset) - { - static char temp[TOP_OF_MEMORY]; /* Flawfinder: ignore */ - mType = (LSCRIPTType)bytestream2integer(src, offset); - switch(mType) - { - case LST_INTEGER: - mInteger = bytestream2integer(src, offset); - break; - case LST_FLOATINGPOINT: - mFP = bytestream2float(src, offset); - break; - case LST_KEY: - { - bytestream2char(temp, src, offset, sizeof(temp)); - mKey = new char[strlen(temp) + 1]; /* Flawfinder: ignore */ - if (mKey == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mKey, temp); /* Flawfinder: ignore */ - } - break; - case LST_STRING: - { - bytestream2char(temp, src, offset, sizeof(temp)); - mString = new char[strlen(temp) + 1]; /* Flawfinder: ignore */ - if (mString == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mString, temp); /* Flawfinder: ignore */ - } - break; - case LST_LIST: - break; - case LST_VECTOR: - bytestream2vector(mVec, src, offset); - break; - case LST_QUATERNION: - bytestream2quaternion(mQuat, src, offset); - break; - default: - break; - } - } - - void print(std::ostream &s, BOOL b_prepend_comma); - void print_separator(std::ostream& ostr, BOOL b_prepend_sep, char* sep); - - void setFromCSV(const char *src) - { - mType = LST_STRING; - mString = new char[strlen(src) + 1]; /* Flawfinder: ignore */ - if (mString == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mString, src); /* Flawfinder: ignore */ - } - - LLScriptLibData(S32 integer) : mType(LST_INTEGER), mInteger(integer), mFP(0.f), mKey(NULL), mString(NULL), mVec(), mQuat(), mListp(NULL) - { - } - - LLScriptLibData(F32 fp) : mType(LST_FLOATINGPOINT), mInteger(0), mFP(fp), mKey(NULL), mString(NULL), mVec(), mQuat(), mListp(NULL) - { - } - - LLScriptLibData(const LLUUID &id) : mType(LST_KEY), mInteger(0), mFP(0.f), mKey(NULL), mString(NULL), mVec(), mQuat(), mListp(NULL) - { - std::string idstr; - id.toString(idstr); - mKey = new char[idstr.length()+1]; - LLStringUtil::copy(mKey,idstr.c_str(),idstr.length()+1); - } - - LLScriptLibData(const char *string) : mType(LST_STRING), mInteger(0), mFP(0.f), mKey(NULL), mString(NULL), mVec(), mQuat(), mListp(NULL) - { - if (!string) - { - mString = new char[1]; - mString[0] = 0; - } - else - { - mString = new char[strlen(string) + 1]; /* Flawfinder: ignore */ - if (mString == NULL) - { - LL_ERRS() << "Memory Allocation Failed" << LL_ENDL; - return; - } - strcpy(mString, string); /* Flawfinder: ignore */ - } - } - - LLScriptLibData(const LLVector3 &vec) : mType(LST_VECTOR), mInteger(0), mFP(0.f), mKey(NULL), mString(NULL), mVec(vec), mQuat(), mListp(NULL) - { - } - - LLScriptLibData(const LLQuaternion &quat) : mType(LST_QUATERNION), mInteger(0), mFP(0.f), mKey(NULL), mString(NULL), mVec(), mQuat(quat), mListp(NULL) - { - } - - ~LLScriptLibData() - { - delete mListp; - delete [] mKey; - delete [] mString; - } - -}; - -extern LLScriptLibrary gScriptLibrary; - -#endif |