# pnat.h File Reference

`#include <ptlib/sockets.h>`
`#include <ptlib/plugin.h>`
`#include <ptlib/pluginmgr.h>`

Go to the source code of this file.

## Classes

class | PNatMethod
| PNatMethod Base Network Address Traversal Method class All NAT Traversal Methods are derived off this class. More...
struct | PNatMethod::PortInfo
class | PNatStrategy
| PNatStrategy The main container for all NAT traversal Strategies. More...
class | PNatMethodServiceDescriptor< className >

## Defines

#define | PDECLARE_NAT_METHOD(method, cls) PFACTORY_CREATE(PFactory<PNatMethod>, cls, #method)
#define | PCREATE_NAT_PLUGIN(name)

## Functions

| PLIST (PNatList, PNatMethod)
| PFACTORY_LOAD (PSTUNClient)

## Define Documentation

#define PCREATE_NAT_PLUGIN | ( | name |  | ) |

Value:

    static PNatMethodServiceDescriptor<PNatMethod_##name> PNatMethod_##name##_descriptor; \
      PCREATE_PLUGIN_STATIC(name, PNatMethod, &PNatMethod_##name##_descriptor)

#define PDECLARE_NAT_METHOD | ( | method,
|  | cls |  | ) | PFACTORY_CREATE(PFactory<PNatMethod>, cls, #method)

## Function Documentation

PFACTORY_LOAD | ( | PSTUNClient |  | ) |

PLIST | ( | PNatList | ,
|  | PNatMethod |  |
| ) |  |  |