ENSDF++ 1.1
An easy, fast and simple way to run querys towards the ENSDF database, written in C++.
Public Member Functions | Private Attributes
VerbosePrinter Class Reference

A class used to print messages to the user, which prints all messages it receives with a verbosity level lower than a set level. More...

#include <VerbosePrinter.h>

List of all members.

Public Member Functions

 VerbosePrinter (int verbosityLevel)
 Creates a VerbosePrinter with the stated verbosityLevel.
 VerbosePrinter (int verbosityLevel, string fileName)
 Creates a VerbosePrinter with the stated verbosityLevel and redirects output to the file fileName.
 ~VerbosePrinter ()
 Destroys the printer.
bool print (int verbosityLevel, const char *,...)
 Print message to user or file.
bool va_print (int verbosityLevel, const char *, va_list args)
 Print message to user or file.
list
< VerbosePrinterEventEnabled * > 
getConnectedEventClasses ()
 VerbosePrinterEventEnabled automatically registers with the VerbosePrinter object, and the VerbosePrinterEventEnabled object is added to this list.
bool registerConnectedEventClass (VerbosePrinterEventEnabled *myEvent)
 Registers a connected event class (of type VerbosePrinterEventEnabled).
bool unRegisterConnectedEventClass (VerbosePrinterEventEnabled *myEvent)
 Unregisters a connected event class.
int getVerbosityLevel () const
 Returns the verbosity level of this VerbosePrinter.

Private Attributes

list
< VerbosePrinterEventEnabled * > 
myConnectedEventClasses
 The connected event classes.
int myVerbosityLevel
 The verbosity level of the printer.
FILE * myFile
 The file to print to, if any.

Detailed Description

A class used to print messages to the user, which prints all messages it receives with a verbosity level lower than a set level.

Classes wanting to use this should extend VerbosePrinterEventEnabled. They can call the print(int, char*, ...) or va_print(int, char, va_list, ...) functions to print messages.

Author:
Rikard Lundmark

Definition at line 45 of file VerbosePrinter.h.


Constructor & Destructor Documentation

VerbosePrinter::VerbosePrinter ( int  verbosityLevel)

Creates a VerbosePrinter with the stated verbosityLevel.

Parameters:
verbosityLevelThe verbosity level.

Definition at line 3 of file VerbosePrinter.cpp.

References myFile, myVerbosityLevel, and NULL.

{
  myFile = NULL;
  myVerbosityLevel = verbosityLevel;
}
VerbosePrinter::VerbosePrinter ( int  verbosityLevel,
string  fileName 
)

Creates a VerbosePrinter with the stated verbosityLevel and redirects output to the file fileName.

Parameters:
verbosityLevelThe verbosity level.
fileNameThe filename to redirect the output to.

Definition at line 9 of file VerbosePrinter.cpp.

References myFile, and myVerbosityLevel.

{
  myVerbosityLevel = verbosityLevel;
  myFile = fopen(fileName.c_str(), "w");
}

Member Function Documentation

list< VerbosePrinterEventEnabled * > VerbosePrinter::getConnectedEventClasses ( )

VerbosePrinterEventEnabled automatically registers with the VerbosePrinter object, and the VerbosePrinterEventEnabled object is added to this list.

Returns:
all the connected VerbosePrinterEventEnabled classes.

Definition at line 51 of file VerbosePrinter.cpp.

References myConnectedEventClasses.

int VerbosePrinter::getVerbosityLevel ( ) const

Returns the verbosity level of this VerbosePrinter.

Returns:
The verbosity level.

Definition at line 74 of file VerbosePrinter.cpp.

References myVerbosityLevel.

{
  return myVerbosityLevel;
}
bool VerbosePrinter::print ( int  verbosityLevel,
const char *  message,
  ... 
)

Print message to user or file.

Returns:
True if the message was printed, false if it was not.
Note:
No messages with a too high verbosity level are printed.
Parameters:
verbosityLevelThe verbosity level to print with.
messageThe string to print

Definition at line 21 of file VerbosePrinter.cpp.

References va_print().

Referenced by proceed_interact(), and proceed_nointeract().

{
  va_list args;
  va_start(args, message);
  bool retval = va_print(verbosityLevel, message, args);
  va_end(args);
  return retval;
}
bool VerbosePrinter::registerConnectedEventClass ( VerbosePrinterEventEnabled myEvent)

Registers a connected event class (of type VerbosePrinterEventEnabled).

Parameters:
myEventThe VerbosePrinterEventEnabled to register.

Definition at line 56 of file VerbosePrinter.cpp.

References myConnectedEventClasses.

Referenced by VerbosePrinterEventEnabled::registerListener().

{
  if(find(myConnectedEventClasses.begin(), myConnectedEventClasses.end(), 
          myEvent)==myConnectedEventClasses.end())
    {
      myConnectedEventClasses.push_back(myEvent);
      return true;
    }
  else
    return false;
}
bool VerbosePrinter::unRegisterConnectedEventClass ( VerbosePrinterEventEnabled myEvent)

Unregisters a connected event class.

Note:
This registered class is not currently being used for anything.
Returns:
True if the class was removed.
Parameters:
myEventRegisters a connected event class.
Note:
This registered class is not currently being used for anything.
Returns:
True if the class was registered.

Definition at line 68 of file VerbosePrinter.cpp.

References myConnectedEventClasses.

Referenced by VerbosePrinterEventEnabled::removeListener().

{
  myConnectedEventClasses.remove(myEvent);
  return true;
}
bool VerbosePrinter::va_print ( int  verbosityLevel,
const char *  message,
va_list  args 
)

Print message to user or file.

Returns:
True if the message was printed, false if it was not.
Note:
No messages with a too high verbosity level are printed.
Parameters:
verbosityLevelThe verbosity level to print with.
messageThe string to print.
argsOther arguments to send to vprintf.

Definition at line 30 of file VerbosePrinter.cpp.

References myFile, myVerbosityLevel, and NULL.

Referenced by print(), and VerbosePrinterEventEnabled::vPrint().

{
  if(verbosityLevel<=myVerbosityLevel)
    {
      if(myFile!=NULL)
        {
          vfprintf( myFile, message, args );
        }
      else
        {
          vprintf( message, args );
          fflush(stdout);
        }
      return true;
    }
  else
    {
      return false;
    }
}

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Enumerations Enumerator Defines

Back to the main page of the Precalibrated Ion Beam Identification Detector project

Created by Rikard Lundmark