00001 #include "DataFormats/Provenance/interface/BranchEntryDescription.h"
00002 #include "DataFormats/Provenance/interface/ModuleDescriptionRegistry.h"
00003 #include "DataFormats/Provenance/interface/EntryDescriptionRegistry.h"
00004 #include "FWCore/Utilities/interface/Algorithms.h"
00005 #include <ostream>
00006
00007
00008
00009
00010
00011 namespace edm {
00012 BranchEntryDescription::BranchEntryDescription() :
00013 productID_(),
00014 parents_(),
00015 cid_(),
00016 status_(Success),
00017 isPresent_(false),
00018 moduleDescriptionID_()
00019 { }
00020
00021 BranchEntryDescription::BranchEntryDescription(ProductID const& pid,
00022 BranchEntryDescription::CreatorStatus const& status) :
00023 productID_(pid),
00024 parents_(),
00025 cid_(),
00026 status_(status),
00027 isPresent_(status == Success),
00028 moduleDescriptionID_()
00029 { }
00030
00031 void
00032 BranchEntryDescription::write(std::ostream& os) const {
00033
00034
00035 os << "Product ID = " << productID_ << '\n';
00036 os << "CreatorStatus = " << creatorStatus() << '\n';
00037 os << "Module Description ID = " << moduleDescriptionID() << '\n';
00038 os << "Is Present = " << isPresent() << std::endl;
00039 }
00040
00041 bool
00042 operator==(BranchEntryDescription const& a, BranchEntryDescription const& b) {
00043 return
00044 a.productID() == b.productID()
00045 && a.creatorStatus() == b.creatorStatus()
00046 && a.parents() == b.parents()
00047 && a.moduleDescriptionID() == b.moduleDescriptionID();
00048 }
00049
00050 std::auto_ptr<EntryDescription>
00051 BranchEntryDescription::convertToEntryDescription() const {
00052 std::auto_ptr<EntryDescription> entryDescription(new EntryDescription);
00053 entryDescription->parents() = parents();
00054 entryDescription->moduleDescriptionID() = moduleDescriptionID();
00055 return entryDescription;
00056 }
00057 }