Skip to content

Commit a3294cb

Browse files
stakhovvgouriano
authored andcommitted
CEUtilsUpdater: Improvements to CitMatch(); JIRA:RW-2355
git-svn-id: https://anonsvn.ncbi.nlm.nih.gov/repos/v1/trunk/c++@103247 78c7ea69-d796-4a43-9a09-de51944f1b03
1 parent ef00fc7 commit a3294cb

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

src/objtools/edit/eutils_updater.cpp

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,12 @@ void SCitMatch::FillFromArticle(const CCit_art& A)
207207
}
208208
}
209209

210-
class CECitMatch_Request : public CESearch_Request
210+
namespace
211+
{
212+
213+
struct CSearch_Request : CESearch_Request
211214
{
212-
public:
213-
CECitMatch_Request(CRef<CEUtils_ConnContext>& ctx) :
215+
CSearch_Request(CRef<CEUtils_ConnContext>& ctx) :
214216
CESearch_Request("pubmed", ctx)
215217
{
216218
}
@@ -348,6 +350,7 @@ class CECitMatch_Request : public CESearch_Request
348350
}
349351
};
350352

353+
}
351354

352355
CEUtilsUpdater::CEUtilsUpdater(ENormalize norm) :
353356
m_Ctx(new CEUtils_ConnContext), m_Norm(norm)
@@ -370,14 +373,15 @@ TEntrezId CEUtilsUpdater::CitMatch(const CPub& pub, EPubmedError* perr)
370373

371374
TEntrezId CEUtilsUpdater::CitMatch(const SCitMatch& cm, EPubmedError* perr)
372375
{
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);
377381
EPubmedError err = EPubmedError::citation_not_found;
378382

379383
// clang-format off
380-
constexpr array<eCitMatchFlags, 6> ruleset_single = {
384+
static constexpr array<eCitMatchFlags, 6> ruleset_single = {
381385
e_J | e_V | e_P | e_A | e_I,
382386
e_J | e_V | e_P | e_A,
383387
e_J | e_V | e_P,
@@ -386,7 +390,7 @@ TEntrezId CEUtilsUpdater::CitMatch(const SCitMatch& cm, EPubmedError* perr)
386390
e_A | e_T,
387391
};
388392

389-
constexpr array<eCitMatchFlags, 6> ruleset_in_press = {
393+
static constexpr array<eCitMatchFlags, 6> ruleset_in_press = {
390394
e_J | e_V | e_P | e_Y | e_A,
391395
e_J | e_V | e_P | e_Y,
392396
e_J | e_V | e_Y | e_A | e_T,
@@ -397,16 +401,15 @@ TEntrezId CEUtilsUpdater::CitMatch(const SCitMatch& cm, EPubmedError* perr)
397401
// clang-format on
398402

399403
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;
401405

402406
for (unsigned i = 0; i < n; ++i) {
403407
eCitMatchFlags r = ruleset[i];
404408

405409
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);
410413
if (pmid != ZERO_ENTREZ_ID) {
411414
return pmid;
412415
}

0 commit comments

Comments
 (0)