Mon Apr 28 2014 10:05:49

Asterisk developer's documentation


ais.h File Reference

Usage of the SAForum AIS (Application Interface Specification) More...

#include <saAis.h>
#include <saClm.h>
#include <saEvt.h>
Include dependency graph for ais.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  ast_ais_cmd { AST_AIS_CMD_EXIT, AST_AIS_CMD_MEMBERSHIP_CHANGED }

Functions

const char * ais_err2str (SaAisErrorT error)
int ast_ais_clm_load_module (void)
int ast_ais_clm_unload_module (void)
int ast_ais_cmd (enum ast_ais_cmd cmd)
int ast_ais_evt_load_module (void)
void ast_ais_evt_membership_changed (void)
int ast_ais_evt_unload_module (void)

Variables

SaVersionT ais_version
SaClmHandleT clm_handle
SaEvtHandleT evt_handle

Detailed Description

Usage of the SAForum AIS (Application Interface Specification)

Author:
Russell Bryant <russell@digium.com>

Definition in file ais.h.


Enumeration Type Documentation

Enumerator:
AST_AIS_CMD_EXIT 
AST_AIS_CMD_MEMBERSHIP_CHANGED 

Definition at line 50 of file ais.h.


Function Documentation

const char* ais_err2str ( SaAisErrorT  error)
int ast_ais_clm_load_module ( void  )

Definition at line 157 of file clm.c.

References ais_err2str(), ais_version, ARRAY_LEN, ast_cli_register_multiple(), ast_log(), clm_callbacks, clm_handle, clm_init_res, and LOG_ERROR.

Referenced by load_module().

{
   SaAisErrorT ais_res;

   clm_init_res = saClmInitialize(&clm_handle, &clm_callbacks, &ais_version);
   if (clm_init_res != SA_AIS_OK) {
      ast_log(LOG_ERROR, "Could not initialize cluster membership service: %s\n",
         ais_err2str(clm_init_res));
      return -1;
   }

   ais_res = saClmClusterTrack(clm_handle, SA_TRACK_CHANGES, NULL);
   if (ais_res != SA_AIS_OK) {
      ast_log(LOG_ERROR, "Error starting tracking of cluster membership changes.\n");
   }

   ast_cli_register_multiple(ais_cli, ARRAY_LEN(ais_cli));

   return 0;
}
int ast_ais_clm_unload_module ( void  )

Definition at line 178 of file clm.c.

References ais_err2str(), ARRAY_LEN, ast_cli_unregister_multiple(), ast_log(), clm_handle, clm_init_res, and LOG_ERROR.

Referenced by load_module(), and unload_module().

{
   SaAisErrorT ais_res;

   if (clm_init_res != SA_AIS_OK) {
      return 0;
   }

   ast_cli_unregister_multiple(ais_cli, ARRAY_LEN(ais_cli));

   ais_res = saClmFinalize(clm_handle);
   if (ais_res != SA_AIS_OK) {
      ast_log(LOG_ERROR, "Problem stopping cluster membership service: %s\n",
         ais_err2str(ais_res));
      return -1;
   }

   return 0;
}
int ast_ais_cmd ( enum ast_ais_cmd  cmd)

Definition at line 182 of file res_ais.c.

References ast_debug, and dispatch_thread.

{
   int res;

   res = write(dispatch_thread.alert_pipe[1], (char *) &cmd, sizeof(cmd));

   ast_debug(1, "AIS cmd: %d, res: %d\n", cmd, res);

   return res;
}
int ast_ais_evt_load_module ( void  )

Definition at line 576 of file evt.c.

References ais_err2str(), ais_version, ARRAY_LEN, ast_cli_register_multiple(), ast_log(), evt_callbacks, evt_handle, evt_init_res, load_config(), and LOG_ERROR.

Referenced by load_module().

{
   evt_init_res = saEvtInitialize(&evt_handle, &evt_callbacks, &ais_version);
   if (evt_init_res != SA_AIS_OK) {
      ast_log(LOG_ERROR, "Could not initialize eventing service: %s\n",
         ais_err2str(evt_init_res));
      return -1;
   }

   load_config();

   ast_cli_register_multiple(ais_cli, ARRAY_LEN(ais_cli));

   return 0;
}
int ast_ais_evt_unload_module ( void  )

Definition at line 592 of file evt.c.

References ais_err2str(), ast_log(), destroy_event_channels(), evt_handle, evt_init_res, and LOG_ERROR.

Referenced by load_module(), and unload_module().

{
   SaAisErrorT ais_res;

   if (evt_init_res != SA_AIS_OK) {
      return 0;
   }

   destroy_event_channels();

   ais_res = saEvtFinalize(evt_handle);
   if (ais_res != SA_AIS_OK) {
      ast_log(LOG_ERROR, "Problem stopping eventing service: %s\n",
         ais_err2str(ais_res));
      return -1;
   }

   return 0;
}

Variable Documentation

SaVersionT ais_version

Definition at line 70 of file res_ais.c.

Referenced by ast_ais_clm_load_module(), and ast_ais_evt_load_module().