extensions/threader/extension.h
author David Anderson <dvander@alliedmods.net>
Fri Jun 22 17:24:48 2007 +0000 (2007-06-22)
changeset 1002 786f5abf93ea
parent 757 b799caa9a190
permissions -rw-r--r--
fixed a bug where the "keyOnly" parameter to KvGotoNextKey was read backwards
dvander@373
     1
/**
ds@757
     2
 * vim: set ts=4 :
ds@757
     3
 * ===============================================================
ds@757
     4
 * SourceMod Threading Extension
ds@757
     5
 * Copyright (C) 2004-2007 AlliedModders LLC. All rights reserved.
ds@757
     6
 * ===============================================================
dvander@373
     7
 *
dvander@373
     8
 * This program is free software; you can redistribute it and/or
dvander@373
     9
 * modify it under the terms of the GNU General Public License
dvander@373
    10
 * as published by the Free Software Foundation; either version 2
dvander@373
    11
 * of the License, or (at your option) any later version.
dvander@373
    12
 * This program is distributed in the hope that it will be useful,
dvander@373
    13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
dvander@373
    14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dvander@373
    15
 * GNU General Public License for more details.
dvander@373
    16
 * 
dvander@373
    17
 * You should have received a copy of the GNU General Public License
dvander@373
    18
 * along with this program; if not, write to the Free Software
dvander@373
    19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
dvander@373
    20
 *
dvander@373
    21
 * Version: $Id$
dvander@373
    22
 */
dvander@373
    23
dvander@322
    24
#ifndef _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_
dvander@322
    25
#define _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_
dvander@322
    26
ds@757
    27
/**
ds@757
    28
 * @file extension.h
ds@757
    29
 * @brief Threader extension code header.
ds@757
    30
 */
ds@757
    31
dvander@322
    32
#include "smsdk_ext.h"
dvander@322
    33
dvander@322
    34
/**
ds@757
    35
 * @brief Implementation of the threader extension.
dvander@322
    36
 * Note: Uncomment one of the pre-defined virtual functions in order to use it.
dvander@322
    37
 */
dvander@322
    38
class Sample : public SDKExtension
dvander@322
    39
{
dvander@322
    40
public:
dvander@322
    41
	/**
dvander@322
    42
	 * @brief This is called after the initial loading sequence has been processed.
dvander@322
    43
	 *
dvander@322
    44
	 * @param error		Error message buffer.
ds@757
    45
	 * @param maxlength	Size of error message buffer.
dvander@322
    46
	 * @param late		Whether or not the module was loaded after map load.
dvander@322
    47
	 * @return			True to succeed loading, false to fail.
dvander@322
    48
	 */
ds@757
    49
	virtual bool SDK_OnLoad(char *error, size_t maxlength, bool late);
dvander@322
    50
	
dvander@322
    51
	/**
dvander@322
    52
	 * @brief This is called right before the extension is unloaded.
dvander@322
    53
	 */
dvander@322
    54
	//virtual void SDK_OnUnload();
dvander@322
    55
dvander@322
    56
	/**
dvander@322
    57
	 * @brief This is called once all known extensions have been loaded.
dvander@322
    58
	 * Note: It is is a good idea to add natives here, if any are provided.
dvander@322
    59
	 */
dvander@322
    60
	//virtual void SDK_OnAllLoaded();
dvander@322
    61
dvander@322
    62
	/**
dvander@322
    63
	 * @brief Called when the pause state is changed.
dvander@322
    64
	 */
dvander@322
    65
	//virtual void SDK_OnPauseChange(bool paused);
dvander@322
    66
dvander@322
    67
	/**
dvander@322
    68
	 * @brief this is called when Core wants to know if your extension is working.
dvander@322
    69
	 *
dvander@322
    70
	 * @param error		Error message buffer.
ds@757
    71
	 * @param maxlength	Size of error message buffer.
dvander@322
    72
	 * @return			True if working, false otherwise.
dvander@322
    73
	 */
ds@757
    74
	//virtual bool QueryRunning(char *error, size_t maxlength);
dvander@322
    75
public:
dvander@322
    76
#if defined SMEXT_CONF_METAMOD
dvander@322
    77
	/**
ds@757
    78
	 * @brief Called when Metamod is attached, before the extension version is called.
ds@757
    79
	 *
ds@757
    80
	 * @param error			Error buffer.
ds@757
    81
	 * @param maxlength		Maximum size of error buffer.
ds@757
    82
	 * @param late			Whether or not Metamod considers this a late load.
ds@757
    83
	 * @return				True to succeed, false to fail.
dvander@322
    84
	 */
ds@757
    85
	//virtual bool SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlength, bool late);
dvander@322
    86
ds@757
    87
	/**
ds@757
    88
	 * @brief Called when Metamod is detaching, after the extension version is called.
ds@757
    89
	 * NOTE: By default this is blocked unless sent from SourceMod.
ds@757
    90
	 *
ds@757
    91
	 * @param error			Error buffer.
ds@757
    92
	 * @param maxlength		Maximum size of error buffer.
ds@757
    93
	 * @return				True to succeed, false to fail.
ds@757
    94
	 */
ds@757
    95
	//virtual bool SDK_OnMetamodUnload(char *error, size_t maxlength);
ds@757
    96
ds@757
    97
	/**
ds@757
    98
	 * @brief Called when Metamod's pause state is changing.
ds@757
    99
	 * NOTE: By default this is blocked unless sent from SourceMod.
ds@757
   100
	 *
ds@757
   101
	 * @param paused		Pause state being set.
ds@757
   102
	 * @param error			Error buffer.
ds@757
   103
	 * @param maxlength		Maximum size of error buffer.
ds@757
   104
	 * @return				True to succeed, false to fail.
ds@757
   105
	 */
ds@757
   106
	//virtual bool SDK_OnMetamodPauseChange(bool paused, char *error, size_t maxlength);
dvander@322
   107
#endif
dvander@322
   108
};
dvander@322
   109
ds@757
   110
#endif // _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_