Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

Sct Namespace Reference

This namespace contains things that might be generally useful. More...


Data Structures

class  AbstractThrowable
 A base implementation for Throwable All important information should be included in the string returned by getMessage(). More...

class  ApiServerStatusManager
class  ApplicationStartupDebugTools
class  ConfigurationException
 Thrown when an error in the configuration is found. More...

class  CorbaExceptionWrapper
 Thrown to indicate an error with an Ipc call. More...

class  CrateStore
class  DestroyingDeleter
class  Env
 This static class contains useful methods for dealing with environment variables. More...

class  Error
 Represents problems that might be more reasonably described as bugs. More...

class  Exception
 Represents genuinely exceptional events (such as resource acquisition failure). More...

class  FibreNumberConverters
class  FileException
 Thrown to indicate a file IO error. More...

class  IllegalStateError
 This error indicates that a class is not in an appropriate state for the request that was made of it. More...

class  InvalidArgumentError
 Thrown to report invalid arguments to functions. More...

class  InvariantViolatedError
 This error indicates that a class' invariants have been violated somehow. More...

class  IoException
 Thrown when an IO error has occured e.g. More...

class  IOManager
 An abstract class that represents an I/O backend. More...

class  IOManagerDummy
 Dummy IOManager provides streamers for code validation by UnitTest purposes only! More...

class  IOName
 Name an object has when being streamed to or from e.g. More...

class  IOParams
 A tag class. More...

class  IpcObjectException
 Thrown when an error publishing or withdrawing IPCObjects. More...

class  IsException
 Thrown to indicate an error from the Information Service. More...

class  IStream
 All ops below were replaced (by Serguei) by something like. More...

class  IStreamAdaptor
 Adaptor for making a Sct::IStream from a std::istream. More...

class  ISUtilities
 Utility methods for using with the information service. More...

class  LogicError
 Logic errors represent internal problems in the logic of the program. More...

class  MathsError
 Thrown when an mathametical error has occured e.g. More...

class  MultiMessageDebugStream
class  NoSuchStreamerException
 Indicates that there is no Streamer for a given className. More...

class  OStream
 Output stream interface for Sct::Streamer s. More...

class  OStreamAdaptor
 Adaptor for making a SCT::OStream from a std::ostream. More...

class  OutOfRangeError
 Thrown to show that arguement value is not in the allowed range. More...

class  RangedVector
 Class is like a vector, but checks the array bounds of the vector. More...

class  RefCountServantBase
class  ScanStatusManager
class  SctNames
 This static class exists to provide the names of SCT Online Software components. More...

class  SequenceUtils
class  Serializable
 Classes should implement this interface if they want to be serialized by the IO system. More...

class  StdExceptionWrapper
class  Streamable
 Classes should implement this interface if they want to be serialized by the IO system. More...

class  StreamCorruptedException
 Thrown to indicate that the stream is somehow not in the state the I/O code thought it ought to be in. More...

class  Streamer
 A streamer converts to and from a streamed representation of a data object. More...

class  StringStreamerClass
class  Throwable
 The base class for all of the exceptions which we throw in the SCT code. More...

class  Tokenize
class  UniqueCrateIdentifier
 No two crates within the SCT have the same UniqueCrateIdentifier. More...

class  UniqueCrateLevelIdentifierBase
 Base class for UniqueIdentifiers that live at the Crate level (i.e. More...

class  UniqueID
 This is a simple class to facilitate constructing and parsing uniqueIDs. More...

class  UniquePartitionIdentifier
 No two partitions within ATLAS have the same UniqePartitionIdentifier. More...

class  UniqueRodIdentifier
 No two rods within the SCT have the same UniqueRodIdentifier. More...

class  UniqueTimIdentifier
 No two TIMs within the SCT have the same UniqueTimIdentifier. More...

class  UnsupportedOperationError
 Indicates a method is not supported by this class. More...

class  URandom
class  VersionNotSupportedException
 Indicates an that an I/O operation failed because the version of the data was not compatible with what the software was capable of dealing with. More...

class  XmlStyleIStream
class  XmlStyleOStream

Module Parameters

Parameters of SCT modules

Author:
Alan Barr
Date:
31 March 2003


const unsigned int nLinkModule
const unsigned int nChipModule
const unsigned int nChannelModule

Typedefs

typedef unsigned int PartitionIdentifier
 No two partitions within the SCT have the same PartitionIdentifier.

typedef unsigned int CrateIdentifier
 No two crates within a given partition have the same CrateIdentifier.

typedef unsigned int RodIdentifier
 No two rods within a given crate have the same RodIdentifier.

typedef UniquePartitionIdentifier UPID
typedef UniqueCrateIdentifier UCID
typedef UniqueRodIdentifier URID
typedef UniqueTimIdentifier UTID
typedef IoException IoError
 To maintain backward compatibility.

typedef map< string, shared_ptr<
Streamer > > 
StreamerMap
typedef InvalidArgumentError InvalidArgument
 For backward compatibility.


Functions

void BugReport (const std::string &bugCode, const std::string &block, const std::string &text, const unsigned long sleepMicroseconds=0)
size_t substituteVariable (string &str, size_t startPos)
void Terminate () throw ()
 This function is called in case of exception violations It should NOT be called by the user.

void Unexpected () throw ()
 This function is called in case of uncaught exceptions It should NOT be called by the user.

void setExceptionHandlers (const char *name) throw ()
 Main programs should call this to the Sct defaults.

template<typename T> T min (T a, T b)
template<typename T> void getArray (istream &stream, T *p, size_t size, size_t actualSize)
template<typename T> void getArrayCreate (istream &stream, T **p, size_t &size)
template<typename T> void getArrayNoCreate (istream &stream, T *p, size_t size)
void getArray (istream &istr, char *p, size_t size, size_t actualSize)
void getArray (istream &istr, unsigned char *p, size_t size, size_t actualSize)
template<class TT> TT::_ptr_type Lookup (const std::string &name, const IPCPartition &p)
 There is a lot of rubbish in this file, but the main idea is as follows:.

Sct::Corba::UPID copyUPIDToCorba (const Sct::UPID &upid)
 Contains a set of functions useful for converting between normal objects and OMNI objects.

Sct::Corba::UCID copyUCIDToCorba (const Sct::UCID &ucid)
Sct::Corba::URID copyURIDToCorba (const Sct::URID &urid)
Sct::UPID copyCorbaToUPID (const Sct::Corba::UPID &upid)
Sct::UCID copyCorbaToUCID (const Sct::Corba::UCID &ucid)
Sct::URID copyCorbaToURID (const Sct::Corba::URID &urid)
char * copyStringToCorba (const std::string &str)
template<typename CorbaSequence, typename ListMember> CorbaSequence * copyListToCorba (const std::list< ListMember > &thisList)
template<typename CorbaSequence> CorbaSequence * copyStringListToCorba (const std::list< std::string > &thisList)
template<typename CorbaSequence> CorbaSequence * copyStringSetToCorba (const std::set< std::string > &thisSet)
template<typename CorbaSequence, typename ListMember> std::list< ListMember > copyCorbaToList (const CorbaSequence *const thisSeq)
template<typename CorbaSequence, typename List> List copyCorbaToStdCollection (const CorbaSequence *thisSeq)
template<typename CorbaSequence, typename ArrayMember> CorbaSequence * copyArrayToCorba (ArrayMember *const array, const unsigned long length)
template<typename CorbaSequence, typename ArrayMember> CorbaSequence * copyVectorToCorba (const std::vector< ArrayMember > &array)
template<typename CorbaMatrix, typename CorbaSequence, typename ArrayMember> CorbaMatrix * copyVectorVectorToCorba (const std::vector< std::vector< ArrayMember > > &matrix)
template<typename CorbaBlock, typename ArrayMember> ArrayMember * copyCorbaToArray (const CorbaBlock &thisSeq, ArrayMember *const array)
unsigned char roundToUChar (float value)
unsigned char roundToUChar (double value)
void dummyMRSCallBack (MRSCallbackMsg *mc)
const char * getVersionString ()
const char * getVersionModifier ()
unsigned int getMajorVersion ()
unsigned int getMinorVersion ()
double getVersion ()
std::string invalidate (const char *val, int length)
std::string validate (const char *val, int length)

Variables

const char * process_name
const StringStreamerClass StringStreamer
const char * BuildSystem
const char * BuildHost
const char * BuildDate
const char * CmtConfig
const char * TdaqVersion
const char * RootVersion
const char * GccVersion
const char * RodDaqVersion
const char * VersionString
 The string that contains the version info. Should be in form SctRodDaq_x_xx_sometext.

const char * VersionModifier
 the bit at the end

const double Version
 x_xx => x.xx

const unsigned int MajorVersion
 The major version.

const unsigned int MinorVersion
 The minor version (decimal part of version * 100).

std::string escape []
std::string entity []


Detailed Description

This namespace contains things that might be generally useful.

Author:
Christopher Lester Example
boost::shared_ptr<SctApiServer> api = ::Sct::DestroyingDeleter<SctApiServer>::shared_ptr(new SctApiServer(*ob, Sct_SctApi::SctApiIPC::instanceName));

which is the same as

boost::shared_ptr<SctApiServer> api = ::Sct::DestroyingDeleter<SctApiServer>::shared_ptr(new SctApiServer( CONSTRUCTOR_ARGS ));

where I have suppressed the irrelevant info.


Typedef Documentation

typedef unsigned int Sct::CrateIdentifier
 

No two crates within a given partition have the same CrateIdentifier.

Definition at line 15 of file Addressing.h.

Referenced by Sct::UniqueCrateLevelIdentifierBase::crate().

typedef InvalidArgumentError Sct::InvalidArgument
 

For backward compatibility.

Definition at line 65 of file LogicErrors.h.

Referenced by SctFitter::FitAlgorithmMap::getAlgorithm(), SctAnalysis::AnalysisAlgorithmMap::getAlgorithm(), Sct::Archive::IONameArchiveFile::IONameArchiveFile(), and Sct::Archive::IONameArchiveFile::parse().

typedef IoException Sct::IoError
 

To maintain backward compatibility.

Definition at line 37 of file IoExceptions.h.

Referenced by Sct::Archive::IONameArchiveFile::expandWildcards(), SctData::IO::TxCurrentTestResultStreamer_v1::read(), SctData::IO::TrimRangeTestResultStreamer_v2::read(), SctData::IO::TrimRangeTestResultStreamer_v1::read(), SctData::IO::TimeWalkTestResultStreamer_v1::read(), SctData::IO::TH1DStreamer_v1::read(), SctData::IO::TGraphStreamer_v1::read(), SctData::IO::TF1Streamer_v1::read(), SctData::IO::TestResultStreamer_v4::read(), SctData::IO::TestResultStreamer_v3::read(), SctData::IO::TestResultStreamer_v1::read(), SctCalibrationController::TestDataStreamer_v2::read(), SctCalibrationController::TestDataStreamer_v1::read(), SctData::IO::StrobeDelayTestResultStreamer_v2::read(), SctData::IO::StrobeDelayTestResultStreamer_v1::read(), SctData::IO::SingleVariableTestResultStreamer_v2::read(), SctData::IO::SingleVariableTestResultStreamer_v1::read(), SctCalibrationController::SequenceDataStreamer_v1::read(), SctData::ScanResultWriter::read(), SctData::IO::ScanResultStreamer_v1::read(), SctData::IO::ScanPointsStreamer_v1::read(), SctData::IO::RxThresholdTestResultStreamer_v1::read(), SctData::IO::RxThresholdBasedOnConfigRegisterTestResultStreamer_v1::read(), SctData::IO::RxDelayTestResultStreamer_v1::read(), SctData::IO::ResultHeaderStreamer_v1::read(), SctData::IO::PipelineTestResultStreamer_v1::read(), SctData::IO::OpeStreamer_v1::read(), SctData::IO::NPtGainTestResultStreamer_v2::read(), SctData::IO::NPtGainTestResultStreamer_v1::read(), SctData::IO::NoiseOccupancyTestResultStreamer_v1::read(), SctData::IO::NMaskTestResultStreamer_v1::read(), SctData::IO::ModuleConfigurationStreamer_v2::read(), SctData::IO::ModuleConfigurationStreamer_v1::read(), SctData::IO::MarkSpaceRatioTestResultStreamer_v1::read(), Sct::IS::IOManagerIS::read(), SctData::IO::FullBypassTestResultStreamer_v1::read(), SctData::IO::FitScanResultStreamer_v1::read(), SctData::IO::FitObjectStreamer_v1::read(), SctData::IO::DoubleTriggerNoiseTestResultStreamer_v3::read(), SctData::IO::DoubleTriggerNoiseTestResultStreamer_v2::read(), SctData::IO::DefectListStreamer_v2::read(), SctData::IO::DefectListStreamer_v1::read(), SctData::IO::ChipCounterTestResultStreamer_v1::read(), SctData::IO::ChipConfigurationStreamer_v1::read(), SctData::IO::TxCurrentTestResultStreamer_v1::write(), SctData::TestSummary::TxCurrentSummaryWriter::write(), SctData::IO::TrimRangeTestResultStreamer_v2::write(), SctData::IO::TrimRangeTestResultStreamer_v1::write(), SctData::TestSummary::TrimRangeSummaryWriter::write(), SctData::IO::TimeWalkTestResultStreamer_v1::write(), SctData::TestSummary::TimeWalkSummaryWriter::write(), SctData::IO::TH1DStreamer_v1::write(), SctData::IO::TGraphStreamer_v1::write(), SctData::IO::TF1Streamer_v1::write(), SctData::IO::TestResultStreamer_v4::write(), SctData::IO::TestResultStreamer_v3::write(), SctData::IO::TestResultStreamer_v1::write(), SctCalibrationController::TestDataStreamer_v2::write(), SctCalibrationController::TestDataStreamer_v1::write(), SctData::TestSummary::SummaryWriter::write(), SctData::TestSummary::SummaryManager::write(), SctData::IO::StrobeDelayTestResultStreamer_v2::write(), SctData::IO::StrobeDelayTestResultStreamer_v1::write(), SctData::TestSummary::StrobeDelaySummaryWriter::write(), SctData::IO::SingleVariableTestResultStreamer_v2::write(), SctData::IO::SingleVariableTestResultStreamer_v1::write(), SctCalibrationController::SequenceDataStreamer_v1::write(), SctData::ScanResultWriter::write(), SctData::IO::ScanResultStreamer_v1::write(), SctData::IO::ScanPointsStreamer_v1::write(), SctData::IO::RxThresholdTestResultStreamer_v1::write(), SctData::TestSummary::RxThresholdSummaryWriter::write(), SctData::IO::RxThresholdBasedOnConfigRegisterTestResultStreamer_v1::write(), SctData::TestSummary::RxThresholdBasedOnConfigRegisterSummaryWriter::write(), SctData::IO::RxDelayTestResultStreamer_v1::write(), SctData::TestSummary::RxDelaySummaryWriter::write(), SctData::IO::ResultHeaderStreamer_v1::write(), SctData::IO::PipelineTestResultStreamer_v1::write(), SctData::TestSummary::PipelineSummaryWriter::write(), SctData::IO::OpeStreamer_v1::write(), SctData::IO::NPtGainTestResultStreamer_v2::write(), SctData::IO::NPtGainTestResultStreamer_v1::write(), SctData::TestSummary::NPtGainSummaryWriter::write(), SctData::IO::NoiseOccupancyTestResultStreamer_v1::write(), SctData::TestSummary::NoiseOccupancySummaryWriter::write(), SctData::IO::NMaskTestResultStreamer_v1::write(), SctData::TestSummary::NMaskSummaryWriter::write(), SctData::IO::ModuleConfigurationStreamer_v2::write(), SctData::IO::ModuleConfigurationStreamer_v1::write(), SctData::IO::MarkSpaceRatioTestResultStreamer_v1::write(), SctData::TestSummary::MarkSpaceRatioSummaryWriter::write(), Sct::IS::IOManagerIS::write(), SctData::IO::FullBypassTestResultStreamer_v1::write(), SctData::TestSummary::FullBypassSummaryWriter::write(), SctData::IO::FitScanResultStreamer_v1::write(), SctData::IO::FitObjectStreamer_v1::write(), SctData::IO::DoubleTriggerNoiseTestResultStreamer_v3::write(), SctData::IO::DoubleTriggerNoiseTestResultStreamer_v2::write(), SctData::TestSummary::DoubleTriggerNoiseSummaryWriter::write(), SctData::IO::DefectListStreamer_v2::write(), SctData::IO::DefectListStreamer_v1::write(), SctData::IO::ChipCounterTestResultStreamer_v1::write(), SctData::TestSummary::ChipCounterSummaryWriter::write(), and SctData::IO::ChipConfigurationStreamer_v1::write().

typedef unsigned int Sct::PartitionIdentifier
 

No two partitions within the SCT have the same PartitionIdentifier.

Definition at line 12 of file Addressing.h.

Referenced by Sct::UniqueRodIdentifier::partition(), and Sct::UniqueCrateLevelIdentifierBase::partition().

typedef unsigned int Sct::RodIdentifier
 

No two rods within a given crate have the same RodIdentifier.

Definition at line 18 of file Addressing.h.

Referenced by Sct::UniqueRodIdentifier::crate(), and Sct::UniqueRodIdentifier::rod().


Function Documentation

Sct::Corba::UPID copyUPIDToCorba const Sct::UPID upid  )  [inline]
 

Contains a set of functions useful for converting between normal objects and OMNI objects.

Author:
Matthew Palmer, Bruce Gallop based on ILU version Modified to OMNI by Alan Barr and Chris Lester

Definition at line 23 of file OmniMarshalling.h.

References Sct::UniquePartitionIdentifier::partition().

Here is the call graph for this function:

template<class TT>
TT::_ptr_type Lookup const std::string &  name,
const IPCPartition &  p
 

There is a lot of rubbish in this file, but the main idea is as follows:.

Sergei's IPCPartition::lookup<> method is very lazy. It returns IPC references from a cache under most circumstances, and only does THEY JOB IT OUGT TO DO SOMETIMES (i.e. if the user were to request it to!) when it realises that its cache is invalid, which very annoyingly only discovers when you try to USE one of the bum references it gives you.

What we really want is a lookup method that gives you the OPTION of using or not using the cache. The purpose of this particular file is to provide an alternative Sct::Lookup method that wraps Sergei's one, but which does some tests on the returned IPC reference first.

In principle, the idea is that it returns a reference THAT IS VALID at the time of the call (though of course it might become invalid only seconds later if you are unlucky).

If a valid reference to the object you are asking for can't be found, then this method returns TT::_nil().

------------ Stop reading if you are not a developer ---- Experimentally it is noted that if the asked for object had died and been reborn, then the following algorithm executes the while loop 3 times while getting rid of Sergei's strange policy: ntries=0: NIL=true, NXT=true. ntries=1; NIL=false, NXT=true. ntires=2: NIL=false, NXT=false. (then the algorithm returns) Note that the only exceptions that are (believed to be caught) are those commented "/// KNOWN TO BE CAUGHT" below.

KNOWN TO BE CAUGHT

NOT KNOWN TO BE CAUGHT

Definition at line 58 of file Lookup.h.

void Sct::Terminate  )  throw ()
 

This function is called in case of exception violations It should NOT be called by the user.

It sends a message to MRS and calls terminate();

Definition at line 135 of file Exception.cpp.

References Sct::AbstractThrowable::sendToMrs(), and Sct::Throwable::sendToMrs().

Here is the call graph for this function:

void Sct::Unexpected  )  throw ()
 

This function is called in case of uncaught exceptions It should NOT be called by the user.

It sends the last created exception to MRS, and calls abort();

Definition at line 174 of file Exception.cpp.

References Sct::AbstractThrowable::sendToMrs().

Here is the call graph for this function:


Variable Documentation

const unsigned int Sct::MajorVersion
 

The major version.

Definition at line 61 of file Version.cpp.

const unsigned int Sct::MinorVersion
 

The minor version (decimal part of version * 100).

Definition at line 62 of file Version.cpp.

const double Sct::Version
 

x_xx => x.xx

Definition at line 60 of file Version.cpp.

const char * Sct::VersionModifier
 

the bit at the end

Definition at line 59 of file Version.cpp.

const char * Sct::VersionString
 

The string that contains the version info. Should be in form SctRodDaq_x_xx_sometext.

Definition at line 58 of file Version.cpp.


Generated on Thu Dec 15 21:15:23 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5