19namespace epics {
namespace pvData {
38 static CreateRequest::shared_pointer
create();
143 inline const std::string&
warnings()
const {
return messages; }
183 { _mapMask(baseMask, requestMask,
false); }
191 { _mapMask(requestMask, baseMask,
true); }
198 FieldBuilderPtr& builder,
bool keepids,
unsigned depth);
205 void _mapMask(
const BitSet& maskSrc,
219 Mapping() :valid(false) {}
220 Mapping(
size_t to,
bool leaf) :to(to), valid(true), leaf(leaf) {}
223 mapping_t base2req, req2base;
225 std::string messages;
227 mutable BitSet scratch;
Create pvRequest structure for Channel methods.
PVStructure::shared_pointer createRequest(std::string const &request)
static CreateRequest::shared_pointer create()
void swap(PVRequestMapper &other)
Exchange contents of two mappers. O(0) and never throws.
void compute(const PVStructure &base, const PVStructure &pvRequest, mode_t mode=Mask)
const std::string & warnings() const
After compute(), check if !warnings().empty()
const StructureConstPtr & requested() const
void maskBaseFromRequested(BitSet &baseMask, const BitSet &requestMask) const
void reset()
return to state of default ctor
void copyBaseFromRequested(PVStructure &base, BitSet &baseMask, const PVStructure &request, const BitSet &requestMask) const
void maskBaseToRequested(const BitSet &baseMask, BitSet &requestMask) const
PVRequestMapper(const PVStructure &base, const PVStructure &pvRequest, mode_t mode=Mask)
void copyBaseToRequested(const PVStructure &base, const BitSet &baseMask, PVStructure &request, BitSet &requestMask) const
PVStructurePtr buildRequested() const
const BitSet & requestedMask() const
PVStructurePtr buildBase() const
const StructureConstPtr & base() const
Data interface for a structure,.
std::tr1::shared_ptr< const Structure > StructureConstPtr
std::tr1::shared_ptr< PVStructure > PVStructurePtr
PVStructure::shared_pointer createRequest(std::string const &request)