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
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.
void setDetailMessages(int newLevel, int low, int high)
Change detail level for all messages with low <= ID number < high.
std::string source_
Current source of message.
CoinOneMessage(int externalNumber, char detail, const char *message)
Normal constructor.
char messageBuffer_[COIN_MESSAGE_HANDLER_MAX_BUFFER_SIZE]
Output buffer.
CoinMessageHandler & operator<<(double doublevalue)
Process a double parameter value.
void addMessage(int messageNumber, const CoinOneMessage &message)
Installs a new message in the specified index position.
char * messageOut_
Position in output buffer.
CoinOneMessage currentMessage_
Current message.
int prefix_
Whether we want prefix (may get more subtle so is int)
CoinMessageHandler & operator<<(const char *stringvalue)
Process a C-style string parameter value.
int numberIntFields() const
Number of integer fields already processed.
void setLogLevel(int value)
Set current log (detail) level.
int numberMessages_
Number of messages.
void setLogLevel(int which, int value)
Set alternative log level value.
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.
CoinOneMessage ** message_
Messages.
CoinMessageHandler & message(int externalNumber, const char *source, const char *msg, char severity, int detail=-1)
Print a complete message.
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.
CoinMessageHandler(const CoinMessageHandler &)
The copy constructor.
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.
char message_[400]
Messages (in correct language) (not all 400 may exist)
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.
CoinMessageHandler(FILE *fp)
Constructor to put to file pointer (won't be closed)
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.
CoinMessageHandler & operator<<(char charvalue)
Process a char parameter value.
char source_[5]
Source (null-terminated string, maximum 4 characters).
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.
int logLevels_[COIN_NUM_LOG]
Log levels.
CoinOneMessage currentMessage() const
Current message.
char * message() const
Return the message text.
CoinMessages(const CoinMessages &)
The copy constructor.
std::vector< std::string > stringValue_
void gutsOfCopy(const CoinMessageHandler &rhs)
The body of the copy constructor and the assignment operator.
void setExternalNumber(int number)
Set message ID number.
int logLevel() const
Get current log (detail) level.
#define COIN_MESSAGE_HANDLER_MAX_BUFFER_SIZE
Maximum length of constructed message (characters)
void setDetail(int level)
Set detail level.
CoinOneMessage()
Default constructor.
int internalNumber_
Internal number for use with enums.
CoinMessageHandler & operator<<(CoinMessageMarker)
Process a marker.
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.
CoinOneMessage(const CoinOneMessage &)
The copy constructor.
CoinMessageHandler & message(int detail=-1)
Start or continue a message.
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.
bool CoinMessageHandlerUnitTest()
A function that tests the methods in the CoinMessageHandler class.
int highestNumber() const
Highest message number (indicates any errors)
char * format_
Format string for message (remainder)
int lengthMessages_
Length of fake CoinOneMessage array.
Language language() const
Language.
char g_format_[8]
Current format for floating point numbers.
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.
CoinMessageHandler & operator<<(const std::string &stringvalue)
Process a STL string parameter value.
#define COIN_NUM_LOG
Log levels will be by type and will then use type given in CoinMessage::class_.
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.