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