casacore
Loading...
Searching...
No Matches

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.
 
static int traceTable (const String &tableName, char oper)
 If needed, write a trace message for table open or create.
 
static void traceClose (const String &tableName)
 If needed, trace closing a table.
 
static void traceFile (int tabid, const String &oper)
 If needed, trace an operation on a table.
 
static void traceRefTable (const String &parentName, char oper)
 If needed, write a trace message for reftable open, create, or close.
 
static void trace (int tabid, const String &columnName, char oper)
 If needed, write a trace message Write a trace message for a scalar column.
 
static void trace (int tabid, const String &columnName, char oper, Int64 row)
 Write a trace message for a scalar row.
 
static void trace (int tabid, const String &columnName, char oper, const RefRows &rownrs)
 Write a trace message for ranges of scalar rows.
 
static void trace (int tabid, const String &columnName, char oper, const IPosition &shape)
 Write a trace message for an array column.
 
static void trace (int tabid, const String &columnName, char oper, Int64 row, const IPosition &shape)
 Write a trace message for an array row.
 
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.
 
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.
 
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.
 
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.
 

Static Private Member Functions

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

Static Private Attributes

static std::once_flag theirCallOnceFlag
 
static std::mutex theirMutex
 
static std::ofstream theirTraceFile
 
static std::ostream * theirStream
 
static int theirDoTrace
 
static int theirOper
 
static int theirColType
 
static std::vector< RegextheirColumns
 
static std::vector< StringtheirTables
 

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.

  • table.trace.filename gives the name of the file in which the trace will be written. If empty (default), no tracing will be done. If 'stdout' is given, tracing is done to stdout. If 'stderr' is given, tracing is done to stderr.
  • table.trace.operation gives the operation to trace. be traced. It can be one or more of:
    s: creation of RefTable (selection/sort/iter)
    r: reads
    w: writes
    The default is ''. Note that opening and closing a PlainTable are always traced.
  • table.trace.columntype gives the types of columns to trace for read and/or write. It can be one or more of:
    s: scalar columns
    a: array columns
    r: record columns
    The default is ''.
  • table.trace.column gives names of additional columns to trace for read and/or write. The names are separated by commas without any whitespace. Each name can be a glob-like pattern.
    The default is ''.

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

Definition at line 90 of file TableTrace.h.

Member Enumeration Documentation

◆ ColType

Enumerator
SCALAR 
ARRAY 
RECORD 

Definition at line 93 of file TableTrace.h.

◆ Oper

Enumerator
READ 
WRITE 

Definition at line 98 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

◆ theirCallOnceFlag

std::once_flag casacore::TableTrace::theirCallOnceFlag
staticprivate

Definition at line 176 of file TableTrace.h.

◆ theirColType

int casacore::TableTrace::theirColType
staticprivate

Definition at line 182 of file TableTrace.h.

◆ theirColumns

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

Definition at line 183 of file TableTrace.h.

◆ theirDoTrace

int casacore::TableTrace::theirDoTrace
staticprivate

Definition at line 180 of file TableTrace.h.

◆ theirMutex

std::mutex casacore::TableTrace::theirMutex
staticprivate

Definition at line 177 of file TableTrace.h.

◆ theirOper

int casacore::TableTrace::theirOper
staticprivate

Definition at line 181 of file TableTrace.h.

◆ theirStream

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

Definition at line 179 of file TableTrace.h.

◆ theirTables

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

Definition at line 184 of file TableTrace.h.

◆ theirTraceFile

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

Definition at line 178 of file TableTrace.h.


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