![]() |
![]() |
00001 #ifndef ParameterSet_VPSetNode_h 00002 #define ParameterSet_VPSetNode_h 00003 00004 #include "FWCore/ParameterSet/interface/CompositeNode.h" 00005 00006 namespace edm { 00007 namespace pset { 00008 00009 /* 00010 ----------------------------------------- 00011 VPSets hold: ParameterSet nodes or ParameterSet names/IDs stored in Entries 00012 */ 00013 00014 class VPSetNode : public CompositeNode 00015 { 00016 public: 00017 VPSetNode(const std::string& typ, 00018 const std::string& name, 00019 NodePtrListPtr value, 00020 bool untracked, 00021 int line=-1); 00022 virtual Node * clone() const { return new VPSetNode(*this);} 00023 virtual std::string type() const; 00024 virtual bool isTracked() const {return tracked_;} 00025 virtual void print(std::ostream& ost, PrintOptions options) const; 00026 00027 virtual void accept(Visitor& v) const; 00028 00031 virtual void resolveUsingNodes(const NodeMap & blocks, bool strict); 00032 00035 virtual void insertInto(ProcessDesc & procDesc) const; 00038 virtual void insertInto(edm::ParameterSet & pset) const; 00040 virtual edm::Entry makeEntry() const; 00041 virtual bool isReplaceable() const {return true;} 00042 virtual void replaceWith(const ReplaceNode * replaceNode); 00043 void append(NodePtr p); 00044 00045 private: 00046 std::string type_; 00047 bool tracked_; 00048 }; 00049 00050 } 00051 } 00052 00053 #endif 00054