Freeciv21
Develop your civilization from humble roots to a global empire
luascript_signal.cpp File Reference
#include "deprecations.h"
#include "luascript.h"
#include "luascript_types.h"
#include "luascript_signal.h"
+ Include dependency graph for luascript_signal.cpp:

Go to the source code of this file.

Functions

static struct signal_callbacksignal_callback_new (const char *name)
 Signals implementation. More...
 
static void signal_callback_destroy (struct signal_callback *pcallback)
 Free a signal callback. More...
 
static struct signalsignal_new (int nargs, enum api_types *parg_types)
 Create a new signal. More...
 
static void signal_destroy (struct signal *psignal)
 Free a signal. More...
 
void luascript_signal_emit_valist (struct fc_lua *fcl, const char *signal_name, va_list args)
 Invoke all the callback functions attached to a given signal. More...
 
void luascript_signal_emit (struct fc_lua *fcl, const char *signal_name,...)
 Invoke all the callback functions attached to a given signal. More...
 
static struct signalluascript_signal_create_valist (struct fc_lua *fcl, const char *signal_name, int nargs, va_list args)
 Create a new signal type. More...
 
signal_deprecatorluascript_signal_create (struct fc_lua *fcl, const char *signal_name, int nargs,...)
 Create a new signal type. More...
 
void deprecate_signal (signal_deprecator *deprecator, const char *signal_name, const char *replacement, const char *deprecated_since)
 Mark signal deprecated. More...
 
void luascript_signal_callback (struct fc_lua *fcl, const char *signal_name, const char *callback_name, bool create)
 Connects a callback function to a certain signal. More...
 
bool luascript_signal_callback_defined (struct fc_lua *fcl, const char *signal_name, const char *callback_name)
 Returns if a callback function to a certain signal is defined. More...
 
void luascript_signal_init (struct fc_lua *fcl)
 Initialize script signals and callbacks. More...
 
void luascript_signal_free (struct fc_lua *fcl)
 Free script signals and callbacks. More...
 
QString luascript_signal_by_index (struct fc_lua *fcl, int sindex)
 Return the name of the signal with the given index. More...
 
const char * luascript_signal_callback_by_index (struct fc_lua *fcl, const char *signal_name, int sindex)
 Return the name of the 'index' callback function of the signal with the name 'signal_name'. More...
 

Function Documentation

◆ deprecate_signal()

void deprecate_signal ( signal_deprecator deprecator,
const char *  signal_name,
const char *  replacement,
const char *  deprecated_since 
)

Mark signal deprecated.

Definition at line 202 of file luascript_signal.cpp.

Referenced by script_server_signals_create().

◆ luascript_signal_by_index()

QString luascript_signal_by_index ( struct fc_lua fcl,
int  sindex 
)

Return the name of the signal with the given index.

Definition at line 331 of file luascript_signal.cpp.

Referenced by api_signal_by_index().

◆ luascript_signal_callback()

void luascript_signal_callback ( struct fc_lua fcl,
const char *  signal_name,
const char *  callback_name,
bool  create 
)

Connects a callback function to a certain signal.

Definition at line 230 of file luascript_signal.cpp.

Referenced by api_signal_connect(), and api_signal_remove().

◆ luascript_signal_callback_by_index()

const char* luascript_signal_callback_by_index ( struct fc_lua fcl,
const char *  signal_name,
int  sindex 
)

Return the name of the 'index' callback function of the signal with the name 'signal_name'.

Definition at line 344 of file luascript_signal.cpp.

Referenced by api_signal_callback_by_index().

◆ luascript_signal_callback_defined()

bool luascript_signal_callback_defined ( struct fc_lua fcl,
const char *  signal_name,
const char *  callback_name 
)

Returns if a callback function to a certain signal is defined.

Definition at line 276 of file luascript_signal.cpp.

Referenced by api_signal_defined().

◆ luascript_signal_create()

signal_deprecator* luascript_signal_create ( struct fc_lua fcl,
const char *  signal_name,
int  nargs,
  ... 
)

Create a new signal type.

Definition at line 181 of file luascript_signal.cpp.

Referenced by script_client_signal_create(), and script_server_signals_create().

◆ luascript_signal_create_valist()

static struct signal* luascript_signal_create_valist ( struct fc_lua fcl,
const char *  signal_name,
int  nargs,
va_list  args 
)
static

Create a new signal type.

Definition at line 147 of file luascript_signal.cpp.

Referenced by luascript_signal_create().

◆ luascript_signal_emit()

void luascript_signal_emit ( struct fc_lua fcl,
const char *  signal_name,
  ... 
)

Invoke all the callback functions attached to a given signal.

Definition at line 135 of file luascript_signal.cpp.

◆ luascript_signal_emit_valist()

void luascript_signal_emit_valist ( struct fc_lua fcl,
const char *  signal_name,
va_list  args 
)

Invoke all the callback functions attached to a given signal.

Definition at line 103 of file luascript_signal.cpp.

Referenced by luascript_signal_emit(), script_client_signal_emit(), and script_server_signal_emit().

◆ luascript_signal_free()

void luascript_signal_free ( struct fc_lua fcl)

Free script signals and callbacks.

Definition at line 314 of file luascript_signal.cpp.

Referenced by luascript_destroy(), and script_client_free().

◆ luascript_signal_init()

void luascript_signal_init ( struct fc_lua fcl)

Initialize script signals and callbacks.

Definition at line 301 of file luascript_signal.cpp.

Referenced by script_client_init(), and script_server_init().

◆ signal_callback_destroy()

static void signal_callback_destroy ( struct signal_callback pcallback)
static

Free a signal callback.

Definition at line 64 of file luascript_signal.cpp.

Referenced by signal_destroy().

◆ signal_callback_new()

static struct signal_callback * signal_callback_new ( const char *  name)
static

Signals implementation.

Create a new signal callback.

New signal types can be declared with script_signal_create. Each signal should have a unique name string. All signal declarations are in signals_create, for convenience.

A signal may have any number of Lua callback functions connected to it at any given time.

A signal emission invokes all associated callbacks in the order they were connected:

A callback can stop the current signal emission, preventing the callbacks connected after it from being invoked.

A callback can detach itself from its associated signal.

Lua callbacks functions are able to do these via their return values.

All Lua callback functions can return a value. Example: return false

If the value is 'true' the current signal emission will be stopped.

Definition at line 53 of file luascript_signal.cpp.

Referenced by luascript_signal_callback().

◆ signal_destroy()

static void signal_destroy ( struct signal psignal)
static

Free a signal.

Definition at line 88 of file luascript_signal.cpp.

Referenced by luascript_signal_free().

◆ signal_new()

static struct signal * signal_new ( int  nargs,
enum api_types *  parg_types 
)
static

Create a new signal.

Definition at line 73 of file luascript_signal.cpp.

Referenced by luascript_signal_create_valist().