Listing 3: VersionStamp and BuildConfiguration implementation highlights
// A partial listing of BuildConfig.cpp
VersionStamp::VersionStamp(const char* file,
const char* date,
const char* time,
const char* ver)
: mFileName(file), mBuildDate(date)
, mBuildTime(time), mVersion(ver)
{
BuildConfiguration::Instance().AddFile(this);
}
bool VersionStamp::operator<(const VersionStamp& rhs) const
{
return strcmp(mFileName, rhs.mFileName) < 0;
}
bool VersionStampPtrLess::operator ()(const VersionStamp* lhs,
const VersionStamp* rhs)
{
return (*lhs) < (*rhs);
}
BuildConfiguration& BuildConfiguration::Instance()
{
static std::auto_ptr<BuildConfiguration>
instance(new BuildConfiguration);
return *instance;
}
void BuildConfiguration::AddFile(const VersionStamp* fileStamp)
{
assert(fileStamp);
mConfig.insert(fileStamp);
}
End of Listing