~ubuntu-branches/ubuntu/edgy/ncbi-tools6/edgy

« back to all changes in this revision

Viewing changes to access/ent2api.c

  • Committer: Bazaar Package Importer
  • Author(s): Barry deFreese
  • Date: 2006-07-19 23:28:07 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20060719232807-et3cdmcjgmnyleyx
Tags: 6.1.20060507-3ubuntu1
Re-merge with Debian

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
*
30
30
* Version Creation Date:   7/29/99
31
31
*
32
 
* $Revision: 1.83 $
 
32
* $Revision: 1.92 $
33
33
*
34
34
* File Description: 
35
35
*
58
58
)
59
59
 
60
60
{
61
 
  CharPtr  str;
62
 
 
63
 
  str = (CharPtr) GetAppProperty (ENTREZ_TOOL_PROPERTY);
64
 
  MemFree (str);
65
 
 
66
 
  if (! StringHasNoText (progname)) {
67
 
    SetAppProperty (ENTREZ_TOOL_PROPERTY, StringSave (progname));
68
 
  } else {
69
 
    SetAppProperty (ENTREZ_TOOL_PROPERTY, NULL);
70
 
  }
 
61
  MemFree (GetAppProperty (ENTREZ_TOOL_PROPERTY));
 
62
  SetAppProperty (ENTREZ_TOOL_PROPERTY, (StringHasNoText (progname)
 
63
                                         ? NULL
 
64
                                         : StringSave (progname)));
71
65
}
72
66
 
73
67
static CharPtr EntrezGetProgramName (
101
95
)
102
96
 
103
97
{
104
 
  if (! StringHasNoText (service)) {
105
 
    e2_service = MemFree (e2_service);
106
 
    e2_service = StringSaveNoNull (service);
107
 
  }
 
98
  MemFree (e2_service);
 
99
  e2_service = StringSaveNoNull (service);
108
100
}
109
101
 
110
102
/* low-level connection functions */
111
103
 
 
104
static CharPtr GetDbFromE2Request (Entrez2RequestPtr e2rq)
 
105
 
 
106
{
 
107
  Entrez2BooleanExpPtr   e2be;
 
108
  Entrez2EvalBooleanPtr  e2eb;
 
109
  Entrez2HierQueryPtr    e2hq;
 
110
  Entrez2IdPtr           e2id;
 
111
  Entrez2IdListPtr       e2il;
 
112
  Entrez2TermPosPtr      e2tp;
 
113
  Entrez2TermQueryPtr    e2tq;
 
114
  ValNodePtr             vnp;
 
115
 
 
116
  if (e2rq == NULL) return NULL;
 
117
 
 
118
  vnp = e2rq->request;
 
119
  if (vnp == NULL) return NULL;
 
120
 
 
121
  switch (vnp->choice) {
 
122
    case E2Request_get_info :
 
123
      break;
 
124
    case E2Request_eval_boolean :
 
125
      e2eb = (Entrez2EvalBooleanPtr) vnp->data.ptrvalue;
 
126
      if (e2eb == NULL) return NULL;
 
127
      e2be = e2eb->query;
 
128
      if (e2be == NULL) return NULL;
 
129
      if (StringDoesHaveText (e2be->db)) return e2be->db;
 
130
      break;
 
131
    case E2Request_get_docsum :
 
132
      e2il = (Entrez2IdListPtr) vnp->data.ptrvalue;
 
133
      if (e2il == NULL) return NULL;
 
134
      if (StringDoesHaveText (e2il->db)) return e2il->db;
 
135
      break;
 
136
    case E2Request_get_term_pos :
 
137
      e2tq = (Entrez2TermQueryPtr) vnp->data.ptrvalue;
 
138
      if (e2tq == NULL) return NULL;
 
139
      if (StringDoesHaveText (e2tq->db)) return e2tq->db;
 
140
      break;
 
141
    case E2Request_get_term_list :
 
142
      e2tp = (Entrez2TermPosPtr) vnp->data.ptrvalue;
 
143
      if (e2tp == NULL) return NULL;
 
144
      if (StringDoesHaveText (e2tp->db)) return e2tp->db;
 
145
      break;
 
146
    case E2Request_get_term_hierarchy :
 
147
      e2hq = (Entrez2HierQueryPtr) vnp->data.ptrvalue;
 
148
      if (e2hq == NULL) return NULL;
 
149
      if (StringDoesHaveText (e2hq->db)) return e2hq->db;
 
150
      break;
 
151
    case E2Request_get_links :
 
152
      break;
 
153
    case E2Request_get_linked :
 
154
      break;
 
155
    case E2Request_get_link_counts :
 
156
      e2id = (Entrez2IdPtr) vnp->data.ptrvalue;
 
157
      if (e2id == NULL) return NULL;
 
158
      if (StringDoesHaveText (e2id->db)) return e2id->db;
 
159
      break;
 
160
    default :
 
161
      break;
 
162
  }
 
163
 
 
164
  return NULL;
 
165
}
 
166
 
112
167
NLM_EXTERN CONN EntrezOpenConnection (
113
 
  void
 
168
  Entrez2RequestPtr e2rq
114
169
)
115
170
 
116
171
{
117
 
  return QUERY_OpenServiceQuery
118
 
    (StringHasNoText (e2_service) ? "Entrez2" : e2_service, NULL, 30);
 
172
  Char     arg [128];
 
173
  CharPtr  db;
 
174
 
 
175
  db = GetDbFromE2Request (e2rq);
 
176
  if (StringDoesHaveText (db) && StringLen (db) < 100) {
 
177
    StrCpy (arg,    "DB=");
 
178
    StrCpy (arg + 3, db);
 
179
  } else
 
180
    *arg = '\0';
 
181
 
 
182
  return QUERY_OpenServiceQueryEx
 
183
    (StringHasNoText (e2_service) ? "Entrez2" : e2_service, NULL, 30, arg);
119
184
}
120
185
 
121
186
#ifdef OS_MAC
194
259
  logtimes = (Boolean) ((getenv ("NCBI_LOG_SYNC_QUERY_TIMES")) != NULL);
195
260
#endif
196
261
 
197
 
  conn = EntrezOpenConnection ();
 
262
  conn = EntrezOpenConnection (e2rq);
198
263
 
199
264
  if (conn == NULL) return NULL;
200
265
 
257
322
 
258
323
  if (e2rq == NULL) return FALSE;
259
324
 
260
 
  conn = EntrezOpenConnection ();
 
325
  conn = EntrezOpenConnection (e2rq);
261
326
 
262
327
  if (conn == NULL) return FALSE;
263
328
 
1240
1305
            } else if (StringICmp (last, "Title") == 0 && StringICmp (str, "Title Abbreviation") == 0) {
1241
1306
            } else if (StringICmp (last, "Library") == 0 && StringICmp (str, "Library Class") == 0) {
1242
1307
            } else if (StringICmp (last, "Sequence") == 0 && StringICmp (str, "Sequence Count") == 0) {
 
1308
            } else if (StringICmp (last, "Journal") == 0 && StringICmp (str, "Journal List Identifier") == 0) {
 
1309
            } else if (StringICmp (last, "CompoundID") == 0 && StringICmp (str, "CompoundIDActive") == 0) {
 
1310
            } else if (StringICmp (last, "MeSHDescription") == 0 && StringICmp (str, "MeSHDescriptionActive") == 0) {
 
1311
            } else if (StringICmp (last, "MeSHTerm") == 0 && StringICmp (str, "MeSHTermActive") == 0) {
 
1312
            } else if (StringICmp (last, "PharmAction") == 0 && StringICmp (str, "PharmActionActive") == 0) {
 
1313
            } else if (StringICmp (last, "SubstanceID") == 0 && StringICmp (str, "SubstanceIDActive") == 0) {
 
1314
            } else if (StringICmp (last, "Synonym") == 0 && StringICmp (str, "SynonymActive") == 0) {
1243
1315
            } else {
1244
1316
              sprintf (buf, "Menu names %s [%s] and %s [%s] may be unintended variants", last, dbnames [lastvnp->choice], str, dbnames [vnp->choice]);
1245
1317
              ValNodeCopyStr (head, 0, buf);