# MDC Class Reference

List of all members.

## Detailed Description

The MDC class is similar to the NDC class except that it is based on a map instead of a stack.

It provides mapped diagnostic contexts. A Mapped Diagnostic Context, or MDC in short, is an instrument for distinguishing interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously.

The MDC is managed on a per thread basis. A child thread automatically inherits a copy of the mapped diagnostic context of its parent.

## Public Types

typedef std::map< LogString, LogString > | Map
| String to string stl map.

## Public Member Functions

| MDC (const std::string &key, const std::string &value)
| Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
| ~MDC ()
| MDC (const std::wstring &key, const std::wstring &value)
| Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
| MDC (const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)
| Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
| MDC (const CFStringRef &key, const CFStringRef &value)
| Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

## Static Public Member Functions

static void | put (const std::string &key, const std::string &value)
| Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.
static void | putLS (const LogString &key, const LogString &value)
| Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.
static std::string | get (const std::string &key)
| Get the context identified by the `key` parameter.
static bool | get (const LogString &key, LogString &dest)
| Gets the context identified by the `key` parameter.
static std::string | remove (const std::string &key)
| Remove the the context identified by the `key` parameter.
static void | put (const std::wstring &key, const std::wstring &value)
| Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.
static std::wstring | get (const std::wstring &key)
| Get the context identified by the `key` parameter.
static std::wstring | remove (const std::wstring &key)
| Remove the the context identified by the `key` parameter.
static void | put (const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)
| Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.
static std::basic_string< UniChar > | get (const std::basic_string< UniChar > &key)
| Get the context identified by the `key` parameter.
static std::basic_string< UniChar > | remove (const std::basic_string< UniChar > &key)
| Remove the the context identified by the `key` parameter.
static void | put (const CFStringRef &key, const CFStringRef &value)
| Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.
static CFStringRef | get (const CFStringRef &key)
| Get the context identified by the `key` parameter.
static CFStringRef | remove (const CFStringRef &key)
| Remove the the context identified by the `key` parameter.
static bool | remove (const LogString &key, LogString &prevValue)
| Remove the the context identified by the `key` parameter.
static void | clear ()
| Clear all entries in the MDC.

## Member Typedef Documentation

typedef std::map<LogString, LogString> Map

| String to string stl map.

## Constructor & Destructor Documentation

MDC | ( | const std::string & | key,
|  | const std::string & | value
| ) |

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:

  | key | key
  | value | value.

~MDC | ( |  | ) |

MDC | ( | const std::wstring & | key,
|  | const std::wstring & | value
| ) |

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:

  | key | key
  | value | value.

MDC | ( | const std::basic_string< UniChar > & | key,
|  | const std::basic_string< UniChar > & | value
| ) |

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:

  | key | key
  | value | value.

MDC | ( | const CFStringRef & | key,
|  | const CFStringRef & | value
| ) |

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:

  | key | key
  | value | value.

## Member Function Documentation

static void clear | ( |  | ) | `[static]`

| Clear all entries in the MDC.

static CFStringRef get | ( | const CFStringRef & | key | ) | `[static]`

Get the context identified by the `key` parameter.

This method has no side effects.

Parameters:

  | key | key.

Returns:
  value for key, empty if not set.

static std::basic_string<UniChar> get | ( | const std::basic_string< UniChar > & | key | ) | `[static]`

Get the context identified by the `key` parameter.

This method has no side effects.

Parameters:

  | key | key.

Returns:
  value for key, empty if not set.

static std::wstring get | ( | const std::wstring & | key | ) | `[static]`

Get the context identified by the `key` parameter.

This method has no side effects.

Parameters:

  | key | key.

Returns:
  value for key, empty if not set.

static bool get | ( | const LogString & | key,
|  | LogString & | dest
| ) | `[static]`

Gets the context identified by the `key` parameter.

Parameters:

  | key | context key.
  | dest | destination to which value is appended.

Returns:
  true if key has associated value.

static std::string get | ( | const std::string & | key | ) | `[static]`

Get the context identified by the `key` parameter.

This method has no side effects.

Parameters:

  | key | key.

Returns:
  value for key, empty if not set.

static void put | ( | const CFStringRef & | key,
|  | const CFStringRef & | value
| ) | `[static]`

Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:

  | key | key
  | value | value.

static void put | ( | const std::basic_string< UniChar > & | key,
|  | const std::basic_string< UniChar > & | value
| ) | `[static]`

Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:

  | key | key
  | value | value.

static void put | ( | const std::wstring & | key,
|  | const std::wstring & | value
| ) | `[static]`

Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:

  | key | key
  | value | value.

static void put | ( | const std::string & | key,
|  | const std::string & | value
| ) | `[static]`

Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:

  | key | key
  | value | value.

static void putLS | ( | const LogString & | key,
|  | const LogString & | value
| ) | `[static]`

| Put a context value (the `o` parameter) as identified with the `key` parameter into the current thread's context map. If the current thread does not have a context map it is created as a side effect.

static bool remove | ( | const LogString & | key,
|  | LogString & | prevValue
| ) | `[static]`

Remove the the context identified by the `key` parameter.

Parameters:

  | key | key.
  | prevValue | buffer to which previous value is appended.

Returns:
  true if key existed in MDC.

static CFStringRef remove | ( | const CFStringRef & | key | ) | `[static]`

Remove the the context identified by the `key` parameter.

Parameters:

  | key | key.

Returns:
  value if key had been set, empty if not.

static std::basic_string<UniChar> remove | ( | const std::basic_string< UniChar > & | key | ) | `[static]`

Remove the the context identified by the `key` parameter.

Parameters:

  | key | key.

Returns:
  value if key had been set, empty if not.

static std::wstring remove | ( | const std::wstring & | key | ) | `[static]`

Remove the the context identified by the `key` parameter.

Parameters:

  | key | key.

Returns:
  value if key had been set, empty if not.

static std::string remove | ( | const std::string & | key | ) | `[static]`

Remove the the context identified by the `key` parameter.

Parameters:

  | key | key.

Returns:
  value if key had been set, empty if not.

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

- mdc.h