1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
// -*- C++ -*-
//
// InterfacedBase.cc is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
//
// This is the implementation of the non-inlined, non-templated member
// functions of the InterfacedBase class.
//
#include "InterfacedBase.h"
#include "ThePEG/Repository/BaseRepository.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
#include "ThePEG/Utilities/EnumIO.h"
#include "ThePEG/Utilities/StringUtils.h"
#include "ThePEG/Utilities/DescriptionList.h"
#include "ThePEG/Interface/Parameter.h"
#include "ThePEG/Interface/Command.h"
using namespace ThePEG;
InterfacedBase::~InterfacedBase() {}
void InterfacedBase::readSetup(istream &) {}
bool InterfacedBase::preInitialize() const {
return false;
}
void InterfacedBase::persistentOutput(PersistentOStream & os) const {
os << fullName() << isLocked << isTouched << oenum(initState) << theComment
<< objectDefaults;
}
void InterfacedBase::persistentInput(PersistentIStream & is, int) {
string n;
is >> n >> isLocked >> isTouched >> ienum(initState) >> theComment
>> objectDefaults;
name(n);
}
string InterfacedBase::addComment(string c) {
if ( theComment.length() ) theComment += "\n";
theComment += StringUtils::stripws(c);
return "";
}
AbstractClassDescription<InterfacedBase> InterfacedBase::initInterfacedBase;
void InterfacedBase::debugme() const {
cerr << name() << " ["
<< DescriptionList::find(typeid(*this))->name() << "] ";
PersistentBase::debugme();
}
void InterfacedBase::Init() {
static Parameter<InterfacedBase,string> interfaceComment
("Comment",
"A comment assigned to this object.",
&InterfacedBase::theComment, "", true, false);
interfaceComment.setHasDefault(false);
static Command<InterfacedBase> interfaceAddComment
("AddComment",
"Add a comment to this object. Will be concatenated with the exixting "
"comment.",
&InterfacedBase::addComment, true);
}
void InterfacedBase::UpdateChecker::check(tIBPtr ip, bool & touch) {
if ( !ip ) return;
ip->update();
if ( ip->touched() ) touch = true;
}
|