/* voc 2.1.0 [2025/05/18] for gcc LP64 on slackware xtspaF */

#ifndef ulmRelatedEvents__h
#define ulmRelatedEvents__h

#include "SYSTEM.h"
#include "ulmDisciplines.h"
#include "ulmEvents.h"
#include "ulmObjects.h"

typedef
	struct ulmRelatedEvents_EventRec *ulmRelatedEvents_Event;

typedef
	struct ulmRelatedEvents_EventRec { /* ulmEvents_EventRec */
		ulmEvents_EventType type;
		ulmEvents_Message message;
		char _prvt0[8];
		ulmDisciplines_Object object;
		ulmEvents_Event event;
	} ulmRelatedEvents_EventRec;

typedef
	struct ulmRelatedEvents_QueueRec *ulmRelatedEvents_Queue;

typedef
	struct ulmRelatedEvents_QueueRec { /* ulmObjects_ObjectRec */
		ulmEvents_Event event;
		ulmRelatedEvents_Queue next;
	} ulmRelatedEvents_QueueRec;


import ulmDisciplines_Object ulmRelatedEvents_null;

import ADDRESS *ulmRelatedEvents_EventRec__typ;
import ADDRESS *ulmRelatedEvents_QueueRec__typ;

import void ulmRelatedEvents_AppendQueue (ulmDisciplines_Object object, ulmRelatedEvents_Queue queue);
import BOOLEAN ulmRelatedEvents_EventsPending (ulmDisciplines_Object object);
import void ulmRelatedEvents_Forward (ulmDisciplines_Object from, ulmDisciplines_Object to);
import void ulmRelatedEvents_GetEventType (ulmDisciplines_Object object, ulmEvents_EventType *eventType);
import void ulmRelatedEvents_GetQueue (ulmDisciplines_Object object, ulmRelatedEvents_Queue *queue);
import void ulmRelatedEvents_QueueEvents (ulmDisciplines_Object object);
import void ulmRelatedEvents_Raise (ulmDisciplines_Object object, ulmEvents_Event event);
import void ulmRelatedEvents_Reset (ulmDisciplines_Object object);
import void ulmRelatedEvents_Restore (ulmDisciplines_Object object);
import void ulmRelatedEvents_Save (ulmDisciplines_Object object);
import void *ulmRelatedEvents__init(void);


#endif // ulmRelatedEvents
