22#define DRAMA_ALLOW_CPP_STDLIB
23#define DRAMA2_FMT 202609L
30#elif defined(__GNUC__) || defined(GNUC)
38# error "GCC Version too old. drama.hh needs GCC 4.7 or newer"
41# if __GNUC_MINOR__ < 7
42# error "GCC Version too old. drama.hh needs GCC 4.7 or newer"
56#include "drama2_err.h"
62#ifndef RUNNING_DOXYGEN
63#include "drama/fmt/format.h"
113 template<
typename...
Args>
181 extern std::string
GetSymbolVal(
const std::string &name);
212 template <
typename T,
unsigned S>
299 template<
typename T,
typename...
Types>
300#ifndef RUNNING_DOXYGEN
301 D2_FMT_DEPRECATED(
"Replace use of SafePrintf by fmt::format")
351 template<
typename...
Types>
352#ifndef RUNNING_DOXYGEN
353 D2_FMT_DEPRECATED(
"Replace TSafePrintf() by fmt::format")
364 std::stringstream
sstrm;
366 ostream <<
sstrm.str();
394 template<
typename...
Types>
395#ifndef RUNNING_DOXYGEN
396 D2_FMT_DEPRECATED(
"Replace ErsReport() by ErsReportF()")
404 std::stringstream
sstrm;
ErsContext()
Create an ErsContext object, increasing the Ers context.
Definition drama.hh:187
~ErsContext()
Destroy an ErsContext object, decrementing the Ers context.
Definition drama.hh:192
A Class used to manage ERS context.
Definition drama.hh:182
#define DramaTHROW(status_, message_)
Throw a Drama exception.
Definition exception.hh:90
DRAMA 2 Exception classes.
DRAMA 2 include file - GIT ARG implementation.
Header file for a DRAMA 2 class which implements Logging.
DRAMA 2 include file - Message Handler class definition.
void TSafePrintf(std::ostream &ostream, const char *format, Types... args)
Safe formatted write to a stream, thread compatible.
Definition drama.hh:382
const char * Drama2Version
The DRAMA 2 ACMM Release version string.
std::string GetSymbolVal(const std::string &name)
Return the value of an environment variable.
void CreateRunDramaTask()
Create and run a DRAMA task, with standard exception handling.
Definition task.hh:1339
void ErsReport(const std::string &mes, StatusType *status)
Report a std::string via ERS.
unsigned ArraySize(const T(&v)[S])
Return the number of elements in an array.
Definition drama.hh:240
bool GetSymbolExists(const std::string &name)
Return true if an environment variable is set.
void ErsAnnulStack(StatusType *status)
Annul the ERS stack of messages.
void SafePrintf(std::ostream &ostream, const char *str)
Safe formatted write to a stream.
void CheckLockTaken(const std::string func, const std::string &file, const int lineNum)
Ensure the current thread has taken the DRAMA task lock.
void ErsFlushStack(StatusType *status)
Report a std::string via ERS.
const char * Drama2Date
The DRAMA 2 build date.
void ErsReportF(StatusType *status, const fmt::format_string< Args... > fmt, Args &&... args)
Report a std::string via ERS, format using fmt::format.
Definition drama.hh:141
The drama namespace contains all the classes, types etc of the DRAMA 2 implementation.
Definition drama.hh:99
DRAMA 2 include file - Parameter class definition.
DITS parameter system include file - DRAMA 2 interface.
DRAMA 2 include file - Request class definition.
DRAMA 2 include file - Sds class definition.
DRAMA 2 include file - Task class definition.
DRAMA 2 include file - Threaded Action class definition.
DRAMA 2 include file - Threaded monitoring classes.
DRAMA 2 include file - Threaded UFACE class definition.
DRAMA 2 include file - Utility macros, types etc.