Go to the documentation of this file.
6 #ifndef CoinMessageHandler_H
7 #define CoinMessageHandler_H
106 detail_ =
static_cast< char >(level);
200 int *messageNumbers);
566 char severity,
int detail = -1);
573 #if COIN_BIG_INDEX == 1
580 #if COIN_BIG_INDEX == 2
638 #define COIN_NUM_LOG 4
639 #define COIN_MESSAGE_HANDLER_MAX_BUFFER_SIZE 1000
694 char *
nextPerCent(
char *start,
const bool initial =
false);
std::vector< double > doubleValue_
values in message
int logLevel(int which) const
Get alternative log level.
char detail_
Will only print if detail matches.
void toCompact()
Moves to compact format.
char * nextPerCent(char *start, const bool initial=false)
Internal function to locate next format code.
std::string source_
Current source of message.
void addMessage(int messageNumber, const CoinOneMessage &message)
Installs a new message in the specified index position.
CoinOneMessage currentMessage_
Current message.
int prefix_
Whether we want prefix (may get more subtle so is int)
int numberIntFields() const
Number of integer fields already processed.
void setLogLevel(int value)
Set current log (detail) level.
int numberMessages_
Number of messages.
char source_[5]
Source (null-terminated string, maximum 4 characters).
int precision()
Current number of significant digits for printing floating point numbers.
virtual CoinMessageHandler * clone() const
Clone.
virtual int print()
Print message, return 0 normally.
int printStatus_
0 - Normal.
CoinMessageHandler()
Constructor.
~CoinOneMessage()
Destructor.
CoinMessages & operator=(const CoinMessages &)
assignment operator.
Class to hold and manipulate an array of massaged messages.
int getClass() const
Returns class.
void setPrecision(unsigned int new_precision)
Set the number of significant digits for printing floating point numbers.
int detail(int messageNumber, const CoinMessages &normalMessage) const
Get detail level of a message.
char severity() const
Severity.
#define COIN_NUM_LOG
Log levels will be by type and will then use type given in CoinMessage::class_.
std::vector< char > charValue_
void setFilePointer(FILE *fp)
Set new file pointer.
void setPrefix(bool yesNo)
Switch message prefix on or off.
CoinMessageHandler & operator=(const CoinMessageHandler &)
Assignment operator.
void replaceMessage(int messageNumber, const char *message)
Replaces the text of the specified message.
CoinBigIndex intValue(int position) const
Values of integer fields already processed.
double doubleValue(int position) const
Values of double fields already processed.
bool CoinMessageHandlerUnitTest()
A function that tests the methods in the CoinMessageHandler class.
Language language_
Language.
int class_
Class - see later on before CoinMessageHandler.
void replaceMessage(const char *message)
Replace message text (e.g., text in a different language)
Base class for message handling.
int externalNumber() const
Get message ID number.
char charValue(int position) const
Values of char fields already processed.
CoinMessageHandler & printing(bool onOff)
Enable or disable printing of an optional portion of a message.
const char * messageBuffer() const
Output buffer.
virtual void checkSeverity()
Check message severity - if too bad then abort.
std::vector< CoinBigIndex > longValue_
Class for one massaged message.
char message_[400]
Messages (in correct language) (not all 400 may exist)
int highestNumber_
Highest message number (indicates any errors)
std::string stringValue(int position) const
Values of string fields already processed.
int externalNumber_
number to print out (also determines severity)
~CoinMessages()
Destructor.
CoinOneMessage currentMessage() const
Current message.
char * message() const
Return the message text.
CoinOneMessage ** message_
Messages.
char * messageOut_
Position in output buffer.
std::vector< std::string > stringValue_
void gutsOfCopy(const CoinMessageHandler &rhs)
The body of the copy constructor and the assignment operator.
#define COIN_MESSAGE_HANDLER_MAX_BUFFER_SIZE
Maximum length of constructed message (characters)
void setExternalNumber(int number)
Set message ID number.
int logLevel() const
Get current log (detail) level.
void setDetail(int level)
Set detail level.
CoinOneMessage()
Default constructor.
int internalNumber_
Internal number for use with enums.
char messageBuffer_[COIN_MESSAGE_HANDLER_MAX_BUFFER_SIZE]
Output buffer.
virtual ~CoinMessageHandler()
Destructor.
CoinMessageHandler & message(int messageNumber, const CoinMessages &messages)
Start a message.
CoinMessages(int numberMessages=0)
Constructor with number of messages.
CoinMessageHandler & operator<<(int intvalue)
Process an integer parameter value.
char g_format_[8]
Current format for floating point numbers.
int logLevels_[COIN_NUM_LOG]
Log levels.
char * format_
Format string for message (remainder)
int g_precision_
Current number of significant digits for floating point numbers.
void setLanguage(Language newlanguage)
Set language.
int finish()
Finish (and print) the message.
int highestNumber() const
Highest message number (indicates any errors)
int lengthMessages_
Length of fake CoinOneMessage array.
Language language() const
Language.
void fromCompact()
Moves from compact format.
Language
Supported languages.
int numberStringFields() const
Number of string fields already processed.
FILE * filePointer() const
Get current file pointer.
void setDetailMessage(int newLevel, int messageNumber)
Change detail level for one message.
int detail() const
Get detail level.
void calcPrintStatus(int msglvl, int msgclass)
Decide if this message should print.
int internalPrint()
Internal printing function.
bool prefix() const
Current setting for printing message prefix.
std::string currentSource() const
Source of current message.
int numberCharFields() const
Number of char fields already processed.
int numberDoubleFields() const
Number of double fields already processed.
void setDetailMessages(int newLevel, int numberMessages, int *messageNumbers)
Change detail level for several messages.
CoinOneMessage & operator=(const CoinOneMessage &)
assignment operator.
friend bool CoinMessageHandlerUnitTest()
A function that tests the methods in the CoinMessageHandler class.