packetregistry.h File Reference

Provides access to a registry of all packet types known to Regina. More...

`#include "packet/packettype.h"`
`#include "utilities/registryutils.h"`
`#include "packet/packetregistry-impl.h"`

## Namespaces

| regina
| Contains the entire Regina calculation engine.

## Functions

template<typename FunctionObject >
FunctionObject::ReturnType | regina::forPacket (PacketType packetType, FunctionObject func, typename FunctionObject::ReturnType defaultReturn)
| Allows the user to call a template function whose template parameter matches a given value of PacketType, which is not known until runtime. More...
template<typename VoidFunctionObject >
void | regina::forPacket (PacketType packetType, VoidFunctionObject func)
| Allows the user to call a template function whose template parameter matches a given value of PacketType, which is not known until runtime. More...

## Detailed Description

Provides access to a registry of all packet types known to Regina.

Each time a new packet type is created, the file packetregistry-impl.h must be updated to include it. Instructions on how to do this are included in packetregistry-impl.h.

External routines can access the registry by calling one of the forPacket() template functions defined in packetregistry.h.

Warning
  You should not include this header unless it is necessary, since it will automatically import every header for every packet type in the registry.

Copyright © 1999-2014, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).