# pprocess.h File Reference

`#include <ptlib/mutex.h>`
`#include <ptlib/syncpoint.h>`
`#include <ptlib/thread.h>`
`#include <ptlib/pfactory.h>`
`#include <queue>`
`#include <set>`
`#include "unix/ptlib/pprocess.h"`

Go to the source code of this file.

## Classes

class | PTimerList
class | PTimerList::RequestType
class | PProcess
| This class represents an operating system process. More...
class | PProcess::HostSystemURLHandlerInfo
| This class can be used to register various URL types with the host operating system so that URLs will automatically launch the correct application. More...
class | PLibraryProcess
| Class for a process that is a dynamically loaded library. More...
class | PProcessStartup

## Defines

#define | PCREATE_PROCESS(cls)
| Create a process.
#define | PDECLARE_PROCESS(cls, ancestor, manuf, name, major, minor, status, build)

## Typedefs

typedef PFactory< PProcessStartup > | PProcessStartupFactory

## Define Documentation

#define PCREATE_PROCESS | ( | cls |  | ) |

Value:

    int main(int argc, char ** argv, char ** envp) \
        { \
          cls *pInstance = new cls(); \
          pInstance->PreInitialise(argc, argv, envp); \
          int terminationValue = pInstance->InternalMain(); \
          delete pInstance; \
          return terminationValue; \
        }

Create a process.

This macro is used to create the components necessary for a user PWLib process. For a PWLib program to work correctly on all platforms the main() function must be defined in the same module as the instance of the application.

#define PDECLARE_PROCESS | ( | cls,
|  | ancestor,
|  | manuf,
|  | name,
|  | major,
|  | minor,
|  | status,
|  | build |  | ) |

Value:

    class cls : public ancestor { \
        PCLASSINFO(cls, ancestor); \
        public: \
          cls() : ancestor(manuf, name, major, minor, status, build) { } \
        private: \
          virtual void Main(); \
      };

## Typedef Documentation

typedef PFactory<PProcessStartup> PProcessStartupFactory