Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:01

0001 #ifndef FWCore_Reflection_DictionaryTools_h
0002 #define FWCore_Reflection_DictionaryTools_h
0003 
0004 /*----------------------------------------------------------------------
0005 
0006 DictionaryTools provides a small number of dictionary based tools, used in
0007 the CMS event model.
0008 
0009 ----------------------------------------------------------------------*/
0010 
0011 #include <set>
0012 #include <string>
0013 #include <vector>
0014 
0015 class TClass;
0016 
0017 namespace edm {
0018 
0019   class Exception;
0020   class TypeID;
0021   class TypeWithDict;
0022 
0023   bool checkDictionary(std::vector<std::string>& missingDictionaries, TypeID const& typeID);
0024 
0025   bool checkDictionaryOfWrappedType(std::vector<std::string>& missingDictionaries, TypeID const& unwrappedTypeID);
0026 
0027   bool checkDictionaryOfWrappedType(std::vector<std::string>& missingDictionaries, std::string const& unwrappedName);
0028 
0029   bool checkDictionary(std::vector<std::string>& missingDictionaries,
0030                        std::string const& name,
0031                        TypeWithDict const& typeWithDict);
0032 
0033   bool checkClassDictionaries(std::vector<std::string>& missingDictionaries, TypeID const& typeID);
0034 
0035   bool checkClassDictionaries(std::vector<std::string>& missingDictionaries,
0036                               std::string const& name,
0037                               TypeWithDict const& typeWithDict);
0038 
0039   void addToMissingDictionariesException(edm::Exception& exception,
0040                                          std::vector<std::string>& missingDictionaries,
0041                                          std::string const& context);
0042 
0043   void throwMissingDictionariesException(std::vector<std::string>& missingDictionaries, std::string const& context);
0044 
0045   void throwMissingDictionariesException(std::vector<std::string>& missingDictionaries,
0046                                          std::string const& context,
0047                                          std::vector<std::string>& producedTypes);
0048 
0049   void throwMissingDictionariesException(std::vector<std::string>& missingDictionaries,
0050                                          std::string const& context,
0051                                          std::vector<std::string>& producedTypes,
0052                                          std::vector<std::string>& branchNames,
0053                                          bool fromStreamerSource = false);
0054 
0055   void throwMissingDictionariesException(std::vector<std::string>& missingDictionaries,
0056                                          std::string const& context,
0057                                          std::set<std::string>& producedTypes,
0058                                          bool consumedWithView);
0059 
0060   bool public_base_classes(std::vector<std::string>& missingDictionaries,
0061                            TypeID const& typeID,
0062                            std::vector<TypeID>& baseTypes);
0063 }  // namespace edm
0064 
0065 #endif  // FWCore_Reflection_DictionaryTools_h