Move scared guts of core into logic (bug 5680, r=fyren).

--HG--
rename : core/ExtensionSys.cpp => core/logic/ExtensionSys.cpp
rename : core/ExtensionSys.h => core/logic/ExtensionSys.h
rename : core/HandleSys.cpp => core/logic/HandleSys.cpp
rename : core/HandleSys.h => core/logic/HandleSys.h
rename : core/NativeInvoker.cpp => core/logic/NativeInvoker.cpp
rename : core/NativeInvoker.h => core/logic/NativeInvoker.h
rename : core/NativeOwner.cpp => core/logic/NativeOwner.cpp
rename : core/NativeOwner.h => core/logic/NativeOwner.h
rename : core/PluginSys.cpp => core/logic/PluginSys.cpp
rename : core/PluginSys.h => core/logic/PluginSys.h
rename : core/ShareSys.cpp => core/logic/ShareSys.cpp
rename : core/ShareSys.h => core/logic/ShareSys.h
rename : core/smn_fakenatives.cpp => core/logic/smn_fakenatives.cpp
rename : core/logic/AutoHandleRooter.h => public/AutoHandleRooter.h
This commit is contained in:
David Anderson
2013-03-29 11:37:29 -07:00
parent 502c6f0dae
commit 045ee262a8
71 changed files with 3973 additions and 1131 deletions
+91
View File
@@ -0,0 +1,91 @@
/**
* vim: set ts=4 sw=4 tw=99 noet :
* =============================================================================
* SourceMod
* Copyright (C) 2004-2009 AlliedModders LLC. All rights reserved.
* =============================================================================
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
*
* This program 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 General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*
* As a special exception, AlliedModders LLC gives you permission to link the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* by the Valve Corporation. You must obey the GNU General Public License in
* all respects for all other code used. Additionally, AlliedModders LLC grants
* this exception to all derivative works. AlliedModders LLC defines further
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* or <http://www.sourcemod.net/license.php>.
*
* Version: $Id$
*/
#ifndef _INCLUDE_SOURCEMOD_AUTO_HANDLE_ROOTER_H_
#define _INCLUDE_SOURCEMOD_AUTO_HANDLE_ROOTER_H_
#include <IHandleSys.h>
class AutoHandleRooter
{
public:
AutoHandleRooter(Handle_t hndl)
{
if (hndl != BAD_HANDLE)
this->hndl = handlesys->FastCloneHandle(hndl);
else
this->hndl = BAD_HANDLE;
}
~AutoHandleRooter()
{
if (hndl != BAD_HANDLE)
{
HandleSecurity sec(g_pCoreIdent, g_pCoreIdent);
handlesys->FreeHandle(hndl, &sec);
}
}
Handle_t getHandle()
{
return hndl;
}
private:
Handle_t hndl;
};
class AutoHandleCloner
{
Handle_t original;
HandleSecurity sec;
AutoHandleRooter ahr;
public:
AutoHandleCloner(Handle_t original, HandleSecurity sec)
: original(original), sec(sec), ahr(original)
{
}
~AutoHandleCloner()
{
if (original != BAD_HANDLE)
{
handlesys->FreeHandle(original, &sec);
}
}
Handle_t getClone()
{
return ahr.getHandle();
}
};
#endif /* _INCLUDE_SOURCEMOD_AUTO_HANDLE_ROOTER_H_ */
+3 -1
View File
@@ -132,8 +132,10 @@ namespace SourceMod
*
* Note: This is bumped when IShareSys is changed, because IShareSys
* itself is not versioned.
*
* V6 - added TestFeature() to IShareSys.
*/
#define SMINTERFACE_EXTENSIONAPI_VERSION 5
#define SMINTERFACE_EXTENSIONAPI_VERSION 6
/**
* @brief The interface an extension must expose.
+10 -1
View File
@@ -52,7 +52,7 @@
#include <sp_vm_types.h>
#define SMINTERFACE_HANDLESYSTEM_NAME "IHandleSys"
#define SMINTERFACE_HANDLESYSTEM_VERSION 4
#define SMINTERFACE_HANDLESYSTEM_VERSION 5
/** Specifies no Identity */
#define DEFAULT_IDENTITY NULL
@@ -364,6 +364,15 @@ namespace SourceMod
* @return A new Handle_t, or 0 on failure.
*/
virtual Handle_t FastCloneHandle(Handle_t hndl) =0;
/**
* @brief Type checks two handles.
*
* @param given Type to test.
* @param actual Type to check for.
* @return True if "given" is a subtype of "actual", false otherwise.
*/
virtual bool TypeCheck(HandleType_t given, HandleType_t actual) = 0;
};
}
+11 -1
View File
@@ -43,7 +43,7 @@
namespace SourceMod
{
#define SMINTERFACE_LIBRARYSYS_NAME "ILibrarySys"
#define SMINTERFACE_LIBRARYSYS_VERSION 4
#define SMINTERFACE_LIBRARYSYS_VERSION 5
enum FileTimeType
{
@@ -223,6 +223,16 @@ namespace SourceMod
* @return True on success, false on failure.
*/
virtual bool FileTime(const char *path, FileTimeType type, time_t *pTime) =0;
/**
* @brief Retrieve the file component of the given path.
*
* @param buffer Output buffer.
* @param maxlength Length of the output buffer.
* @param path Path to search for a filename.
* @return Number of bytes written to buffer, not including the null terminator.
*/
virtual size_t GetFileFromPath(char *buffer, size_t maxlength, const char *path) =0;
};
}
+14 -1
View File
@@ -38,7 +38,7 @@
*/
#include <sp_vm_types.h>
#include <sp_vm_api.h>
namespace SourceMod
{
@@ -278,6 +278,19 @@ namespace SourceMod
virtual void DropCapabilityProvider(IExtension *myself,
IFeatureProvider *provider,
const char *name) =0;
/**
* Tests for a feature.
*
* @param rt Plugin to test.
* @param type Feature type.
* @param name Feature name.
* @return Feature status.
*/
virtual FeatureStatus TestFeature(SourcePawn::IPluginRuntime *rt,
FeatureType type,
const char *name) =0;
};
}