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);
int numberDoubleFields() const
Number of double fields already processed.
char source_[5]
Source (null-terminated string, maximum 4 characters).
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)
int numberStringFields() const
Number of string fields already processed.
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 numberIntFields() const
Number of integer fields already processed.
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_.
int getClass() const
Returns 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.
char charValue(int position) const
Values of char fields already processed.
int printStatus_
0 - Normal.
int detail(int messageNumber, const CoinMessages &normalMessage) const
Get detail level of a message.
char severity() const
Severity.
CoinOneMessage & operator=(const CoinOneMessage &)
assignment operator.
CoinOneMessage currentMessage() const
Current message.
CoinMessageHandler & operator<<(int intvalue)
Process an integer parameter value.
int externalNumber_
number to print out (also determines severity)
FILE * filePointer() const
Get current file pointer.
Language language() const
Language.
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.
const char * messageBuffer() const
Output buffer.
CoinMessageHandler()
Constructor.
std::string stringValue(int position) const
Values of string fields already processed.
CoinMessageHandler & operator=(const CoinMessageHandler &)
Assignment operator.
CoinMessages(int numberMessages=0)
Constructor with number of messages.
Language language_
Language.
void fromCompact()
Moves from compact format.
double doubleValue(int position) const
Values 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.
CoinOneMessage currentMessage_
Current message.
int highestNumber() const
Highest message number (indicates any errors)
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.
std::vector< CoinBigIndex > longValue_
CoinOneMessage ** message_
Messages.
int numberCharFields() const
Number of char fields already processed.
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.
virtual int print()
Print message, return 0 normally.
virtual CoinMessageHandler * clone() const
Clone.
int highestNumber_
Highest message number (indicates any errors)
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 logLevel(int which) const
Get alternative log level.
char * message() const
Return the message text.
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.
CoinMessageHandler & printing(bool onOff)
Enable or disable printing of an optional portion of a message.
std::vector< double > doubleValue_
values in message
int logLevel() const
Get current log (detail) level.
void addMessage(int messageNumber, const CoinOneMessage &message)
Installs a new message in the specified index position.
char detail_
Will only print if detail matches.
std::string currentSource() const
Source of current message.
CoinOneMessage()
Default constructor.
int detail() const
Get detail level.
int numberMessages_
Number of messages.
void toCompact()
Moves to compact format.
char g_format_[8]
Current format for floating point numbers.
int externalNumber() const
Get message ID number.
friend bool CoinMessageHandlerUnitTest()
A function that tests the methods in the CoinMessageHandler class.
~CoinOneMessage()
Destructor.
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)
CoinBigIndex intValue(int position) const
Values of integer fields already processed.
int precision()
Current number of significant digits for printing floating point numbers.