Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
app_hooks.h File Reference
#include "lib/os_path.h"
Include dependency graph for app_hooks.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  AppHooks
 holds a function pointer (allowed to be NULL) for each hook. More...
 

Macros

#define AH_IS_DEFINED(name)   app_hook_was_redefined(offsetof(AppHooks, name))
 

Functions

const OsPathah_get_log_dir ()
 return path to directory into which crash dumps should be written. More...
 
void ah_bundle_logs (FILE *f)
 gather all app-related logs/information and write it to file. More...
 
ErrorReactionInternal ah_display_error (const wchar_t *text, size_t flags)
 display an error dialog, thus overriding sys_display_error. More...
 
void app_hooks_update (AppHooks *ah)
 update the app hook function pointers. More...
 
bool app_hook_was_redefined (size_t offset_in_struct)
 was the app hook changed via app_hooks_update from its default value? More...
 

Macro Definition Documentation

◆ AH_IS_DEFINED

#define AH_IS_DEFINED (   name)    app_hook_was_redefined(offsetof(AppHooks, name))

Function Documentation

◆ ah_bundle_logs()

void ah_bundle_logs ( FILE *  f)

gather all app-related logs/information and write it to file.

used when writing a crash log so that all relevant info is in one file.

the default implementation attempts to gather 0ad data, but is fail-safe (doesn't complain if file not found).

Parameters
ffile into which to write.

◆ ah_display_error()

ErrorReactionInternal ah_display_error ( const wchar_t *  text,
size_t  flags 
)

display an error dialog, thus overriding sys_display_error.

Parameters
texterror message.
flagssee DebugDisplayErrorFlags.
Returns
ErrorReactionInternal.

the default implementation just returns ERI_NOT_IMPLEMENTED, which causes the normal sys_display_error to be used.

◆ ah_get_log_dir()

const OsPath & ah_get_log_dir ( )

return path to directory into which crash dumps should be written.

must be callable at any time - in particular, before VFS init. paths are typically relative to sys_ExecutablePathname.

Returns
path ending with directory separator (e.g. '/').

◆ app_hook_was_redefined()

bool app_hook_was_redefined ( size_t  offset_in_struct)

was the app hook changed via app_hooks_update from its default value?

Parameters
offset_in_structbyte offset within AppHooks (determined via offsetof) of the app hook function pointer.

◆ app_hooks_update()

void app_hooks_update ( AppHooks ah)

update the app hook function pointers.

Parameters
ahAppHooks struct. any of its function pointers that are non-zero override the previous function pointer value (these default to the stub hooks which are functional but basic).