+ return true;
+ }
+ return false;
+}
+
+/**
+ * \brief Replace in the Header a DocEntry by the new DocEntry. The last
+ * DocEntry is kept in archieve
+ * @param group Group number of the Entry
+ * @param elem Element number of the Entry
+ * @return FALSE when an other DocEntry is already archived with the same
+ * generalized key, TRUE otherwise
+ */
+bool DocEntryArchive::Push(uint16_t group,uint16_t elem)
+{
+ std::string key = DictEntry::TranslateToKey(group,elem);
+
+ if( Archive.find(key)==Archive.end() )
+ {
+ // Save the old DocEntry if any
+ TagDocEntryHT::iterator it = HeaderHT.find(key);
+ if( it!=HeaderHT.end() )
+ {
+ Archive[key] = it->second;
+ HeaderHT.erase(it);
+ }
+
+ return true;