Validator: add simple Result caching
This commit is contained in:
committed by
mdavidsaver
parent
e0d422ffd9
commit
31050952b6
@@ -148,14 +148,20 @@ bool NTURI::is_a(PVStructurePtr const & pvStructure)
|
||||
return is_a(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
static epicsThreadOnceId cachedResultOnceId = EPICS_THREAD_ONCE_INIT;
|
||||
static epicsThreadPrivateId cachedResultId;
|
||||
|
||||
bool NTURI::isCompatible(StructureConstPtr const & structure)
|
||||
{
|
||||
if (!structure)
|
||||
return false;
|
||||
|
||||
Result result(structure);
|
||||
Result& result = Result::fromCache(&cachedResultOnceId, &cachedResultId);
|
||||
|
||||
result
|
||||
if (result.wraps(structure))
|
||||
return result.valid();
|
||||
|
||||
result.reset(structure)
|
||||
.is<Structure>()
|
||||
.has<Scalar>("scheme")
|
||||
.has<Scalar>("path")
|
||||
|
||||
Reference in New Issue
Block a user