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