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