45
45
* RCS Modification History:
46
46
* $Log: txcdproc.c,v $
47
* Revision 1.16 2003/11/04 17:13:58 soussov
48
* adds NetFini() call if service can not start properly
50
* Revision 1.15 2003/06/12 16:46:25 soussov
51
* changes severity for AsnRead failures
53
* Revision 1.14 2003/03/06 16:30:32 kans
54
* tdp->org needed a cast to (OrgRefPtr) due to Mac compiler complaint
56
* Revision 1.13 2003/03/05 21:32:00 soussov
57
* new lookup procedure
47
59
* Revision 1.12 2001/09/28 15:53:15 soussov
48
60
* tax1e_maxTaxId() added
127
139
static void report_service_error(CharPtr proc_name, Taxon1RespPtr taxbp)
129
141
if(taxbp == NULL) {
130
ErrPostEx(SEV_ERROR, 0, 0, "%s got NULL responce from service");
142
ErrPostEx(SEV_ERROR, 0, 0, "%s got NULL responce from service", proc_name);
132
144
else if(taxbp->choice == Taxon1Resp_error) {
133
145
Taxon1ErrorPtr tep= taxbp->data.ptrvalue;
158
170
if ((taxbp == NULL) || ErrFetch(&err))
160
ErrPost (CTX_UNKNOWN, 1, "Null message read from server");
172
ErrPostEx (SEV_WARNING, 1, 1, "Null message read from server");
162
174
ErrSetOpts(erract, 0);
1195
1208
retval = myNetInit();
1198
ErrPost(CTX_UNKNOWN, 1, "Unable to re-contact dispatcher");
1211
ErrPostEx(SEV_ERROR, 1,2, "Unable to re-contact dispatcher");
1199
1212
if (showErrs) {
1209
sprintf (buf, "Unable to re-establish %s service", svcName);
1210
ErrPost(CTX_UNKNOWN, 1, buf);
1222
/*sprintf (buf, "Unable to re-establish %s service", svcName);*/
1223
ErrPostEx(SEV_ERROR, 1, 3, "Unable to re-establish %s service", svcName);
1211
1224
if (showErrs) {
1470
static OrgRefPtr s_findbyorg(OrgRefPtr orgRef)
1473
Taxon1RespPtr taxbp;
1476
if((taxrp= ValNodeNew(NULL)) == NULL) return 0;
1477
taxrp->choice= Taxon1Req_lookup;
1478
taxrp->data.ptrvalue= orgRef;
1479
Taxon1ReqAsnWrite(taxrp, asnout, NULL);
1481
taxrp->data.ptrvalue= NULL;
1482
Taxon1ReqFree(taxrp);
1484
if((taxbp= NetTaxArchReadAsn()) == NULL) return 0;
1486
if(taxbp->choice != Taxon1Resp_lookup) {
1487
report_service_error("txc_getTaxIdByOrgRef", taxbp);
1488
Taxon1RespFree(taxbp);
1492
tdp= taxbp->data.ptrvalue;
1493
orgRef= (OrgRefPtr) tdp->org;
1495
Taxon1RespFree(taxbp);
1500
Int4 txc_findByOrg(OrgRefPtr inp_orgRef, OrgModPtr* hitName)
1505
OrgRefPtr orp= NULL;
1508
if(tax_track) tax_time1= clock();
1509
for (i= TAXARCH_SERV_RETRIES; i >= 0; --i) {
1510
ErrGetOpts(&erract, NULL);
1511
ErrSetOpts(ERR_IGNORE, 0);
1514
orp = s_findbyorg(inp_orgRef);
1516
ErrSetOpts(erract, 0);
1517
if (!ErrFetch(&err)) break; /* success */
1519
if(!ReestablishNetTaxArch()) break;
1523
double diff= (double)(clock() - tax_time1)/CLOCKS_PER_SEC;
1524
printf("tax1_getTaxIdByOrgRef() %f\n", diff);
1527
if(orp && orp->db) {
1528
ValNodePtr vnp= orp->db;
1529
DbtagPtr dbtag= vnp->data.ptrvalue;
1530
ObjectIdPtr object_id= dbtag->tag;
1531
tax_id= object_id->id;
1535
*hitName= orp->orgname->mod;
1536
orp->orgname->mod= NULL;
1538
else *hitName= NULL;
1542
if(orp) OrgRefFree(orp);