6 #ifndef CoinMessageHandler_H
7 #define CoinMessageHandler_H
99 {
detail_=
static_cast<char> (level);}
184 int * messageNumbers);
336 virtual int print() ;
514 char severity,
int detail = -1) ;
521 #if COIN_BIG_INDEX==1
528 #if COIN_BIG_INDEX==2
586 #define COIN_NUM_LOG 4
587 #define COIN_MESSAGE_HANDLER_MAX_BUFFER_SIZE 1000
643 char *nextPerCent(
char *start,
const bool initial =
false) ;
649 int internalPrint() ;
652 void calcPrintStatus(
int msglvl,
int msgclass) ;
char source_[5]
Source (null-terminated string, maximum 4 characters).
FILE * filePointer() const
Get current file pointer.
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 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 setPrefix(bool yesNo)
Switch message prefix on or off.
std::vector< double > doubleValue_
values in message
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.
std::vector< char > charValue_
void setDetail(int level)
Set detail level.
int lengthMessages_
Length of fake CoinOneMessage array.
~CoinMessages()
Destructor.
void setLanguage(Language newlanguage)
Set language.
bool prefix() const
Current setting for printing message prefix.
std::vector< std::string > stringValue_
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.
CoinOneMessage ** message_
Messages.
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.
std::vector< int > longValue_
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)
int intValue(int position) const
Values of integer fields already processed.
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.
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.
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.