@@ -207,10 +207,12 @@ void SCitMatch::FillFromArticle(const CCit_art& A)
207
207
}
208
208
}
209
209
210
- class CECitMatch_Request : public CESearch_Request
210
+ namespace
211
+ {
212
+
213
+ struct CSearch_Request : CESearch_Request
211
214
{
212
- public:
213
- CECitMatch_Request (CRef<CEUtils_ConnContext>& ctx) :
215
+ CSearch_Request (CRef<CEUtils_ConnContext>& ctx) :
214
216
CESearch_Request (" pubmed" , ctx)
215
217
{
216
218
}
@@ -348,6 +350,7 @@ class CECitMatch_Request : public CESearch_Request
348
350
}
349
351
};
350
352
353
+ }
351
354
352
355
CEUtilsUpdater::CEUtilsUpdater (ENormalize norm) :
353
356
m_Ctx(new CEUtils_ConnContext), m_Norm(norm)
@@ -370,14 +373,15 @@ TEntrezId CEUtilsUpdater::CitMatch(const CPub& pub, EPubmedError* perr)
370
373
371
374
TEntrezId CEUtilsUpdater::CitMatch (const SCitMatch& cm, EPubmedError* perr)
372
375
{
373
- unique_ptr<CECitMatch_Request> req (new CECitMatch_Request (m_Ctx));
374
- req->SetField (" title" );
375
- req->SetRetMax (2 );
376
- req->SetUseHistory (false );
376
+ CSearch_Request req (m_Ctx);
377
+ req.SetField (" title" );
378
+ req.SetRetMax (2 );
379
+ req.SetUseHistory (false );
380
+ req.SetRetType (CESearch_Request::eRetType_uilist);
377
381
EPubmedError err = EPubmedError::citation_not_found;
378
382
379
383
// clang-format off
380
- constexpr array<eCitMatchFlags, 6 > ruleset_single = {
384
+ static constexpr array<eCitMatchFlags, 6 > ruleset_single = {
381
385
e_J | e_V | e_P | e_A | e_I,
382
386
e_J | e_V | e_P | e_A,
383
387
e_J | e_V | e_P,
@@ -386,7 +390,7 @@ TEntrezId CEUtilsUpdater::CitMatch(const SCitMatch& cm, EPubmedError* perr)
386
390
e_A | e_T,
387
391
};
388
392
389
- constexpr array<eCitMatchFlags, 6 > ruleset_in_press = {
393
+ static constexpr array<eCitMatchFlags, 6 > ruleset_in_press = {
390
394
e_J | e_V | e_P | e_Y | e_A,
391
395
e_J | e_V | e_P | e_Y,
392
396
e_J | e_V | e_Y | e_A | e_T,
@@ -397,16 +401,15 @@ TEntrezId CEUtilsUpdater::CitMatch(const SCitMatch& cm, EPubmedError* perr)
397
401
// clang-format on
398
402
399
403
const auto & ruleset = cm.InPress ? ruleset_in_press : ruleset_single;
400
- const unsigned n = cm.Option1 ? 6 : 5 ;
404
+ const unsigned n = cm.Option1 ? 6 : 5 ;
401
405
402
406
for (unsigned i = 0 ; i < n; ++i) {
403
407
eCitMatchFlags r = ruleset[i];
404
408
405
409
string term;
406
- if (CECitMatch_Request::BuildSearchTerm (cm, r, term)) {
407
- req->SetArgument (" term" , term);
408
- req->SetRetType (CESearch_Request::eRetType_uilist);
409
- TEntrezId pmid = req->GetResponse (err);
410
+ if (CSearch_Request::BuildSearchTerm (cm, r, term)) {
411
+ req.SetTerm (term);
412
+ TEntrezId pmid = req.GetResponse (err);
410
413
if (pmid != ZERO_ENTREZ_ID) {
411
414
return pmid;
412
415
}
0 commit comments