CARMA C++
carma::util Namespace Reference

Utility classes. More...

Namespaces

 detail
 

Classes

class  AutoFreedMallocPtr
 AutoFreedMallocPtr< T > works like ::std::auto_ptr< T > except that the pointer is ::free'ed (if it is not 0) instead of delete'ed. More...
 
class  AutoXMLString
 auto cleanup class for xercesc::XMLString instances More...
 
class  Backtrace
 Class to hold a captured call stack backtrace. More...
 
class  BaseException
 Base exception class for managing carma errors. More...
 
class  ByteBuffer
 Manages a (possibly destructively) resizable buffer of raw bytes. More...
 
exception  CancelException
 Variant used specificaly for cancelling. More...
 
class  ConfigChecker
 Abstract Base class for managing configuration files. More...
 
class  ConfigureImr
 This class is responsible for taking server information retrieved from the ImrConfigHandlers class (which reads it from an XML file) and adding the servers to the IMR. More...
 
class  CorrelatorSet
 CorrelatorSet encapsulates a set of correlators to facilitate management of addition and removal of correlators to a subarray. More...
 
class  CreateStaticPolicy
 Singleton creation policy which causes instances to be created in function local static memory. More...
 
class  CreateWithNewPolicy
 Singleton creation policy which causes instances to be allocated with new (on the heap). More...
 
class  CreateWithNewUnmanagedPolicy
 Singleton creation policy which causes instances to be allocated with new (on the heap) but which provides no deletion of memory. More...
 
struct  domainStruct
 Domain structure - holds it all. More...
 
class  EOFException
 An exception indicating that the end of file marker has been reached. More...
 
class  ErrorException
 Exception class for errors The exception comes with a text string that can be printed or logged. More...
 
class  FftwAllocator
 Allocator for memory for use by FFTW. More...
 
class  FftwRealToRealPlan
 C++ wrapper of real-to-real half-complex fftw_plans. More...
 
class  FftwRealToRealPlanManager
 Facilitate the creation, storage and retrieval of FftwRealToRealPlans. More...
 
class  FileExistsException
 An exception indicating that a file you wish to create already exists. More...
 
class  FileLayout
 File layout class for CARMA logging. More...
 
class  FileNotFoundException
 An exception indicating that a requested file does not exist. More...
 
class  FileUtils
 Common file functions Additional file-related functions can be added here. More...
 
class  FrameAlignedTimer
 Timer object that fires at a fixed offset after every Nth CARMA frame time. More...
 
class  IllegalArgumentException
 an exception indicating that an object is in an illegal state for the operation that was called on or with it More...
 
class  IllegalStateException
 an exception indicating that an object is in an illegal state for the operation that was called on or with it More...
 
class  ImrConfigHandlers
 Declares SAX Handlers for parsing XML Configuration files. More...
 
class  IPQbasicTypeBuffer
 IPQs for use with basic types. More...
 
class  IPQbasicTypeFileBuffer
 carma::util::IPQfileBuffer classes for basic types. More...
 
class  IPQbuffer
 Shared memory storage mechanism for an IPQ buffer. More...
 
class  IPQbufferBase
 IPQ (InterProcessQueue) provides a generic way for information to be shared between processes or threads. More...
 
class  IPQfileBuffer
 Shared memory storage mechanism. More...
 
class  IPQfileReader
 IPQ (InterProcessQueue) provides a generic way for information to be shared between processes or threads. More...
 
class  IPQfileWriter
 IPQ (InterProcessQueue) provides a generic way for information to be shared between processes or threads. More...
 
class  IPQreader
 IPQ (InterProcessQueue) provides a generic way for information to be shared between processes or threads. More...
 
class  IPQwriter
 IPQ (InterProcessQueue) provides a generic way for information to be shared between processes or threads. More...
 
struct  KeyTabEntry
 Convenience structure to hold the key=value/type/usage/help-string information. More...
 
class  KeyValueConfigFile
 Common functions for manipulating key-value config files This class contains no state. More...
 
class  Logger
 A convenience class for returning predefined log4cpp Categories. More...
 
class  MultiShotBarrier
 MultiShotBarrier class. More...
 
class  NotFoundException
 an exception indicating that a look-up operation failed find a match to the inputs. More...
 
class  NotificationConsumer
 A base class that accepts named events from a Push supplier. More...
 
class  NTPQuery
 NTPQuery class. More...
 
class  NumberFormatException
 An exception that a numeric conversion from character or string to number failed. More...
 
struct  OADConfig
 Structure to hold oad which embeds servers. More...
 
class  Observable
 The Observable class is paired with the Observer class, with the Observable class calls its observableEvent() method to notify all registered Observers. More...
 
class  Observer
 An abstract base class for an implementation of the Observer design pattern. More...
 
class  ObserverRegistry
 All instances of the Observer class are assigned an ID and registered within this class. More...
 
class  PeriodicTimer
 Timer object that fires at a fixed rate. More...
 
class  PhaseSwitchColumnEntry
 The purpose of the PhaseSwitchColumnEntry class is to present an abstract representation of phase switch column information and the ability to perform checks and creation of such entries. More...
 
interface  PhaseSwitching
 Phaseswitching interface for passing a phaseswitching table into a subsystem. More...
 
class  PhaseSwitchingImpl
 Class to receive phase switching tables which then triggers more processing. More...
 
class  PhaseSwitchTable
 The PhaseSwitchTable class provides a generic way of reading, writing and retreiving specific PhaseSwitch information from a table that will be shared among all the various subsystems. More...
 
class  ProcessMonitorClient
 Class to continuously ping the process monitor. More...
 
class  Program
 Class for managing resources and interfaces common across all carma programs. More...
 
class  ProgramBase
 Base class for managing resources and interfaces common across all carma programs. More...
 
class  PthreadAttr
 A simple wrapper class that makes use of ::pthread_attr_t easier in a C++ world. More...
 
class  PthreadCond
 A simple wrapper class that makes use of ::pthread_cond_t easier in a C++ world. More...
 
class  PthreadCondAttr
 A simple wrapper class that makes use of ::pthread_condattr_t easier in a C++ world. More...
 
class  PthreadMutex
 A simple wrapper class that makes use of ::pthread_mutex_t easier in a C++ world. More...
 
class  PthreadMutexAttr
 A simple wrapper class that makes use of ::pthread_mutexattr_t easier in a C++ world. More...
 
class  PthreadRWLock
 A simple wrapper class that makes use of ::pthread_rwlock_t easier in a C++ world. More...
 
class  PthreadRWLockAttr
 A simple wrapper class that makes use of ::pthread_rwlockattr_t easier in a C++ world. More...
 
class  QuadraticInterpolator
 The QuadraticInterpolator class is used to perform quadrature interpolation of arbitrary continuous functions, as well as certain periodic functions (angles). More...
 
class  QuadraticInterpolatorNormal
 Class for interpolating normal (non-angle) ordinates. More...
 
class  QuadraticInterpolatorPositiveAngle
 Class for interpolating signed (0 <= v < 2.pi) angles. More...
 
class  QuadraticInterpolatorSignedAngle
 Class for interpolating signed (-pi <= v < pi) angles. More...
 
struct  RetrieveKey
 Struct which operators on a container key-value pair to retrieve the key. More...
 
class  RuntimeDirs
 This class is a collection of static methods to return specific directories for a standard carma tree. More...
 
class  ScheduledTimer
 Abstract base class for PthreadCond::TimedWait based timers. More...
 
class  ScopedExclusiveLock
 A templated scope class (i.e. More...
 
class  ScopedExclusiveLockManager
 Scoped manager class for exclusive PthreadRWLock locks. More...
 
class  ScopedLock
 A templated scope class (i.e. More...
 
class  ScopedLockManager
 A scope class (i.e. More...
 
class  ScopedPthreadMutexLock
 A scope class (i.e. More...
 
class  ScopedPthreadMutexLockManager
 A scope class (i.e. More...
 
class  ScopedSharedLock
 A templated scope class (i.e. More...
 
class  ScopedSharedLockManager
 Scoped manager class for shared PthreadRWLock locks. More...
 
class  ScopedStopWatchTimer
 Starts and stops attached stopwatch via ctor & dtor respectively. More...
 
class  SemaphoreException
 An exception indicating that a file you wish to create already exists. More...
 
class  SemaphoreTimedOutException
 An exception indicating that a file you wish to create already exists. More...
 
class  Serializable
 Abstract Class used to allow object to serialize themselves into a byte array. More...
 
struct  ServerConfig
 Structure to hold IMR server definition. More...
 
class  Singleton
 Thread-safe, templatized Singleton class with policy based creation. More...
 
class  Sleeper
 Abstract base class for PthreadCond::TimedWait based sleeping with quit/interuption support. More...
 
class  StopWatch
 Class for determining the elapsed wall-clock or CPU time between two events. More...
 
class  StringUtils
 Common string functions Additional string-related functions can be added here. More...
 
class  SyslogLayout
 Syslog layout class for CARMA logging. More...
 
class  SystemException
 Exception class for managing system errors. More...
 
class  Time
 This class deals primarily with Frames and Times. More...
 
class  Trace
 The Trace class provides an efficient means for managing debug statements throughout CARMA code. More...
 
exception  UserException
 Generic Carma variant of CORBA::UserException. More...
 
class  VerySimpleLayout
 Very Simple layout class for CARMA tracing. More...
 
class  VmSize
 Class to get virtual memory size of a process. More...
 
class  WalshFunction
 Class to generate and manipulate Walsh functions. More...
 
class  WorkRequest
 An abstract work request. More...
 
class  WorkResult
 Abstract result of servicing a work request. More...
 
class  WorkResultSet
 An abstract collection of the results of servicing a collection of work requests. More...
 
class  XercesPanicHandler
 carma xerces panic handler that at least logs before dying More...
 

Typedefs

typedef
boost::accumulators::accumulator_set
< std::complex< double >
, RollingStats > 
ComplexDoubleRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< std::complex< double >
, SimpleStats > 
ComplexDoubleStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< std::complex< float >
, RollingStats > 
ComplexFloatRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< std::complex< float >
, SimpleStats > 
ComplexFloatStatAccumulator
 
typedef unsigned long CorrelatorType
 
typedef struct
carma::util::domainStruct 
domainType
 Domain structure - holds it all. More...
 
typedef
boost::accumulators::accumulator_set
< double, RollingStats > 
DoubleRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< double, SimpleStats > 
DoubleStatAccumulator
 
typedef std::vector< double,
carma::util::FftwAllocator
< double > > 
FftwRealVector
 
typedef
boost::accumulators::accumulator_set
< float, RollingStats > 
FloatRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< float, SimpleStats > 
FloatStatAccumulator
 
typedef long int frameDiffType
 Signed type for calculating frame differences. More...
 
typedef unsigned int frameType
 Half second frames since Jan 1, 2000. More...
 
typedef enum
carma::util::hardwareTypeEnum 
hardwareType
 The type of board hardware in a given band. More...
 
typedef
boost::accumulators::accumulator_set
< int, RollingStats > 
IntRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< int, SimpleStats > 
IntStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< long, RollingStats > 
LongRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< long, SimpleStats > 
LongStatAccumulator
 
typedef std::vector< OADConfigOadVector
 
typedef sequence< octet > PhaseTable
 
typedef
boost::accumulators::stats
< boost::accumulators::tag::rolling_count,
boost::accumulators::tag::rolling_sum,
boost::accumulators::tag::rolling_mean > 
RollingStats
 
typedef sequence< octet > SeqByte
 Sequence of CORBA::Octet. More...
 
typedef sequence< double > SeqDouble
 Sequence of CORBA::Double. More...
 
typedef sequence< float > SeqFloat
 Sequence of CORBA::Float. More...
 
typedef sequence< long > SeqLong
 Sequence of CORBA::Long. More...
 
typedef sequence< short > SeqShort
 Sequence of CORBA::Short. More...
 
typedef sequence< string > SeqString
 Sequence of CORBA::String. More...
 
typedef std::vector< ServerConfigServerVector
 
typedef
boost::accumulators::accumulator_set
< short, RollingStats > 
ShortRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< short, SimpleStats > 
ShortStatAccumulator
 
typedef
boost::accumulators::stats
< boost::accumulators::tag::count,
boost::accumulators::tag::max,
boost::accumulators::tag::min,
boost::accumulators::tag::mean,
boost::accumulators::tag::error_of
< boost::accumulators::tag::mean > > 
SimpleStats
 
typedef std::map< SystemType, int > SystemTypeTotalsMap
 
typedef
boost::accumulators::accumulator_set
< unsigned int, RollingStats > 
UnsignedIntRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< unsigned int, SimpleStats > 
UnsignedIntStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< unsigned long, RollingStats > 
UnsignedLongRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< unsigned long, SimpleStats > 
UnsignedLongStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< unsigned short, RollingStats > 
UnsignedShortRollingStatAccumulator
 
typedef
boost::accumulators::accumulator_set
< unsigned short, SimpleStats > 
UnsignedShortStatAccumulator
 

Enumerations

enum  { HIERARCHICAL_NAME_ALLOW_WHITESPACE_IN_COMPONENTS_OPTION = 1, HIERARCHICAL_NAME_ALLOW_CONTROL_CHARACTERS_IN_COMPONENTS_OPTION = 2, HIERARCHICAL_NAME_ALLOW_EMPTY_COMPONENTS_OPTION = 4 }
 
enum  CorrelatorBandWidthType {
  CORR_BW_500MHZ, CORR_BW_250MHZ, CORR_BW_125MHZ, CORR_BW_62MHZ,
  CORR_BW_31MHZ, CORR_BW_8MHZ, CORR_BW_2MHZ
}
 Supported spectral correlator bandwidths. More...
 
enum  CorrelatorBitType { CORR_2BIT, CORR_3BIT, CORR_4BIT }
 Correlator number of bits. More...
 
enum  CorrelatorFpgaModeType { CORR_SINGLEPOL, CORR_DUALPOL, CORR_FULLPOL, CORR_CARMA23 }
 FPGA configuration modes. More...
 
enum  DigestType { MD5, SHA1 }
 digest type <ui> MD5 md5 SHA1 sha1 More...
 
enum  facilityType {
  RX_FACILITY = LOG_LOCAL1, DEFAULT_FACILITY = LOG_LOCAL2, MONITOR_FACILITY = LOG_LOCAL3, CONTROL_FACILITY = LOG_LOCAL4,
  INTERFEROMETRY_FACILITY = LOG_LOCAL5, ENVIRONMENT_FACILITY = LOG_LOCAL6
}
 A type for syslog facilities. More...
 
enum  hardwareTypeEnum { HARDWARE_TYPE_UNKNOWN, HARDWARE_TYPE_COBRA, HARDWARE_TYPE_CARMA, HARDWARE_TYPE_C3G }
 
enum  SystemType {
  DATA, MONITOR, CONTROL, INTERFEROMETRY,
  CORRELATOR, OVRO, BIMA, SZA,
  MISC
}
 
enum  TagAuthorityMode { DB_TAG_AUTHORITY_MODE, CONF_FILE_TAG_AUTHORITY_MODE, ON_THE_FLY_TAG_AUTHORITY_MODE }
 

Functions

float actualBandwidth (const ::std::string &bwstring)
 This method returns the true bandwidth of a correlator band, given CARMA's "rounded" description of a bandwidth. More...
 
void addSignalToSignalSet (::sigset_t &signalSet, int signalNumber, bool throwIfAlreadyInSet)
 C++ wrapper for sigaddset. More...
 
float amp (std::complex< float > visibility)
 Compute the visibility amplitude from a complex visibility. More...
 
template<typename T , typename S >
void assignMultisetToSequence (const ::std::multiset< T > &tMultiset, S &sequence)
 
template<typename S , typename T >
void assignSequenceToSet (const S &sequence,::std::set< T > &tSet)
 
template<typename S , typename T >
void assignSequenceToVector (const S &sequence,::std::vector< T > &tVector)
 
void assignSequenceToVector (const carma::util::SeqString &sequence,::std::vector< std::string > &tVector)
 
template<typename T , typename S >
void assignSetToSequence (const ::std::set< T > &tSet, S &sequence)
 
template<typename T , typename S >
void assignVectorToSequence (const ::std::vector< T > &tVector, S &sequence)
 
int baselineCountForMaxInputNo (int maxInputNo)
 
int baselineCountForMaxInputNoWithAutos (int maxInputNo)
 
int baselineIndexForInputNos (int inputNo1, int inputNo2)
 
int baselineIndexForInputNosWithAutos (int inputNo1, int inputNo2)
 
void broadcastCond (::pthread_cond_t &c)
 
const void * byteOffsetPointer (const void *ptr, size_t byteOffset)
 
void * byteOffsetPointer (void *ptr, size_t byteOffset)
 
void calcSimpleStats (const ::std::vector< float > &values, float *minValue, float *maxValue, float *medianValue, float *meanValue, float *stdDev)
 
void calcSimpleStats (const ::std::vector< double > &values, double *minValue, double *maxValue, double *medianValue, double *meanValue, double *stdDev)
 
void calcSimpleStatsInplace (::std::vector< float > &values, float *minValue, float *maxValue, float *medianValue, float *meanValue, float *stdDev)
 
void calcSimpleStatsInplace (::std::vector< double > &values, double *minValue, double *maxValue, double *medianValue, double *meanValue, double *stdDev)
 
bool caughtBacktraceCaptured ()
 
bool CaughtExceptionIsThreadQuitRequestedError ()
 
template<bool assertion>
void compileTimeCheck ()
 
template<>
void compileTimeCheck< true > ()
 
std::string ComposeHierarchicalName (const std::vector< std::string > &components, int options=0, char separator= '.')
 
template<typename S , typename T >
convertMultisetToSequence (const ::std::multiset< T > &tMultiset)
 
template<typename T , typename S >
::std::set< T > convertSequenceToSet (const S &sequence)
 
template<typename T , typename S >
::std::vector< T > convertSequenceToVector (const S &sequence)
 
template<typename S , typename T >
convertSetToSequence (const ::std::set< T > &tSet)
 
template<typename S , typename T >
convertVectorToSequence (const ::std::vector< T > &tVector)
 
float correlatorEfficiency (const CorrelatorBitType bitType)
 
std::vector< std::string > DecomposeHierarchicalName (const std::string &hierarchicalName, int options=0, char separator= '.')
 
template<typename T >
::std::string demangledDynamicTypeName (T &t)
 Returns a human readable name for the type of the passed in parameter. More...
 
::std::string demangleEntryPointName (const char *mangledName)
 Returns a human readable name for the entry point whose compiler mangled name is passed in. More...
 
::std::string demangleEntryPointName (const ::std::string &mangledName)
 
::std::string demangleTypeName (const char *mangledName)
 Returns a human readable name for the type whose compiler mangled name is passed in. More...
 
::std::string demangleTypeName (const ::std::string &mangledName)
 
::std::string demangleTypeName (const ::std::type_info &typeInfo)
 Returns a human readable name for the type whose ::std::type_info is passed in. More...
 
void exclusiveLock (::pthread_rwlock_t &)
 
void exclusiveLock (PthreadRWLock &)
 
void exclusiveUnlock (::pthread_rwlock_t &)
 
void exclusiveUnlock (PthreadRWLock &)
 
template<int highestBit, int lowestBit>
unsigned char extractBitfield (unsigned char x)
 
template<int highestBit, int lowestBit>
unsigned short extractBitfield (unsigned short x)
 
template<int highestBit, int lowestBit>
unsigned int extractBitfield (unsigned int x)
 
template<int highestBit, int lowestBit>
unsigned long extractBitfield (unsigned long x)
 
template<int highestBit, int lowestBit>
unsigned long long extractBitfield (unsigned long long x)
 
template<int highestBit, int lowestBit>
char extractBitfield (char x)
 
template<int highestBit, int lowestBit>
short extractBitfield (short x)
 
template<int highestBit, int lowestBit>
int extractBitfield (int x)
 
template<int highestBit, int lowestBit>
long extractBitfield (long x)
 
template<int highestBit, int lowestBit>
long long extractBitfield (long long x)
 
template<int highestBit, int lowestBit>
float extractBitfield (float x)
 
template<int highestBit, int lowestBit>
double extractBitfield (double x)
 
template<int highestBit, int lowestBit>
long double extractBitfield (long double x)
 
void failIfPosixError (int errorCode)
 
void failIfPosixError (int errorCode, const char *message)
 
void failIfPosixError (int errorCode, const ::std::string &message)
 
void forceGlibcErrorsToStderr ()
 
::std::string formatAsRanges (const ::std::multiset< char > &vals)
 
::std::string formatAsRanges (const ::std::multiset< short > &vals)
 
::std::string formatAsRanges (const ::std::multiset< int > &vals)
 
::std::string formatAsRanges (const ::std::multiset< long > &vals)
 
::std::string formatAsRanges (const ::std::multiset< long long > &vals)
 
::std::string formatAsRanges (const ::std::multiset< unsigned char > &vals)
 
::std::string formatAsRanges (const ::std::multiset< unsigned short > &vals)
 
::std::string formatAsRanges (const ::std::multiset< unsigned int > &vals)
 
::std::string formatAsRanges (const ::std::multiset< unsigned long > &vals)
 
::std::string formatAsRanges (const ::std::multiset< unsigned long long > &vals)
 
::std::string formatAsRanges (const ::std::multiset< char > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< short > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< int > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< long long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< unsigned char > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< unsigned short > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< unsigned int > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< unsigned long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::multiset< unsigned long long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< char > &vals)
 
::std::string formatAsRanges (const ::std::set< short > &vals)
 
::std::string formatAsRanges (const ::std::set< int > &vals)
 
::std::string formatAsRanges (const ::std::set< long > &vals)
 
::std::string formatAsRanges (const ::std::set< long long > &vals)
 
::std::string formatAsRanges (const ::std::set< unsigned char > &vals)
 
::std::string formatAsRanges (const ::std::set< unsigned short > &vals)
 
::std::string formatAsRanges (const ::std::set< unsigned int > &vals)
 
::std::string formatAsRanges (const ::std::set< unsigned long > &vals)
 
::std::string formatAsRanges (const ::std::set< unsigned long long > &vals)
 
::std::string formatAsRanges (const ::std::set< char > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< short > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< int > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< long long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< unsigned char > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< unsigned short > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< unsigned int > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< unsigned long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::set< unsigned long long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< char > &vals)
 
::std::string formatAsRanges (const ::std::vector< short > &vals)
 
::std::string formatAsRanges (const ::std::vector< int > &vals)
 
::std::string formatAsRanges (const ::std::vector< long > &vals)
 
::std::string formatAsRanges (const ::std::vector< long long > &vals)
 
::std::string formatAsRanges (const ::std::vector< unsigned char > &vals)
 
::std::string formatAsRanges (const ::std::vector< unsigned short > &vals)
 
::std::string formatAsRanges (const ::std::vector< unsigned int > &vals)
 
::std::string formatAsRanges (const ::std::vector< unsigned long > &vals)
 
::std::string formatAsRanges (const ::std::vector< unsigned long long > &vals)
 
::std::string formatAsRanges (const ::std::vector< char > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< short > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< int > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< long long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< unsigned char > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< unsigned short > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< unsigned int > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< unsigned long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
::std::string formatAsRanges (const ::std::vector< unsigned long long > &vals, const ::std::string &prefix, const ::std::string &suffix)
 
carma::util::CorrelatorBandWidthType getBandWidthTypeForBandWidth (const float bw)
 
::std::string getCaughtBacktraceAsString ()
 
::std::string getCaughtBacktraceAsString (const ::std::string &linePrefix, const ::std::string &lineSuffix)
 
::std::string getCaughtBacktraceAsString (const char *linePrefix, const char *lineSuffix)
 
carma::util::CorrelatorType getCorrTypeForAstroBandNo (const int abNo)
 
carma::util::CorrelatorType getCorrTypeForSaNo (const int saNo)
 
size_t getDefaultVmMemoryCopyMinWinBytes ()
 
::std::string getPosixFailureMessage (const char *prefix, int errorCode)
 
::std::string getPosixFailureMessage (const ::std::string &prefix, int errorCode)
 
log4cpp::Category & getProgramLogger ()
 
log4cpp::Category * getProgramLoggerIfAvailable ()
 
TracegetProgramTraceObject ()
 
TracegetProgramTraceObjectIfAvailable ()
 
::std::string getStringForCaught ()
 
::std::string getStringForCorrType (const carma::util::CorrelatorType corr)
 
const ::std::string getStringForHardwareType (const hardwareType hwType)
 
::std::string getStringForSiginfo (const ::siginfo_t &siginfo)
 
const char * getTextForSiginfoCode (const ::siginfo_t &siginfo)
 
const char * getTextForSiginfoSigno (const ::siginfo_t &siginfo)
 
const char * getTextForSignalNumber (int signalNumber)
 
hardwareType hwType (unsigned int astroBandNo)
 
hardwareType hwType (carma::util::AstroBand &band)
 
void initializeUsage ()
 
::std::pair< int, int > inputNoPairForBaselineIndex (int index)
 
::std::pair< int, int > inputNoPairForBaselineIndexWithAutos (int index)
 
template<typename K , typename V >
::std::multimap< V, K > invertToMultimap (const ::std::map< K, V > &in)
 
template<typename K , typename V >
::std::multimap< V, K > invertToMultimap (const ::std::multimap< K, V > &in)
 
bool isSignalInSignalSet (const ::sigset_t &signalSet, int signalNumber)
 C++ wrapper for sigismember. More...
 
template<typename K , typename V >
::std::set< K > keys (const ::std::map< K, V > &in)
 Return the keys of a map as a set. More...
 
template<typename K , typename V >
::std::set< K > keys (const ::std::multimap< K, V > &in)
 Return the unique keys of a multimap as a set. More...
 
void lockMutex (::pthread_mutex_t &)
 
void lockMutex (PthreadMutex &)
 
void logAndRethrowCaughtExceptionAsUserException (log4cpp::Category &logger, const log4cpp::Priority::PriorityLevel priority)
 
void logAndRethrowCaughtExceptionAsUserException (const log4cpp::Priority::PriorityLevel priority)
 
void logCaught (log4cpp::Category &logger, log4cpp::Priority::PriorityLevel priority)
 
void logCaught (log4cpp::Category &logger, log4cpp::Priority::PriorityLevel priority, const ::std::string &preface)
 
void logCaught (log4cpp::Priority::PriorityLevel priority)
 
void logCaught (log4cpp::Priority::PriorityLevel priority, const ::std::string &preface)
 
void logCaughtAndRethrowAsUser (log4cpp::Category &logger, log4cpp::Priority::PriorityLevel priority)
 
void logCaughtAndRethrowAsUser (log4cpp::Category &logger, log4cpp::Priority::PriorityLevel priority, const ::std::string &preface)
 
void logCaughtAndRethrowAsUser (log4cpp::Category &logger, log4cpp::Priority::PriorityLevel priority, const char *preface)
 
void logCaughtAndRethrowAsUser (log4cpp::Priority::PriorityLevel priority)
 
void logCaughtAndRethrowAsUser (log4cpp::Priority::PriorityLevel priority, const ::std::string &preface)
 
void logCaughtAndRethrowAsUser (log4cpp::Priority::PriorityLevel priority, const char *preface)
 
void logCaughtAsError (log4cpp::Category &logger)
 
void logCaughtAsError (log4cpp::Category &logger, const ::std::string &preface)
 
void logCaughtAsError ()
 
void logCaughtAsError (const ::std::string &preface)
 
void logCaughtAsErrorAndRethrowAsUser (log4cpp::Category &logger)
 
void logCaughtAsErrorAndRethrowAsUser (log4cpp::Category &logger, const ::std::string &preface)
 
void logCaughtAsErrorAndRethrowAsUser (log4cpp::Category &logger, const char *preface)
 
void logCaughtAsErrorAndRethrowAsUser ()
 
void logCaughtAsErrorAndRethrowAsUser (const ::std::string &preface)
 
void logCaughtAsErrorAndRethrowAsUser (const char *preface)
 
void logCaughtBacktraceAsError (log4cpp::Category &logger)
 
void logCaughtBacktraceAsError (log4cpp::Category &logger, const ::std::string &linePrefix)
 
void logCaughtBacktraceAsError (log4cpp::Category &logger, const char *linePrefix)
 
void logCaughtBacktraceAsErrorIfPossible ()
 
void logCaughtBacktraceAsErrorIfPossible (const ::std::string &linePrefix)
 
void logCaughtBacktraceAsErrorIfPossible (const char *linePrefix)
 
void logIfPosixError (int errorCode)
 
void logIfPosixError (int errorCode, const char *message)
 
void logIfPosixError (int errorCode, const ::std::string &message)
 
void logMultipleLines (::log4cpp::Category &logger, const ::log4cpp::Priority::PriorityLevel priorityLevel, const ::std::string &s)
 
void logPosixError (int errorCode)
 
void logPosixError (int errorCode, const char *message)
 
void logPosixError (int errorCode, const ::std::string &message)
 
bool MarkCaughtExceptionOkayToDestructIfThreadQuitRequestedError ()
 
unsigned numExpectedAstroChans (const CorrelatorType corrType, const CorrelatorBandWidthType bwType, const CorrelatorBitType bitType, const CorrelatorFpgaModeType corrFpgaMode)
 
unsigned numExpectedCorrBands (const ::std::string &abConf, const CorrelatorType corrType=CORR_SPECTRAL)
 
template<typename T1 , typename T2 >
bool operator!= (const MallocAllocator< T1 > &lhs, const MallocAllocator< T2 > &rhs) throw ( )
 
template<typename T1 , typename T2 >
bool operator!= (const MpAllocator< T1 > &lhs, const MpAllocator< T2 > &rhs) throw ( )
 
template<class T1 , class T2 >
bool operator!= (const FftwAllocator< T1 > &, const FftwAllocator< T2 > &) throw ( )
 
std::ostream & operator<< (std::ostream &os, const CorrelatorSet &set)
 
template<typename T1 , typename T2 >
bool operator== (const MallocAllocator< T1 > &lhs, const MallocAllocator< T2 > &rhs) throw ( )
 
template<typename T1 , typename T2 >
bool operator== (const MpAllocator< T1 > &lhs, const MpAllocator< T2 > &rhs) throw ( )
 
template<class T1 , class T2 >
bool operator== (const FftwAllocator< T1 > &, const FftwAllocator< T2 > &) throw ( )
 
domainType parseXmlConfig (const ::std::string &xmlFilename, bool validateOnly, bool verbose)
 Parse XML Configuration File and return a structure containing domain. More...
 
float phase (std::complex< float > visibility)
 Compute the visibility phase from a complex visibility. More...
 
bool pointerIsAligned (const void *ptr, size_t alignment)
 
bool pointerIsVmPageAligned (const void *ptr)
 
void programLogCritical (const ::std::string &msg)
 
void programLogCritical (const char *msg)
 
void programLogCriticalIfPossible (const ::std::string &msg)
 
void programLogCriticalIfPossible (const char *msg)
 
void programLogDebug (const ::std::string &msg)
 
void programLogDebug (const char *msg)
 
void programLogDebugIfPossible (const ::std::string &msg)
 
void programLogDebugIfPossible (const char *msg)
 
void programLogError (const ::std::string &msg)
 
void programLogError (const char *msg)
 
void programLogErrorIfPossible (const ::std::string &msg)
 
void programLogErrorIfPossible (const char *msg)
 
bool programLoggingIsPossible ()
 
void programLogInfo (const ::std::string &msg)
 
void programLogInfo (const char *msg)
 
void programLogInfoIfPossible (const ::std::string &msg)
 
void programLogInfoIfPossible (const char *msg)
 
void programLogNotice (const ::std::string &msg)
 
void programLogNotice (const char *msg)
 
void programLogNoticeIfPossible (const ::std::string &msg)
 
void programLogNoticeIfPossible (const char *msg)
 
void programLogWarn (const ::std::string &msg)
 
void programLogWarn (const char *msg)
 
void programLogWarnIfPossible (const ::std::string &msg)
 
void programLogWarnIfPossible (const char *msg)
 
void redirectFdToSyslog (int fd, const std::string &fdname)
 
void removeSignalFromSignalSet (::sigset_t &signalSet, int signalNumber, bool throwIfNotInSet)
 C++ wrapper for sigaddset. More...
 
void RequestThreadQuit (::pthread_t thread)
 
void rethrowCaughtAsUser ()
 
void RethrowCaughtExceptionIfThreadQuitRequestedError ()
 
size_t roundUpToMultiple (size_t value, size_t alignment)
 
size_t roundUpToVmPageMultiple (size_t value)
 
void setSignalSetToEmpty (::sigset_t &signalSet)
 C++ wrapper for sigemptyset. More...
 
void setSignalSetToFull (::sigset_t &signalSet)
 C++ wrapper for sigfillset. More...
 
template<typename T >
::std::string setToString (const ::std::set< T > &s, const ::std::string &delimiter=", ")
 
void sharedLock (::pthread_rwlock_t &)
 
void sharedLock (PthreadRWLock &)
 
void sharedUnlock (::pthread_rwlock_t &)
 
void sharedUnlock (PthreadRWLock &)
 
void signalCond (::pthread_cond_t &c)
 
template<typename C >
bool sizeIsExactlyOne (const C &)
 Constant time check that a container has exactly one element. More...
 
template<typename C >
bool sizeIsOneOrLess (const C &)
 Constant time check that a container has no more than one element. More...
 
void startExceptionHandlersWatchdog ()
 
template<typename ArgType >
::pthread_t StartPthreadWithCopy (void(*ep)(ArgType &a), const ArgType &arg, const ::std::string &initialLogNDC=::std::string(), const ::pthread_attr_t *attr=0, bool startCancelable=false)
 Starts up a new pthread. More...
 
template<typename ArgType >
::pthread_t StartPthreadWithCopy (void(*ep)(ArgType &a), const ArgType &arg, const ::std::string &initialLogNDC, const PthreadAttr &attr, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithCopy (void(*ep)(const ArgType &a), const ArgType &arg, const ::std::string &initialLogNDC=::std::string(), const ::pthread_attr_t *attr=0, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithCopy (void(*ep)(const ArgType &a), const ArgType &arg, const ::std::string &initialLogNDC, const PthreadAttr &attr, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithCopy (void(*ep)(const ArgType *&a), ArgType *const &arg, const ::std::string &initialLogNDC=::std::string(), const ::pthread_attr_t *attr=0, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithCopy (void(*ep)(const ArgType *&a), ArgType *const &arg, const ::std::string &initialLogNDC, const PthreadAttr &attr, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithRef (void(*ep)(ArgType &a), ArgType &arg, const ::std::string &initialLogNDC=::std::string(), const ::pthread_attr_t *attr=0, bool startCancelable=false)
 Starts up a new pthread. More...
 
template<typename ArgType >
::pthread_t StartPthreadWithRef (void(*ep)(ArgType &a), ArgType &arg, const ::std::string &initialLogNDC, const PthreadAttr &attr, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithRef (void(*ep)(const ArgType &a), const ArgType &arg, const ::std::string &initialLogNDC=::std::string(), const ::pthread_attr_t *attr=0, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithRef (void(*ep)(const ArgType &a), const ArgType &arg, const ::std::string &initialLogNDC, const PthreadAttr &attr, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithRef (void(*ep)(const ArgType &a), ArgType &arg, const ::std::string &initialLogNDC=::std::string(), const ::pthread_attr_t *attr=0, bool startCancelable=false)
 
template<typename ArgType >
::pthread_t StartPthreadWithRef (void(*ep)(const ArgType &a), ArgType &arg, const ::std::string &initialLogNDC, const PthreadAttr &attr, bool startCancelable=false)
 
void stopExceptionHandlersWatchdog ()
 
int sumOf1ToN (int n)
 
void terminateHandler ()
 
void ThreadQuitTestSelf ()
 
void throwPosixError (int errorCode)
 
void throwPosixError (int errorCode, const char *message)
 
void throwPosixError (int errorCode, const ::std::string &message)
 
bool timedWaitCond (::pthread_cond_t &c,::pthread_mutex_t &m, const struct::timespec &abstime)
 
bool timedWaitCond (::pthread_cond_t &c, PthreadMutex &m, const struct::timespec &abstime)
 
void traceCaught (int traceLevel)
 
void traceCaughtAndRethrowAsUser (int traceLevel)
 
bool tryExclusiveLock (::pthread_rwlock_t &)
 
bool tryExclusiveLock (PthreadRWLock &)
 
bool tryLockMutex (::pthread_mutex_t &)
 
bool tryLockMutex (PthreadMutex &)
 
bool trySharedLock (::pthread_rwlock_t &)
 
bool trySharedLock (PthreadRWLock &)
 
void unexpectedHandler ()
 
void unlockMutex (::pthread_mutex_t &)
 
void unlockMutex (PthreadMutex &)
 
int unlockMutexNoThrow (::pthread_mutex_t &)
 
int unlockMutexNoThrow (PthreadMutex &)
 
bool valueIsMultiple (size_t value, size_t alignment)
 
bool valueIsVmPageMultiple (size_t value)
 
template<typename T >
::std::string vectorToString (const ::std::vector< T > &v, const ::std::string &delimiter=", ")
 
void waitCond (::pthread_cond_t &c,::pthread_mutex_t &m)
 
void waitCond (::pthread_cond_t &c, PthreadMutex &m)
 
int waitForSignalInSignalSet (const ::sigset_t &signalSet)
 C++ wrapper for sigwait. More...
 
void xercesInit ()
 Thread safe wrapper on xercesc::XMLPlatformUtils::Initialize. More...
 
void xercesInit (::xercesc::PanicHandler *panicHandler)
 Thread safe wrapper on xercesc::XMLPlatformUtils::Initialize. More...
 
void xercesTerm ()
 Thread safe wrapper on xercesc::XMLPlatformUtils::Terminate. More...
 

Variables

const CorrelatorType CORR_ALL = 0x1 | 0x2 | 0x4 | 0x8
 
const CorrelatorType CORR_C3GMAX23 = 0x8
 
const CorrelatorType CORR_C3GMAX8 = 0x4
 
const CorrelatorType CORR_NONE = 0x0
 
const CorrelatorType CORR_SPECTRAL = 0x1
 
const CorrelatorType CORR_WIDEBAND = 0x2
 
const string PROCESS_MONITOR_NAME = "carma.util.ProcessMonitor"
 

Detailed Description

Utility classes.

Typedef Documentation

Domain structure - holds it all.

Signed type for calculating frame differences.

Definition at line 35 of file types.h.

Half second frames since Jan 1, 2000.

Unsigned integer gives a range until 2068.

Definition at line 29 of file types.h.

The type of board hardware in a given band.

These match cobra::hardwareType.

Definition at line 20 of file corrUtils.h.

typedef sequence< octet > carma::util::SeqByte

Sequence of CORBA::Octet.

Definition at line 11 of file SeqTypedefs.idl.

typedef sequence< double > carma::util::SeqDouble

Sequence of CORBA::Double.

Definition at line 7 of file SeqTypedefs.idl.

typedef sequence< float > carma::util::SeqFloat

Sequence of CORBA::Float.

Definition at line 8 of file SeqTypedefs.idl.

typedef sequence< long > carma::util::SeqLong

Sequence of CORBA::Long.

Definition at line 9 of file SeqTypedefs.idl.

typedef sequence< short > carma::util::SeqShort

Sequence of CORBA::Short.

Definition at line 10 of file SeqTypedefs.idl.

typedef sequence< string > carma::util::SeqString

Sequence of CORBA::String.

Definition at line 12 of file SeqTypedefs.idl.

Enumeration Type Documentation

Supported spectral correlator bandwidths.

Due to the heterogeneous hardware, not all correlator bands support every mode listed.

Enumerator
CORR_BW_500MHZ 

500 MHz bandwidth.

CORR_BW_250MHZ 

250 MHz bandwidth.

CORR_BW_125MHZ 

125 MHz bandwidth.

CORR_BW_62MHZ 

62.5 MHz bandwidth.

CORR_BW_31MHZ 

31.25 MHz bandwidth.

CORR_BW_8MHZ 

7.8125 MHz bandwidth.

CORR_BW_2MHZ 

1.953125 MHz bandwidth.

Definition at line 36 of file CorrelatorType.idl.

Correlator number of bits.

Note that COBRA hardware supports only 2-bit operation.

Enumerator
CORR_2BIT 

2-bit mode

CORR_3BIT 

3-bit mode

CORR_4BIT 

4-bit mode

Definition at line 50 of file CorrelatorType.idl.

FPGA configuration modes.

Enumerator
CORR_SINGLEPOL 

default, single polarization mode, e.g. LL or RR

CORR_DUALPOL 

dual-polarization, LL and RR

CORR_FULLPOL 

Full-stokes mode.

CORR_CARMA23 

23-station mode

Definition at line 59 of file CorrelatorType.idl.

digest type <ui> MD5 md5 SHA1 sha1

Definition at line 30 of file StringUtils.h.

A type for syslog facilities.

Syslog facility codes are #define'd in syslog.h so we defined CARMA names for them here.

Definition at line 15 of file FacilityType.h.

Enumerator
HARDWARE_TYPE_UNKNOWN 

Unknown hardware.

HARDWARE_TYPE_COBRA 

COBRA board hardware.

HARDWARE_TYPE_CARMA 

CARMA board hardware.

HARDWARE_TYPE_C3G 

CARMA 3rd generation correlator hardware.

Definition at line 27 of file corrUtils.h.

Function Documentation

float carma::util::actualBandwidth ( const ::std::string &  bwstring)

This method returns the true bandwidth of a correlator band, given CARMA's "rounded" description of a bandwidth.

Parameters
bwstringA fiducial string representing the bandwidth description, e.g. "500MHz", "31MHz", etc.
Returns
the actual correlator bandwidth in MHz given the fiducial string

Yes, I would have like to have an enum instead of a string, but control and correlator namespaces both define CORR_BW enums, and trying to mix and match them might cause dependency issues.

void carma::util::addSignalToSignalSet ( ::sigset_t &  signalSet,
int  signalNumber,
bool  throwIfAlreadyInSet 
)

C++ wrapper for sigaddset.

float carma::util::amp ( std::complex< float >  visibility)

Compute the visibility amplitude from a complex visibility.

Parameters
visibilityThe complex visibility

Definition at line 15 of file complexManip.h.

float carma::util::correlatorEfficiency ( const CorrelatorBitType  bitType)
Returns
the correlator efficiency due to the the Van Vleck correction applied to this astroband.
Parameters
bitTypeThe bitmode designation, e.g. CORR_3BIT.
template<typename T >
::std::string carma::util::demangledDynamicTypeName ( T &  t)

Returns a human readable name for the type of the passed in parameter.

Parameters
tParameter of type T.
Returns
Human readable name for the type T.

Definition at line 21 of file demangledDynamicTypeName.h.

::std::string carma::util::demangleEntryPointName ( const char *  mangledName)

Returns a human readable name for the entry point whose compiler mangled name is passed in.

Parameters
mangledNameCompiler mangled name for the entry point.
Returns
Human readable name for the entry point.
::std::string carma::util::demangleTypeName ( const char *  mangledName)

Returns a human readable name for the type whose compiler mangled name is passed in.

Parameters
mangledNameCompiler mangled name for the type.
Returns
Human readable name for the type.
::std::string carma::util::demangleTypeName ( const ::std::type_info &  typeInfo)

Returns a human readable name for the type whose ::std::type_info is passed in.

Parameters
typeInfo::std::type_info for the type.
Returns
Human readable name for the type.
carma::util::CorrelatorBandWidthType carma::util::getBandWidthTypeForBandWidth ( const float  bw)
Returns
the correlator bandwidth enum for a given float value of the bandwidth.
Parameters
bwthe bandwidth in GHz
const ::std::string carma::util::getStringForHardwareType ( const hardwareType  hwType)
Returns
string representing hardware type
hardwareType carma::util::hwType ( unsigned int  astroBandNo)
Returns
The hardware type of a given astro band. These are currently hardcoded such that bands 1-3 are cobra, bands 4-8 are CARMA, rest are UNKNOWN.
Parameters
bandNoThe input band number (one-based).
bool carma::util::isSignalInSignalSet ( const ::sigset_t &  signalSet,
int  signalNumber 
)

C++ wrapper for sigismember.

template<typename K , typename V >
::std::set< K > carma::util::keys ( const ::std::map< K, V > &  in)

Return the keys of a map as a set.

Keys must be comparable with less-than operator.

template<typename K , typename V >
::std::set< K > carma::util::keys ( const ::std::multimap< K, V > &  in)

Return the unique keys of a multimap as a set.

Keys must be comparable with less-than operator.

unsigned carma::util::numExpectedAstroChans ( const CorrelatorType  corrType,
const CorrelatorBandWidthType  bwType,
const CorrelatorBitType  bitType,
const CorrelatorFpgaModeType  corrFpgaMode 
)
Returns
the number of expected channels in an astroband given that astroband's setup info, or zero for incompatible info. NOTE: Number of channels returned assumes end half channels are dropped.
Parameters
corrTypeThe correlator designation type, e.g. spectral line or wideband
bwTypeThe bandwidth designation, e.g. 500 MHz Note for corrType = CORR_WIDEBAND, this parameter will be ignored since only 500MHz mode is available therein.
bitTypeThe bitmode designation, e.g. CORR_3BIT. Note for corrType = CORR_WIDEBAND, this parameter will be ignored since only 2BIT mode is available therein.
unsigned carma::util::numExpectedCorrBands ( const ::std::string &  abConf,
const CorrelatorType  corrType = CORR_SPECTRAL 
)
Returns
The number of expected correlator bands for an astroband with the given configuration, or zero for unrecognized astroband configuration.
Parameters
abConfThe astroband configuration, as from the signalpath
corrTypeThe correlator designation type, e.g. spectral line or wideband. This parameter is needed because some astroband configurations have differing numbers of channels depending on the correlator type. Default: CORR_SPECTRAL
domainType carma::util::parseXmlConfig ( const ::std::string &  xmlFilename,
bool  validateOnly,
bool  verbose 
)

Parse XML Configuration File and return a structure containing domain.

float carma::util::phase ( std::complex< float >  visibility)

Compute the visibility phase from a complex visibility.

Parameters
visibilityThe complex visibility
Returns
The phase in degrees

Definition at line 25 of file complexManip.h.

void carma::util::removeSignalFromSignalSet ( ::sigset_t &  signalSet,
int  signalNumber,
bool  throwIfNotInSet 
)

C++ wrapper for sigaddset.

void carma::util::setSignalSetToEmpty ( ::sigset_t &  signalSet)

C++ wrapper for sigemptyset.

void carma::util::setSignalSetToFull ( ::sigset_t &  signalSet)

C++ wrapper for sigfillset.

template<typename C >
bool carma::util::sizeIsExactlyOne ( const C &  c)

Constant time check that a container has exactly one element.

Below is implementation.

Useful because the STL container size() method is only required to be linear time complexity with respect to the number of elements in the container instance

Definition at line 69 of file stlContainerUtils.h.

template<typename C >
bool carma::util::sizeIsOneOrLess ( const C &  c)

Constant time check that a container has no more than one element.

Useful because the STL container size() method is only required to be linear time complexity with respect to the number of elements in the container instance

Definition at line 84 of file stlContainerUtils.h.

template<typename ArgType >
::pthread_t carma::util::StartPthreadWithCopy ( void(*)(ArgType &a)  ep,
const ArgType &  arg,
const ::std::string &  initialLogNDC = ::std::string(),
const ::pthread_attr_t *  attr = 0,
bool  startCancelable = false 
)

Starts up a new pthread.

Parameters
epThread entry point function pointer
argArgument to copy and then use to invoke ep
initialLogNDCInitial logging NDC to start the new thread with
attrIf given then it's pthread attributes to use when creating the new thread
startCancelableIf false then the new thread will be created with pthread cancellation disabled
template<typename ArgType >
::pthread_t carma::util::StartPthreadWithRef ( void(*)(ArgType &a)  ep,
ArgType &  arg,
const ::std::string &  initialLogNDC = ::std::string(),
const ::pthread_attr_t *  attr = 0,
bool  startCancelable = false 
)

Starts up a new pthread.

Parameters
epThread entry point function pointer
argArgument to use directly (i.e. no copying) to invoke ep
initialLogNDCInitial logging NDC to start the new thread with
attrIf non-NULL then it's pthread attributes to use when creating the new thread
startCancelableIf false then the new thread will be created with pthread cancellation disabled
int carma::util::waitForSignalInSignalSet ( const ::sigset_t &  signalSet)

C++ wrapper for sigwait.

Returns
signal number that was received
void carma::util::xercesInit ( )

Thread safe wrapper on xercesc::XMLPlatformUtils::Initialize.

You can read the gory details about why this is needed at http://xml.apache.org/xerces-c/faq-parse.html#faq-3

This version will try to install the default carma panic handler

void carma::util::xercesInit ( ::xercesc::PanicHandler *  panicHandler)

Thread safe wrapper on xercesc::XMLPlatformUtils::Initialize.

You can read the gory details about why this is needed at http://xml.apache.org/xerces-c/faq-parse.html#faq-3

void carma::util::xercesTerm ( )

Thread safe wrapper on xercesc::XMLPlatformUtils::Terminate.

You can read the gory details about why this is needed at http://xml.apache.org/xerces-c/faq-parse.html#faq-3