| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iReporter Struct Reference
[Utilities]

This is the interface for the error/message reporter plugin. More...

`#include <ivaria/reporter.h>`

Inheritance diagram for iReporter:

[legend]
List of all members.

## Public Member Functions
virtual void | AddReporterListener (iReporterListener *listener)=0
| Add a listener that listens to new reports.
virtual void | Clear (const char *mask)=0
| Clear all messages in the reporter for which the id matches with the given mask.
virtual void | Clear (int severity=-1)=0
| Clear all messages in the reporter.
virtual bool | FindReporterListener (iReporterListener *listener)=0
| Check if the listener is already on the list.
virtual csPtr< iReporterIterator > | GetMessageIterator ()=0
| Get an iterator to iterate over all messages.
virtual void | RemoveReporterListener (iReporterListener *listener)=0
| Remove a listener once.
virtual void | Report (int severity, const char *msgId, const char *description,...)=0
| Report something.
void | ReportBug (const char *msgId, const char *description,...)
| Report bug.
void | ReportDebug (const char *msgId, const char *description,...)
| Report debug.
void | ReportError (const char *msgId, const char *description,...)
| Report error.
void | ReportNotify (const char *msgId, const char *description,...)
| Report notification.
virtual void | ReportV (int severity, const char *msgId, const char *description, va_list)=0
| Report something.
void | ReportWarning (const char *msgId, const char *description,...)
| Report warning.

## Detailed Description

This is the interface for the error/message reporter plugin.

Note. This plugin does not actually print out or display messages in any way. The reporter simply collects messages and sends them out to interested partners. Typically the standard reporter listener (iStandardReporterListener) is such a plugin. It will print out the messages that arrive on the reporter.

Main creators of instances implementing this interface:

- Reporter plugin (crystalspace.utilities.reporter)

Main ways to get pointers to this interface:

- CS_QUERY_REGISTRY()

Main users of this interface:

- Entire CS and application.
- csReporterHelper

Definition at line 152 of file reporter.h.

## Member Function Documentation

virtual void iReporter::AddReporterListener | ( | iReporterListener * | listener | ) | `[pure virtual]`

Add a listener that listens to new reports.

Listeners can optionally remove reports too. This function does not check if the listener is already there and will add it again if so. The listener will be IncRef()'ed by this function.

virtual void iReporter::Clear | ( | const char * | mask | ) | `[pure virtual]`

Clear all messages in the reporter for which the id matches with the given mask.

The mask can contain '*' or '?' wildcards. This can be used to clear all messages from some source like: Clear("crystalspace.sprite2dloader.*")

virtual void iReporter::Clear | ( | int | severity = `-1` | ) | `[pure virtual]`

Clear all messages in the reporter.

If severity is -1 then all will be deleted. Otherwise only messages of the specified severity will be deleted.

virtual bool iReporter::FindReporterListener | ( | iReporterListener * | listener | ) | `[pure virtual]`

Check if the listener is already on the list.

virtual csPtr<iReporterIterator> iReporter::GetMessageIterator | ( |  | ) | `[pure virtual]`

Get an iterator to iterate over all messages.

This will make a copy of all messages so that the reporter is not locked.

virtual void iReporter::RemoveReporterListener | ( | iReporterListener * | listener | ) | `[pure virtual]`

Remove a listener once.

The listener will be DecRef()'ed by this function. If the listener is on the list multiple times only one occurrence is removed. If the listener cannot be found on the list no DecRef() will happen.

virtual void iReporter::Report | ( | int | severity,
|  | const char * | msgId,
|  | const char * | description,
|  |  | ... |
| ) |  |  | `[pure virtual]`

Report something.

The given message ID should be formed like: 'crystalspace.{source}.{type}.{detail}'. Example: 'crystalspace.sprite2dloader.parse.material'.

See also:
  Notes about string formatting in Crystal Space

virtual void iReporter::ReportV | ( | int | severity,
|  | const char * | msgId,
|  | const char * | description,
|  | va_list |  |
| ) |  |  | `[pure virtual]`

Report something.

va_list version.

See also:
  Notes about string formatting in Crystal Space

The documentation for this struct was generated from the following file:

- ivaria/reporter.h