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

#ifndef ulmResources__h
#define ulmResources__h

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

typedef
	struct ulmResources_EventRec *ulmResources_Event;

typedef
	struct ulmResources_EventRec { /* ulmEvents_EventRec */
		ulmEvents_EventType type;
		ulmEvents_Message message;
		char _prvt0[8];
		INT8 change;
		ulmDisciplines_Object resource;
	} ulmResources_EventRec;

typedef
	struct ulmResources_KeyRec *ulmResources_Key;

typedef
	struct ulmResources_KeyRec { /* ulmObjects_ObjectRec */
		INT64 _prvt0;
		char _prvt1[8];
	} ulmResources_KeyRec;



import ADDRESS *ulmResources_EventRec__typ;
import ADDRESS *ulmResources_KeyRec__typ;

import BOOLEAN ulmResources_Alive (ulmDisciplines_Object resource);
import void ulmResources_Attach (ulmDisciplines_Object resource, ulmResources_Key *key);
import void ulmResources_DependsOn (ulmDisciplines_Object dependant, ulmDisciplines_Object resource);
import void ulmResources_Detach (ulmDisciplines_Object resource, ulmResources_Key key);
import void ulmResources_Notify (ulmDisciplines_Object resource, INT8 change);
import BOOLEAN ulmResources_Stopped (ulmDisciplines_Object resource);
import void ulmResources_TakeInterest (ulmDisciplines_Object resource, ulmEvents_EventType *eventType);
import BOOLEAN ulmResources_Terminated (ulmDisciplines_Object resource);
import void *ulmResources__init(void);


#endif // ulmResources
