Fixed tabs, hopefully...
3 * ===============================================================
4 * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved.
5 * ===============================================================
7 * This file is part of the SourceMod/SourcePawn SDK. This file may only be used
8 * or modified under the Terms and Conditions of its License Agreement, which is found
9 * in LICENSE.txt. The Terms and Conditions for making SourceMod extensions/plugins
10 * may change at any time. To view the latest information, see:
11 * http://www.sourcemod.net/license.php
16 #if defined _handles_included
19 #define _handles_included
27 * @brief Returns if a handle is valid or not.
28 * @note It is not a good idea to call this on every Handle. If you code properly,
29 * all of your Handles will either be valid or will expose important bugs to fix.
30 * This is provided for situations only where testing for handle validity is needed.
32 * @param hndl Handle to test for validity.
33 * @return True if handle is valid, false otherwise.
35 native bool:IsValidHandle(Handle:hndl);
38 * @brief Closes a Handle. If the handle has multiple copies open,
39 * it is not destroyed unless all copies are closed.
41 * @note Closing a Handle has a different meaning for each Handle type. Make
42 * sure you read the documentation on whatever provided the Handle.
44 * @param hndl Handle to close.
45 * @return True if successful, false if not closeable.
46 * @error Invalid handles will cause a run time error.
48 native bool:CloseHandle(Handle:hndl);
51 * @brief Clones a Handle. When passing handles in between plugins, caching handles
52 * can result in accidental invalidation when one plugin releases the Handle, or is its owner
53 * is unloaded from memory. To prevent this, the Handle may be "cloned" with a new owner.
55 * @note Usually, you will be cloning Handles for other plugins. This means that if you clone
56 * the Handle without specifying the new owner, it will assume the identity of your original calling
57 * plugin, which is not very useful. You should either specify that the receiving plugin should
58 * clone the handle on its own, or you should explicitly clone the Handle using the receiving plugin's
61 * @param hndl Handle to clone/duplicate.
62 * @param plugin Optional Handle to another plugin to mark as the new owner.
63 * If no owner is passed, the owner becomes the calling plugin.
64 * @return Handle on success, INVALID_HANDLE if not cloneable.
65 * @error Invalid handles will cause a run time error.
67 native Handle:CloneHandle(Handle:hndl, Handle:plugin=INVALID_HANDLE);