GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> FMX / V4-0-14 > fmxshr / rhel5-32


Interface   Data Structures   File List   Data Fields   Globals  

Classes | Typedefs | Functions | Variables
FMX_enum.c File Reference

Access functions to the various enumerations in the database. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
#include <mysql.h>
#include <FMX/FMX_msgs.h>
#include <FMX/FMX_pubdefs.h>
#include <MDB/MDB_pubdefs.h>
#include <FMX_diction.h>
#include <FMX_prvdefs.h>

Classes

struct  _FMX_LoadEnum
 Enumeration specific load instructions. More...

Typedefs

typedef unsigned int FMX_cb_LoadEnum (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Signature for a routine to load an enumeration table.
typedef struct _FMX_LoadEnum FMX_LoadEnum
 Typedef for struct _FMX_LoadEnum.

Functions

static unsigned int loadDevice (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Load a device enumeration table into memory.
static unsigned int loadFiletype (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Load a filetype enumeration table into memory.
static unsigned int loadHost (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Load a host enumeration table into memory.
static unsigned int loadInstrument (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Load an instrument enumeration table into memory.
static unsigned int loadNode (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Load a node enumeration table into memory.
static unsigned int loadTag (FMX_Connection *ucb, FMX_EnumTableList tbl, MYSQL_RES *result)
 Load a tag enumeration table into memory.
unsigned int FMX_findEnumByIndex (FMX_Connection *ucb, FMX_EnumTableList tbl, unsigned int index, FMX_EnumTable **num)
 Return a pointer to an FMX_Device.
unsigned int FMX_findEnumByName (FMX_Connection *ucb, FMX_EnumTableList tbl, const char *name, FMX_EnumTable **num)
 Return a pointer to an FMX_Device.
void FMX_freeEnumTable (FMX_Connection *ucb, FMX_EnumTableList tbl)
 Free an enumeration table.
unsigned int FMX_loadEnumTable (FMX_Connection *ucb, FMX_EnumTableList tbl)
 Load an enumeration table into memory.

Variables

FMX_LoadEnum loadEnum [FMX_L_ENUM_TABLES]

Detailed Description

Access functions to the various enumerations in the database.

CVS $Id: FMX_enum.c,v 1.2 2011/03/25 20:42:51 apw Exp $
Author:
A.P.Waite

Function Documentation

unsigned int FMX_findEnumByIndex ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
unsigned int  index,
FMX_EnumTable **  num 
)

Return a pointer to an FMX_Device.

Parameters:
ucb(in) User connection block
tbl(in) Index of table to search
index(in) Index of object to look up
num(in) Pointer to row in table
Return values:
FMX_ENUMINDXCould not find index in table
FMX_ENUMTABLInvalid enumeration table index
FMX_SUCCESSSuccess
FMX_UCBNOTInvalid user connection block

References _FMX_EnumTableControl::cnt, _FMX_EnumTable::common, FMX_L_ENUM_TABLES, FMX_loadEnumTable(), FMX_TBL_INITIALIZED, _FMX_Common::index, _FMX_Connection::self, _FMX_EnumTableControl::state, _FMX_Connection::table, and _FMX_EnumTableControl::top.

Referenced by FMX_scanFilesByKey(), scanCompoundMembers(), and scanFilesByKeyModule().

unsigned int FMX_findEnumByName ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
const char *  name,
FMX_EnumTable **  num 
)

Return a pointer to an FMX_Device.

Parameters:
ucb(in) User connection block
tbl(in) Index of table to search
name(in) Name of object to look up
num(in) Pointer to row in table
Return values:
FMX_ENUMNAMECould not find name in table
FMX_ENUMTABLInvalid enumeration table index
FMX_SUCCESSSuccess
FMX_UCBNOTInvalid user connection block

References _FMX_EnumTableControl::cnt, _FMX_EnumTable::common, FMX_L_ENUM_TABLES, FMX_loadEnumTable(), FMX_TBL_INITIALIZED, _FMX_Common::name, _FMX_Connection::self, _FMX_EnumTableControl::state, _FMX_Connection::table, and _FMX_EnumTableControl::top.

Referenced by FMX_findCDMbyKey(), and scanSBSmembers().

void FMX_freeEnumTable ( FMX_Connection ucb,
FMX_EnumTableList  tbl 
)
unsigned int FMX_loadEnumTable ( FMX_Connection ucb,
FMX_EnumTableList  tbl 
)

Load an enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Index of table to load
Return values:
FMX_ALLOCMEMCannot allocate enumeration table
FMX_ENUMTABLInvalid enumeration table index
FMX_SUCCESSSuccess
FMX_UCBNOTInvalid user connection block

References FMX_L_ENUM_TABLES, FMX_TBL_INITIALIZED, _FMX_LoadEnum::load, _FMX_Connection::mysql, _FMX_Connection::self, _FMX_EnumTableControl::state, _FMX_Connection::table, and _FMX_EnumTableControl::top.

Referenced by FMX_findEnumByIndex(), and FMX_findEnumByName().

static unsigned int loadDevice ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
MYSQL_RES *  result 
) [static]

Load a device enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Table to load
result(in) Result list from SQL query
Return values:
FMX_ALLOCMEMCannot allocate device table strings
FMX_BRDTYPEUnknown board type (this program needs to catch up)
FMX_DVCTYPEUnknown device type (this program needs to catch up)
FMX_SUCCESSSuccess

References _FMX_Device::board, _FMX_EnumTableControl::cnt, _FMX_EnumTable::device, FMX_DVC_BRD_CPU, FMX_DVC_BRD_SIB, FMX_DVC_BRD_UNKNOWN, FMX_DVC_TYP_PERSISTENT, FMX_DVC_TYP_UNKNOWN, FMX_DVC_TYP_VOLATILE, FMX_freeEnumTable(), FMX_TBL_INITIALIZED, _FMX_Device::index, _FMX_Device::name, s_cpu, s_persistent, s_volatile, _FMX_EnumTableControl::state, _FMX_Connection::table, _FMX_EnumTableControl::top, and _FMX_Device::type.

static unsigned int loadFiletype ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
MYSQL_RES *  result 
) [static]

Load a filetype enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Table to load
result(in) Result list from SQL query
Return values:
FMX_ALLOCMEMCannot allocate device table strings
FMX_SUCCESSSuccess

References _FMX_EnumTableControl::cnt, _FMX_Filetype::comment, _FMX_Filetype::dir, _FMX_EnumTable::filetype, FMX_freeEnumTable(), FMX_GRP_COMPOUND, FMX_GRP_MODULE, FMX_GRP_SIMPLE, FMX_GRP_UNKNOWN, FMX_TBL_INITIALIZED, _FMX_Filetype::group, _FMX_Filetype::index, _FMX_Filetype::name, s_compound, s_module, s_simple, _FMX_EnumTableControl::state, _FMX_Connection::table, and _FMX_EnumTableControl::top.

static unsigned int loadHost ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
MYSQL_RES *  result 
) [static]

Load a host enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Table to load
result(in) Result list from SQL query
Return values:
FMX_ALLOCMEMCannot allocate device table strings
FMX_SUCCESSSuccess

References _FMX_EnumTableControl::cnt, FMX_freeEnumTable(), FMX_TBL_INITIALIZED, _FMX_EnumTable::host, _FMX_Host::index, _FMX_Host::master, _FMX_Host::name, _FMX_Host::port, _FMX_Host::proxy, s_Y, _FMX_EnumTableControl::state, _FMX_Connection::table, and _FMX_EnumTableControl::top.

static unsigned int loadInstrument ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
MYSQL_RES *  result 
) [static]

Load an instrument enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Table to load
result(in) Result list from SQL query
Return values:
FMX_ALLOCMEMCannot allocate device table strings
FMX_SUCCESSSuccess

References _FMX_EnumTableControl::cnt, _FMX_Instrument::comment, FMX_freeEnumTable(), FMX_TBL_INITIALIZED, _FMX_Instrument::hdx, _FMX_Instrument::index, _FMX_EnumTable::instrument, _FMX_Instrument::location, _FMX_Instrument::name, _FMX_EnumTableControl::state, _FMX_Connection::table, _FMX_EnumTableControl::top, and _FMX_Instrument::towers.

static unsigned int loadNode ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
MYSQL_RES *  result 
) [static]

Load a node enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Table to load
result(in) Result list from SQL query
Return values:
FMX_ALLOCMEMCannot allocate device table strings
FMX_SUCCESSSuccess

References _FMX_Node::address, _FMX_EnumTableControl::cnt, FMX_freeEnumTable(), FMX_TBL_INITIALIZED, _FMX_Node::index, _FMX_Node::name, _FMX_EnumTable::node, _FMX_EnumTableControl::state, _FMX_Connection::table, and _FMX_EnumTableControl::top.

static unsigned int loadTag ( FMX_Connection ucb,
FMX_EnumTableList  tbl,
MYSQL_RES *  result 
) [static]

Load a tag enumeration table into memory.

Parameters:
ucb(in) User connection block
tbl(in) Table to load
result(in) Result list from SQL query
Return values:
FMX_ALLOCMEMCannot allocate device table strings
FMX_SUCCESSSuccess

References _FMX_EnumTableControl::cnt, FMX_freeEnumTable(), FMX_TAG_EMBEDDED, FMX_TAG_HOST, FMX_TAG_UNKNOWN, FMX_TBL_INITIALIZED, _FMX_Tag::index, _FMX_Tag::name, s_N, s_Y, _FMX_EnumTableControl::state, _FMX_Connection::table, _FMX_EnumTable::tag, _FMX_EnumTableControl::top, and _FMX_Tag::vxworks.


Variable Documentation

FMX_LoadEnum loadEnum[FMX_L_ENUM_TABLES]
Initial value:
 {



    { "device,     name, type,      board",                     "device",     &loadDevice     },
    { "filetype,   name, directory, member, comment",           "filetype",   &loadFiletype   },
    { "host,       name, master,    proxy,  port",              "host",       &loadHost       },
    { "instrument, name, towers,    host,   location, comment", "instrument", &loadInstrument },
    { "node,       name, address",                              "node",       &loadNode       },
    { "tag,        name, vxworks",                              "tag",        &loadTag        }
}