## Public API Reference

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

- File List
- File Members

# iutil/objreg.h File Reference

Object registry interface. More...

`#include "csutil/ref.h"`
`#include "csutil/scf_interface.h"`

Go to the source code of this file.

## Classes

struct | iObjectRegistry
| This interface serves as a registry of other objects. More...
struct | iObjectRegistryIterator
| Use an instance of this class to iterate over objects in the object registry. More...

## Defines

#define | CS_QUERY_REGISTRY(Reg, Interface) (csQueryRegistry<Interface>(Reg))
#define | CS_QUERY_REGISTRY_TAG(Reg, Tag) (csQueryRegistryTag(Reg, Tag))
#define | CS_QUERY_REGISTRY_TAG_INTERFACE(Reg, Tag, Interface) (csQueryRegistryTagInterface<Interface>(Reg, Tag))

## Functions

template<class Interface>
csPtr< Interface > | csQueryRegistry (iObjectRegistry *Reg)
| Query an interface from the registry.
csPtr< iBase > | csQueryRegistryTag (iObjectRegistry *Reg, const char *Tag)
| Query an object from the registry, with a tag specified by the user.
template<class Interface>
csPtr< Interface > | csQueryRegistryTagInterface (iObjectRegistry *Reg, const char *Tag)
| Query an interface from the registry, with a tag specified by the user.

## Detailed Description

Object registry interface.

Definition in file objreg.h.

## Define Documentation

#define CS_QUERY_REGISTRY | ( | Reg,
|  | Interface |  | ) | (csQueryRegistry<Interface>(Reg))

Deprecated:
  Compatibility macro

See also:
  csQueryRegistry

Definition at line 215 of file objreg.h.

Referenced by csDebugImageWriter::DebugImageWrite(), and csReporterHelper::ReportV().

#define CS_QUERY_REGISTRY_TAG | ( | Reg,
|  | Tag |  | ) | (csQueryRegistryTag(Reg, Tag))

Deprecated:
  Compatibility macro

See also:
  csQueryRegistryTag

Definition at line 210 of file objreg.h.

#define CS_QUERY_REGISTRY_TAG_INTERFACE | ( | Reg,
|  | Tag,
|  | Interface |  | ) | (csQueryRegistryTagInterface<Interface>(Reg, Tag))

Deprecated:
  Compatibility macro

See also:
  csQueryRegistryTagInterface

Definition at line 220 of file objreg.h.

## Function Documentation

template<class Interface>
csPtr<Interface> csQueryRegistry | ( | iObjectRegistry * | Reg | ) | `[inline]`

| Query an interface from the registry. The tag is the name of the interface. Definition at line 161 of file objreg.h. References iBase::DecRef(), iObjectRegistry::Get(), and iBase::QueryInterface().

csPtr<iBase> csQueryRegistryTag | ( | iObjectRegistry * | Reg,
|  | const char * | Tag
| ) | `[inline]`

| Query an object from the registry, with a tag specified by the user. Definition at line 180 of file objreg.h. References iObjectRegistry::Get().

template<class Interface>
csPtr<Interface> csQueryRegistryTagInterface | ( | iObjectRegistry * | Reg,
|  | const char * | Tag
| ) | `[inline]`

| Query an interface from the registry, with a tag specified by the user. Definition at line 189 of file objreg.h. References iBase::DecRef(), iObjectRegistry::Get(), and iBase::QueryInterface().