engineFunctions.cpp
Engine/source/console/engineFunctions.cpp
Public Functions
IMPLEMENT_NONINSTANTIABLE_CLASS(EngineFunctionInfo , "Information about an engine function." )
Detailed Description
Public Functions
IMPLEMENT_NONINSTANTIABLE_CLASS(EngineFunctionInfo , "Information about an engine function." )
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#include "console/engineFunctions.h" 25 26 27IMPLEMENT_NONINSTANTIABLE_CLASS( EngineFunctionInfo, 28 "Information about an engine function." ) 29END_IMPLEMENT_CLASS; 30 31 32EngineFunctionInfo* EngineFunctionInfo::smFirstFunction; 33 34 35//----------------------------------------------------------------------------- 36 37EngineFunctionInfo::EngineFunctionInfo( const char* name, 38 EngineExportScope* scope, 39 const char* docString, 40 const char* prototypeString, 41 const char* bindingName, 42 const EngineTypeInfo* functionType, 43 const EngineFunctionDefaultArguments* defaultArgs, 44 void* address, 45 U32 flags ) 46 : SuperType( name, EngineExportKindFunction, scope, docString ), 47 mFunctionFlags( flags ), 48 mFunctionType( functionType ), 49 mDefaultArgumentValues( defaultArgs ), 50 mBindingName( bindingName ), 51 mPrototypeString( prototypeString ), 52 mAddress( address ), 53 mNextFunction( smFirstFunction ) 54{ 55 AssertFatal( functionType, "EngineFunctionInfo - Function cannot have void type!" ); 56 smFirstFunction = this; 57} 58 59//----------------------------------------------------------------------------- 60 61void EngineFunctionInfo::resetAllCallouts() 62{ 63 for( EngineFunctionInfo* function = smFirstFunction; function != NULL; function = function->mNextFunction ) 64 if( function->isCallout() ) 65 *reinterpret_cast< void** >( function->mAddress ) = NULL; 66} 67