/usr/include/gmsh/GmshMessage.h is in libgmsh-dev 3.0.6+dfsg1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | // Gmsh - Copyright (C) 1997-2017 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to the public mailing list <gmsh@onelab.info>.
#ifndef _GMSH_MESSAGE_H_
#define _GMSH_MESSAGE_H_
#include <map>
#include <vector>
#include <string>
#include <stdarg.h>
#include "GmshConfig.h"
class GmshClient;
namespace onelab{ class client; }
// the external message handler
class GmshMessage{
public:
GmshMessage(){}
virtual ~GmshMessage(){}
virtual void operator()(std::string level, std::string message){}
};
// a class to manage messages
class Msg {
private:
// current cpu number and total number of cpus
static int _commRank, _commSize;
// verbosity level (0: silent except fatal errors, 1: +errors, 2: +warnings,
// 3: +direct, 4: +info, 5 (=normal): +statusbar, 99: debug)
static int _verbosity;
// step (in %) of the progress meter and current progress %
static int _progressMeterStep, _progressMeterCurrent;
// timers
static std::map<std::string, double> _timers;
// report cpu time for each info message?
static bool _infoCpu;
// starting time (gettimeofday at startup)
static double _startTime;
// counters
static int _warningCount, _errorCount, _atLeastOneErrorInRun;
static std::string _firstWarning, _firstError;
// callback
static GmshMessage *_callback;
// command-line and startup time
static std::string _commandLine, _launchDate;
// command-line-specified numbers and strings
static std::map<std::string, std::vector<double> > _commandLineNumbers;
static std::map<std::string, std::string> _commandLineStrings;
// communication with Gmsh when run remotely
static GmshClient *_client;
#if defined(HAVE_ONELAB)
// communication with onelab server
static onelab::client *_onelabClient;
#endif
// executable name
static std::string _execName;
// log file
static std::string _logFileName;
static FILE *_logFile;
public:
Msg() {}
static void Init(int argc, char **argv);
static void Exit(int level);
static int GetCommRank();
static int GetCommSize();
static void SetCommRank(int val);
static void SetCommSize(int val);
static void SetCallback(GmshMessage *callback);
static GmshMessage *GetCallback();
static void Barrier();
static int GetNumThreads();
static void SetNumThreads(int num);
static int GetMaxThreads();
static int GetThreadNum();
static void SetVerbosity(int val);
static void SetLogFile(const std::string &name);
static int GetVerbosity();
static std::string GetLaunchDate();
static std::string GetCommandLineArgs();
static std::map<std::string, std::vector<double> > &GetCommandLineNumbers();
static std::map<std::string, std::string> &GetCommandLineStrings();
static std::string PrintResources(bool printDate, bool printWallTime,
bool printCpu, bool printMem);
static void Fatal(const char *fmt, ...);
static void Error(const char *fmt, ...);
static void Warning(const char *fmt, ...);
static void Info(const char *fmt, ...);
static void RequestRender();
static void Direct(const char *fmt, ...);
static void StatusBar(bool log, const char *fmt, ...);
static void StatusGl(const char *fmt, ...);
static void SetWindowTitle(const std::string &title);
static void Debug(const char *fmt, ...);
static void ProgressMeter(int n, int N, bool log, const char *fmt, ...);
static void SetProgressMeterStep(int step);
static int GetProgressMeterStep();
static void ResetProgressMeter();
static void SetInfoCpu(bool val);
static double &Timer(std::string str);
static void PrintTimers();
static void ResetErrorCounter();
static void PrintErrorCounter(const char *title);
static int GetWarningCount();
static int GetErrorCount();
static std::string GetFirstWarning();
static std::string GetFirstError();
static double GetValue(const char *text, double defaultval);
static std::string GetString(const char *text, std::string defaultval);
static int GetAnswer(const char *question, int defaultval, const char *zero,
const char *one, const char *two=0);
static void InitializeOnelab(const std::string &name, const std::string &sockname="");
static void SetExecutableName(const std::string &name);
static std::string GetExecutableName();
static void LoadOnelabClient(const std::string &name, const std::string &sockName);
static int GetNumOnelabClients();
static GmshClient *GetGmshClient();
#if defined(HAVE_ONELAB)
static onelab::client *GetOnelabClient();
#endif
static void FinalizeOnelab();
static bool UseOnelab();
static void SetOnelabNumber(std::string name, double val, bool visible=true,
bool persistent=false, bool readOnly=false,
int changedValue=3);
static void SetOnelabString(std::string name, std::string val, bool visible=true,
bool persistent=false, bool readOnly=false,
int changedValue=3, const std::string &kind="");
static double GetOnelabNumber(std::string name, double defaultValue=0.,
bool errorIfMissing=false);
static std::string GetOnelabString(std::string name, const std::string &defaultValue="",
bool errorIfMissing=false);
static void AddOnelabStringChoice(std::string name, std::string kind,
std::string value, bool updateValue=true,
bool readOnly=false, bool visible=true);
static void SetOnelabAction(const std::string &action);
static std::string GetOnelabAction();
static void ExchangeOnelabParameter(const std::string &key,
std::vector<double> &val,
std::map<std::string, std::vector<double> > &fopt,
std::map<std::string, std::vector<std::string> > &copt);
static void ExchangeOnelabParameter(const std::string &key,
std::string &val,
std::map<std::string, std::vector<double> > &fopt,
std::map<std::string, std::vector<std::string> > &copt);
static void UndefineOnelabParameter(const std::string &name);
static void RunOnelabClient(const std::string &name, const std::string &exe="");
static void SetOnelabChanged(int value, const std::string &client="Gmsh");
static void ImportPhysicalGroupsInOnelab();
};
// a class to print the progression and estimated remaining time
class MsgProgressStatus
{
private:
int _totalElementToTreat, _currentI, _nextIToCheck;
double _initialTime, _lastTime;
int _lastPercentage;
int _progressMeterStep;
public:
MsgProgressStatus(int numElementToTreat);
~MsgProgressStatus();
void setInitialTime(double time) { _initialTime = time; }
void next();
};
#endif
|