nakedmud-mod/
nakedmud-mod/html/tutorials/
nakedmud-mod/html/tutorials/building_extras/
nakedmud-mod/html/tutorials/c/
nakedmud-mod/html/tutorials/reference/
nakedmud-mod/html/tutorials/scripting/
nakedmud-mod/html/tutorials/scripting_extras/
nakedmud-mod/lib/
nakedmud-mod/lib/help/A/
nakedmud-mod/lib/help/B/
nakedmud-mod/lib/help/C/
nakedmud-mod/lib/help/D/
nakedmud-mod/lib/help/G/
nakedmud-mod/lib/help/H/
nakedmud-mod/lib/help/J/
nakedmud-mod/lib/help/L/
nakedmud-mod/lib/help/M/
nakedmud-mod/lib/help/O/
nakedmud-mod/lib/help/P/
nakedmud-mod/lib/help/R/
nakedmud-mod/lib/help/S/
nakedmud-mod/lib/help/W/
nakedmud-mod/lib/logs/
nakedmud-mod/lib/misc/
nakedmud-mod/lib/players/
nakedmud-mod/lib/pymodules/polc/
nakedmud-mod/lib/txt/
nakedmud-mod/lib/world/
nakedmud-mod/lib/world/zones/examples/
nakedmud-mod/lib/world/zones/examples/mproto/
nakedmud-mod/lib/world/zones/examples/oproto/
nakedmud-mod/lib/world/zones/examples/reset/
nakedmud-mod/lib/world/zones/examples/rproto/
nakedmud-mod/lib/world/zones/examples/trigger/
nakedmud-mod/lib/world/zones/limbo/
nakedmud-mod/lib/world/zones/limbo/room/
nakedmud-mod/lib/world/zones/limbo/rproto/
nakedmud-mod/src/alias/
nakedmud-mod/src/dyn_vars/
nakedmud-mod/src/editor/
nakedmud-mod/src/example_module/
nakedmud-mod/src/help2/
nakedmud-mod/src/set_val/
nakedmud-mod/src/socials/
nakedmud-mod/src/time/
#ifndef PYSOCKET_H
#define PYSOCKET_H
//*****************************************************************************
//
// pysocket.h
//
// Contains a python socket module, and an Socket class that is a python 
// wrapper for NakedMud sockets. If you wish to give python access to more
// features of an socket, it should NOT be done by editing pysocket.c! Use 
// PySocket_addGetSetter and PySocket_addMethod in a new module implementing 
// the feature you want to give Python access to.
//
//*****************************************************************************

// used by pymudsys. Do not touch!
PyTypeObject PySocket_Type;

// initialize sockets for use. This must be called AFTER all other modules
// have added in new get/setters and methods to pyroom
PyMODINIT_FUNC   init_PySocket(void);
PyObject          *newPySocket(SOCKET_DATA *sock);
SOCKET_DATA *PySocket_AsSocket(PyObject *sock);
int             PySocket_AsUid(PyObject *sock);

//
// checks to see if the PyObject is a PySocket
int PySocket_Check(PyObject *value);


//
// getters allow Python to access pieces of the Socket module. Setters allow
// Python to change pieces of the socket module. Getters are called when Python
// tries to get the value of some variable on the object, and setters are called
// when Python tries to set the value of some variable on the object. Get and
// Set do not both need to be supplied. Examples of how to add new getters and
// setters is presented in pysocket.c
void PySocket_addGetSetter(const char *name, void *g, void *s, const char *doc);

//
// Adds a new method function (i.e. void *f) to the Socket class. Name is the 
// name of the function, f is the PyCFunction implementing the new method, 
// flags is the type of method beings used (almost always METH_VARARGS), and
// dog is an (optional) description of what the method does. For examples on
// how to add new methods, see pysocket.c
void PySocket_addMethod(const char *name, void *f, int flags, const char *doc);

#endif // PYSOCKET_H