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. | |
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 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 |
Class with static functions for tracing column IO.
Internal
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: table.trace.columntype
gives the types of columns to trace for read and/or write. It can be one or more of: 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. 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.
Definition at line 94 of file TableTrace.h.
Definition at line 99 of file TableTrace.h.
static int casacore::TableTrace::findTable | ( | const String & | name | ) | [static, private] |
Find the table name in the vector.
-1 is returned if not found.
static void casacore::TableTrace::initColumn | ( | ) | [static, private] |
static void casacore::TableTrace::initOper | ( | ) | [static, private] |
static void casacore::TableTrace::initTracing | ( | ) | [static, private] |
Initialize the tracing mechanism which should be done only once.
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.
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.
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.
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.
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.
static void casacore::TableTrace::trace | ( | int | tabid, | |
const String & | columnName, | |||
char | oper, | |||
const IPosition & | shape | |||
) | [static] |
Write a trace message for an array column.
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.
static void casacore::TableTrace::trace | ( | int | tabid, | |
const String & | columnName, | |||
char | oper, | |||
Int64 | row | |||
) | [static] |
Write a trace message for a scalar row.
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.
static void casacore::TableTrace::traceClose | ( | const String & | tableName | ) | [static] |
If needed, trace closing a table.
It removes the table from the map.
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.
static void casacore::TableTrace::traceFile | ( | int | tabid, | |
const String & | oper | |||
) | [static] |
If needed, trace an operation on a table.
static void casacore::TableTrace::traceRefTable | ( | const String & | parentName, | |
char | oper | |||
) | [static] |
If needed, write a trace message for reftable open, create, or close.
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.
static void casacore::TableTrace::writeRefRows | ( | const RefRows & | rownrs | ) | [static, private] |
Write the RefRows as vector of rows or slices.
static void casacore::TableTrace::writeSlice | ( | const IPosition & | blc, | |
const IPosition & | trc, | |||
const IPosition & | inc | |||
) | [static, private] |
Write the blc, trc, and inc of an array slice.
static void casacore::TableTrace::writeTraceFirst | ( | int | tabid, | |
const String & | name, | |||
char | oper | |||
) | [static, private] |
Write the first part of the trace message.
int casacore::TableTrace::theirColType [static, private] |
Definition at line 182 of file TableTrace.h.
std::vector<Regex> casacore::TableTrace::theirColumns [static, private] |
Definition at line 183 of file TableTrace.h.
int casacore::TableTrace::theirDoTrace [static, private] |
Definition at line 180 of file TableTrace.h.
Mutex casacore::TableTrace::theirMutex [static, private] |
Definition at line 177 of file TableTrace.h.
int casacore::TableTrace::theirOper [static, private] |
Definition at line 181 of file TableTrace.h.
std::ostream* casacore::TableTrace::theirStream [static, private] |
Definition at line 179 of file TableTrace.h.
std::vector<String> casacore::TableTrace::theirTables [static, private] |
Definition at line 184 of file TableTrace.h.
std::ofstream casacore::TableTrace::theirTraceFile [static, private] |
Definition at line 178 of file TableTrace.h.