casacore
Public Types | Static Public Member Functions | Static Private Member Functions | Static Private Attributes | List of all members

Class with static functions for tracing column IO. More...

#include <TableTrace.h>

Public Types

enum  ColType {
  SCALAR,
  ARRAY,
  RECORD
}
 
enum  Oper {
  READ,
  WRITE
}
 

Static Public Member Functions

static int traceColumn (const ColumnDesc &)
 Does the given column have to be traced for read and/or write? bit 0 set means read tracing; bit 1 write tracing. More...
 
static int traceTable (const String &tableName, char oper)
 If needed, write a trace message for table open or create. More...
 
static void traceClose (const String &tableName)
 If needed, trace closing a table. More...
 
static void traceFile (int tabid, const String &oper)
 If needed, trace an operation on a table. More...
 
static void traceRefTable (const String &parentName, char oper)
 If needed, write a trace message for reftable open, create, or close. More...
 
static void trace (int tabid, const String &columnName, char oper)
 If needed, write a trace message Write a trace message for a scalar column. More...
 
static void trace (int tabid, const String &columnName, char oper, Int64 row)
 Write a trace message for a scalar row. More...
 
static void trace (int tabid, const String &columnName, char oper, const RefRows &rownrs)
 Write a trace message for ranges of scalar rows. More...
 
static void trace (int tabid, const String &columnName, char oper, const IPosition &shape)
 Write a trace message for an array column. More...
 
static void trace (int tabid, const String &columnName, char oper, Int64 row, const IPosition &shape)
 Write a trace message for an array row. More...
 
static void trace (int tabid, const String &columnName, char oper, const RefRows &rownrs, const IPosition &shape)
 Write a trace message for ranges of array rows. More...
 
static void trace (int tabid, const String &columnName, char oper, const IPosition &shape, const IPosition &blc, const IPosition &trc, const IPosition &inc)
 Write a trace message for an array column slice. More...
 
static void trace (int tabid, const String &columnName, char oper, Int64 row, const IPosition &shape, const IPosition &blc, const IPosition &trc, const IPosition &inc)
 Write a trace message for an array row slice. More...
 
static void trace (int tabid, const String &columnName, char oper, const RefRows &rownrs, const IPosition &shape, const IPosition &blc, const IPosition &trc, const IPosition &inc)
 Write a trace message for ranges of array rows slice. More...
 

Static Private Member Functions

static void initTracing ()
 Initialize the tracing mechanism which should be done only once. More...
 
static void initOper ()
 
static void initColumn ()
 
static int findTable (const String &name)
 Find the table name in the vector. More...
 
static void writeTraceFirst (int tabid, const String &name, char oper)
 Write the first part of the trace message. More...
 
static void writeRefRows (const RefRows &rownrs)
 Write the RefRows as vector of rows or slices. More...
 
static void writeSlice (const IPosition &blc, const IPosition &trc, const IPosition &inc)
 Write the blc, trc, and inc of an array slice. More...
 

Static Private Attributes

static CallOnce0 theirCallOnce
 
static Mutex theirMutex
 
static std::ofstream theirTraceFile
 
static std::ostream * theirStream
 
static int theirDoTrace
 
static int theirOper
 
static int theirColType
 
static std::vector< Regex > theirColumns
 
static std::vector< String > theirTables
 

Detailed Description

Class with static functions for tracing column IO.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Synopsis

This class contains some static functions to enable table and column tracing. It maintains a map of table name to table-id.
The following aipsrc variables variables determine if tracing will be done, and if so, which columns and operations will be traced.

If both table.trace.columntype and table.trace.column have an empty value, all array columns are traced.

Definition at line 91 of file TableTrace.h.

Member Enumeration Documentation

◆ ColType

Enumerator
SCALAR 
ARRAY 
RECORD 

Definition at line 94 of file TableTrace.h.

◆ Oper

Enumerator
READ 
WRITE 

Definition at line 99 of file TableTrace.h.

Member Function Documentation

◆ findTable()

static int casacore::TableTrace::findTable ( const String &  name)
staticprivate

Find the table name in the vector.

-1 is returned if not found.

◆ initColumn()

static void casacore::TableTrace::initColumn ( )
staticprivate

◆ initOper()

static void casacore::TableTrace::initOper ( )
staticprivate

◆ initTracing()

static void casacore::TableTrace::initTracing ( )
staticprivate

Initialize the tracing mechanism which should be done only once.

◆ trace() [1/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper 
)
static

If needed, write a trace message Write a trace message for a scalar column.

◆ trace() [2/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
const IPosition &  shape 
)
static

Write a trace message for an array column.

◆ trace() [3/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
const IPosition &  shape,
const IPosition &  blc,
const IPosition &  trc,
const IPosition &  inc 
)
static

Write a trace message for an array column slice.

◆ trace() [4/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
const RefRows &  rownrs 
)
static

Write a trace message for ranges of scalar rows.

◆ trace() [5/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
const RefRows &  rownrs,
const IPosition &  shape 
)
static

Write a trace message for ranges of array rows.

◆ trace() [6/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
const RefRows &  rownrs,
const IPosition &  shape,
const IPosition &  blc,
const IPosition &  trc,
const IPosition &  inc 
)
static

Write a trace message for ranges of array rows slice.

◆ trace() [7/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
Int64  row 
)
static

Write a trace message for a scalar row.

◆ trace() [8/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
Int64  row,
const IPosition &  shape 
)
static

Write a trace message for an array row.

◆ trace() [9/9]

static void casacore::TableTrace::trace ( int  tabid,
const String &  columnName,
char  oper,
Int64  row,
const IPosition &  shape,
const IPosition &  blc,
const IPosition &  trc,
const IPosition &  inc 
)
static

Write a trace message for an array row slice.

◆ traceClose()

static void casacore::TableTrace::traceClose ( const String &  tableName)
static

If needed, trace closing a table.

It removes the table from the map.

◆ traceColumn()

static int casacore::TableTrace::traceColumn ( const ColumnDesc &  )
static

Does the given column have to be traced for read and/or write? bit 0 set means read tracing; bit 1 write tracing.

◆ traceFile()

static void casacore::TableTrace::traceFile ( int  tabid,
const String &  oper 
)
static

If needed, trace an operation on a table.

◆ traceRefTable()

static void casacore::TableTrace::traceRefTable ( const String &  parentName,
char  oper 
)
static

If needed, write a trace message for reftable open, create, or close.

◆ traceTable()

static int casacore::TableTrace::traceTable ( const String &  tableName,
char  oper 
)
static

If needed, write a trace message for table open or create.

It adds the table to the map and returns the table-id.

◆ writeRefRows()

static void casacore::TableTrace::writeRefRows ( const RefRows &  rownrs)
staticprivate

Write the RefRows as vector of rows or slices.

◆ writeSlice()

static void casacore::TableTrace::writeSlice ( const IPosition &  blc,
const IPosition &  trc,
const IPosition &  inc 
)
staticprivate

Write the blc, trc, and inc of an array slice.

◆ writeTraceFirst()

static void casacore::TableTrace::writeTraceFirst ( int  tabid,
const String &  name,
char  oper 
)
staticprivate

Write the first part of the trace message.

Member Data Documentation

◆ theirCallOnce

CallOnce0 casacore::TableTrace::theirCallOnce
staticprivate

Definition at line 177 of file TableTrace.h.

◆ theirColType

int casacore::TableTrace::theirColType
staticprivate

Definition at line 183 of file TableTrace.h.

◆ theirColumns

std::vector<Regex> casacore::TableTrace::theirColumns
staticprivate

Definition at line 184 of file TableTrace.h.

◆ theirDoTrace

int casacore::TableTrace::theirDoTrace
staticprivate

Definition at line 181 of file TableTrace.h.

◆ theirMutex

Mutex casacore::TableTrace::theirMutex
staticprivate

Definition at line 178 of file TableTrace.h.

◆ theirOper

int casacore::TableTrace::theirOper
staticprivate

Definition at line 182 of file TableTrace.h.

◆ theirStream

std::ostream* casacore::TableTrace::theirStream
staticprivate

Definition at line 180 of file TableTrace.h.

◆ theirTables

std::vector<String> casacore::TableTrace::theirTables
staticprivate

Definition at line 185 of file TableTrace.h.

◆ theirTraceFile

std::ofstream casacore::TableTrace::theirTraceFile
staticprivate

Definition at line 179 of file TableTrace.h.


The documentation for this class was generated from the following file: