Former-commit-id:9f8cb727a5
[formerly9f8cb727a5
[formerly bf53d06834caa780226121334ac1bcf0534c3f16]] Former-commit-id:8485b90ff8
Former-commit-id:a28d70b5c5
116 lines
4.4 KiB
C
116 lines
4.4 KiB
C
#include "geminc.h"
|
|
#include "gemprm.h"
|
|
#include "dbcmn.h"
|
|
|
|
#define A2DB_TAG "A2DB_"
|
|
|
|
extern A2Data_t A2DtTable;
|
|
|
|
void db_a2dtget ( char *alias, char *path, char *template, int *iret )
|
|
/************************************************************************
|
|
* *
|
|
* db_a2dtget *
|
|
* *
|
|
* m.gamazaychikov/SAIC 09/11 Created *
|
|
************************************************************************/
|
|
{
|
|
int ier, ii, ic, ipos, ic2, ipos2;
|
|
char name[49], tmpl[49];
|
|
|
|
int ierm;
|
|
char diagMessage[720];
|
|
/*----------------------------------------------------------------------*/
|
|
|
|
/*
|
|
* Initialization
|
|
*/
|
|
*iret = 0;
|
|
path[0] = '\0';
|
|
template[0] = '\0';
|
|
diagMessage[0] = '\0';
|
|
|
|
|
|
db_msgcave ("db_a2dtget", "debug", "calling db_isdbfile", &ierm);
|
|
db_isdbfile ( alias, &ier, strlen (alias) );
|
|
|
|
/*
|
|
* For the A2DB data create path and template
|
|
*/
|
|
if ( ier == 0 ) {
|
|
|
|
/*
|
|
* Remove the name of the storm/volcano from the alias.
|
|
*/
|
|
/*
|
|
* Find a match for the alias.
|
|
*/
|
|
for ( ii = 0; ii < A2DtTable.numtmpl; ii++ ) {
|
|
strcpy( path, A2DtTable.info[ii].path );
|
|
cst_nocc ( A2DtTable.info[ii].template, '*', 1, 0, &ipos2, &ic2 );
|
|
sprintf (diagMessage, "%s %d ", "ic2=", ic2 );
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
if ( ic2 == 0 ) {
|
|
/*
|
|
* Remove the name of the storm/volcano from the alias.
|
|
*/
|
|
cst_nocc ( alias, ':', 1, 0, &ipos, &ic );
|
|
if ( ic == 0 ) {
|
|
sprintf (diagMessage, "%s %d ", "ic=", ic );
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
strcpy ( name, &alias[ipos+1] );
|
|
alias[ipos] = CHNULL;
|
|
sprintf (diagMessage, "%s %s", "name ", name);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
sprintf (diagMessage, "%s %s", "new alias is", alias);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
}
|
|
if ( strcmp( A2DtTable.info[ii].alias, alias ) == 0 ) {
|
|
sprintf (diagMessage, "%s %d %s %s %s %s %s %s", "ii=", ii, "alias=", alias,
|
|
"path=", A2DtTable.info[ii].path,
|
|
"template=", A2DtTable.info[ii].template );
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
if ( ic == 0 ) {
|
|
sprintf (diagMessage, "%s %d ", "ic=", ic );
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
strcpy( tmpl, A2DtTable.info[ii].template );
|
|
sprintf (diagMessage, "%s %s", "tmpl is ", tmpl);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
cst_rpst ( tmpl, "*", name, template, &ier );
|
|
sprintf (diagMessage, "%s %s %s %s", "changing template ", A2DtTable.info[ii].template, " to ", template);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
}
|
|
else {
|
|
strcpy( template, A2DtTable.info[ii].template );
|
|
sprintf (diagMessage, "%s %s ", "setting template to ", template);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if ( strcmp( A2DtTable.info[ii].alias, alias ) == 0 ) {
|
|
sprintf (diagMessage, "%s %d %s %s %s %s %s %s", "ii=", ii, "alias=", alias,
|
|
"path=", A2DtTable.info[ii].path,
|
|
"template=", A2DtTable.info[ii].template );
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
strcpy( template, A2DtTable.info[ii].template );
|
|
sprintf (diagMessage, "%s %s ", "setting template to ", template);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
* For the non-A2DB data return
|
|
*/
|
|
}
|
|
else {
|
|
*iret = -1;
|
|
sprintf (diagMessage, "%s %d", "returning iret= ",*iret);
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
}
|
|
|
|
sprintf (diagMessage, "%s %s %s %s", "returning path=", path, "template=", template );
|
|
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
|
|
|
|
return;
|
|
|
|
}
|