/* automatically generated by posy 7.0 #3 (wk87), do not edit! */

#ifndef	_module_HNMP_defined_
#define	_module_HNMP_defined_

#ifndef	PEPYPATH
#include <isode/psap.h>
#include <isode/pepy/UNIV-types.h>
#else
#include "psap.h"
#include "../pepy/UNIV-types.h"
#endif



#define	type_HNMP_Redirect__PDU	type_HNMP_IpAddress
#define	free_HNMP_Redirect__PDU	free_HNMP_IpAddress

#define	type_HNMP_Announce__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_Announce__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_Delete__PDU	type_HNMP_ObjectId
#define	free_HNMP_Delete__PDU	free_HNMP_ObjectId

#define	type_HNMP_Activate__PDU	type_HNMP_ObjectId
#define	free_HNMP_Activate__PDU	free_HNMP_ObjectId

#define	type_HNMP_Deactivate__PDU	type_HNMP_ObjectId
#define	free_HNMP_Deactivate__PDU	free_HNMP_ObjectId

#define	type_HNMP_SubRelations__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_SubRelations__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_UnsubRelations__PDU	type_HNMP_ObjectId
#define	free_HNMP_UnsubRelations__PDU	free_HNMP_ObjectId

#define	type_HNMP_SendRelations__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_SendRelations__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_SubData__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_SubData__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_UnsubData__PDU	type_HNMP_ObjectId
#define	free_HNMP_UnsubData__PDU	free_HNMP_ObjectId

#define	type_HNMP_SendData__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_SendData__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_SetData__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_SetData__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_GetData__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_GetData__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_GetNextData__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_GetNextData__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_GetWalkData__PDU	type_HNMP_ObjectBlock
#define	free_HNMP_GetWalkData__PDU	free_HNMP_ObjectBlock

#define	type_HNMP_ObjectName	OIDentifier
#define	free_HNMP_ObjectName	oid_free

#define	type_HNMP_ObjectSyntax	PElement
#define	free_HNMP_ObjectSyntax	pe_free

#define	type_HNMP_IpAddress	qbuf
#define	free_HNMP_IpAddress	qb_free

struct type_HNMP_Message {
    integer    version;
#define	int_HNMP_version_version__1	1
#define	int_HNMP_version_version__2	2

    struct qbuf *community;

    integer    from__module__type;

    integer    from__module__id;

    integer    to__module__id;

    integer    msg__id;

    struct type_HNMP_TimeTicks *msg__timestamp;

    struct type_HNMP_PDU *data;
};
int	free_HNMP_Message ();

struct type_HNMP_PDU {
    int     offset;
#define	type_HNMP_PDU_ack	1
#define	type_HNMP_PDU_hello	2
#define	type_HNMP_PDU_welcome	3
#define	type_HNMP_PDU_goodbye	4
#define	type_HNMP_PDU_redirect	5
#define	type_HNMP_PDU_get__key	6
#define	type_HNMP_PDU_send__key	7
#define	type_HNMP_PDU_announce__object	8
#define	type_HNMP_PDU_delete__object	9
#define	type_HNMP_PDU_activate__object	10
#define	type_HNMP_PDU_deactivate__object	11
#define	type_HNMP_PDU_subscribe__relations	12
#define	type_HNMP_PDU_unsubscribe__relations	13
#define	type_HNMP_PDU_send__relations	14
#define	type_HNMP_PDU_subscribe__data	15
#define	type_HNMP_PDU_unsubscribe__data	16
#define	type_HNMP_PDU_send__data	17
#define	type_HNMP_PDU_set__data	18
#define	type_HNMP_PDU_get__data	19
#define	type_HNMP_PDU_get__next__data	20
#define	type_HNMP_PDU_get__walk__data	21

    union {
            struct type_HNMP_Ack__PDU *ack;

            struct type_HNMP_Hello__PDU *hello;

            struct type_HNMP_Welcome__PDU *welcome;

            struct type_HNMP_Goodbye__PDU *goodbye;

            struct type_HNMP_Redirect__PDU *redirect;

            struct type_HNMP_GetKey__PDU *get__key;

            struct type_HNMP_SendKey__PDU *send__key;

            struct type_HNMP_Announce__PDU *announce__object;

            struct type_HNMP_Delete__PDU *delete__object;

            struct type_HNMP_Activate__PDU *activate__object;

            struct type_HNMP_Deactivate__PDU *deactivate__object;

            struct type_HNMP_SubRelations__PDU *subscribe__relations;

            struct type_HNMP_UnsubRelations__PDU *unsubscribe__relations;

            struct type_HNMP_SendRelations__PDU *send__relations;

            struct type_HNMP_SubData__PDU *subscribe__data;

            struct type_HNMP_UnsubData__PDU *unsubscribe__data;

            struct type_HNMP_SendData__PDU *send__data;

            struct type_HNMP_SetData__PDU *set__data;

            struct type_HNMP_GetData__PDU *get__data;

            struct type_HNMP_GetNextData__PDU *get__next__data;

            struct type_HNMP_GetWalkData__PDU *get__walk__data;
    }       un;
};
int	free_HNMP_PDU ();

struct type_HNMP_Ack__PDU {
    integer    parm;
};
int	free_HNMP_Ack__PDU ();

struct type_HNMP_Hello__PDU {
    char    parm;
};
int	free_HNMP_Hello__PDU ();

struct type_HNMP_Welcome__PDU {
    char    parm;
};
int	free_HNMP_Welcome__PDU ();

struct type_HNMP_Goodbye__PDU {
    char    parm;
};
int	free_HNMP_Goodbye__PDU ();

struct type_HNMP_GetKey__PDU {
    char    parm;
};
int	free_HNMP_GetKey__PDU ();

struct type_HNMP_SendKey__PDU {
    char    parm;
};
int	free_HNMP_SendKey__PDU ();

struct type_HNMP_ObjectId {
    integer    parm;
};
int	free_HNMP_ObjectId ();

struct type_HNMP_ObjectBlock {
    integer    object__id;

    struct type_HNMP_VarBindList *variables;
};
int	free_HNMP_ObjectBlock ();

struct type_HNMP_VarBindList {
        struct type_HNMP_VarBind *VarBind;

        struct type_HNMP_VarBindList *next;
};
int	free_HNMP_VarBindList ();

struct type_HNMP_VarBind {
    struct type_HNMP_ObjectName *name;

    struct type_HNMP_ObjectSyntax *value;

    integer    interval;

    struct type_HNMP_TimeTicks *timestamp;
};
int	free_HNMP_VarBind ();

struct type_HNMP_TimeTicks {
    integer    parm;
};
int	free_HNMP_TimeTicks ();
#endif
