- * \brief Create a DictEntry which will be referenced in no dictionary
- * @param group Group number of the Entry
- * @param elem Element number of the Entry
- * @param vr Value Representation of the Entry
- * @param vm Value Multiplicity of the Entry
- * @param name English name of the Entry
- * @return virtual entry
- */
-DictEntry *DictSet::NewVirtualDictEntry( uint16_t group,
- uint16_t elem,
- const VRKey &vr,
- const TagName &vm,
- const TagName &name)
-{
- DictEntry *entry;
-
- // Let's follow 'Purify' advice
- //
- // const std::string tag = DictEntry::TranslateToKey(group,elem)
- // + "#" + vr + "#" + vm + "#" + name;
-#if FASTTAGKEY && 0
- // FIXME
- TagKey tag;
- tag.tab[0] = group;
- tag.tab[1] = elem;
-#else
- char res[10];
- sprintf(res,"%04x|%04x", group, elem);
- ExtendedTagKey tag = res;
- tag += "#" + vr.str() + "#" + vm + "#" + name;
-#endif
-
- ExtendedTagKeyHT::iterator it;
-
- it = VirtualEntries.find(tag);
- if ( it != VirtualEntries.end() )
- {
- entry = &(it->second);
- }
- else
- {
- DictEntry ent(group, elem, vr, vm, name);
- VirtualEntries.insert(
- ExtendedTagKeyHT::value_type(tag, ent) );
- entry = &(VirtualEntries.find(tag)->second);
- }
-
- return entry;
-}
-
-/**
- * \brief Get the first entry while visiting the DictSet