00001
00002 #ifndef TRIGNAVSTRUCTURE_BASEHOLDER_H
00003 #define TRIGNAVSTRUCTURE_BASEHOLDER_H
00004 #include <string>
00005 #include <vector>
00006 #include <TrigNavStructure/Types.h>
00007
00008 namespace HLT {
00009 class BaseHolder {
00010 public:
00011 virtual ~BaseHolder();
00012 virtual const std::string& label() const = 0;
00013 virtual class_id_type typeClid() const = 0;
00014 virtual sub_index_type subTypeIndex() const = 0;
00015
00016
00017 static bool enquireSerialized(std::vector<uint32_t>::const_iterator& fromHere,
00018 const std::vector<uint32_t>::const_iterator& end,
00019 class_id_type& c, std::string& label,
00020 sub_index_type& subtypeIndex );
00021
00022 virtual bool serialize(std::vector<uint32_t>& data) const;
00023
00024 };
00025 }
00026
00027 #endif