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

#ifndef ulmPersistentDisciplines__h
#define ulmPersistentDisciplines__h

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

typedef
	struct ulmPersistentDisciplines_DisciplineRec *ulmPersistentDisciplines_Discipline;

typedef
	void (*ulmPersistentDisciplines_AddProc)(ulmDisciplines_Object, ulmPersistentDisciplines_Discipline);

typedef
	struct ulmPersistentDisciplines_DisciplineRec { /* ulmPersistentObjects_ObjectRec */
		INT64 _prvt0;
		char _prvt1[28];
		INT32 id;
	} ulmPersistentDisciplines_DisciplineRec;

typedef
	struct ulmPersistentDisciplines_InterfaceRec *ulmPersistentDisciplines_Interface;

typedef
	void (*ulmPersistentDisciplines_RemoveProc)(ulmDisciplines_Object, INT32);

typedef
	BOOLEAN (*ulmPersistentDisciplines_SeekProc)(ulmDisciplines_Object, INT32, ulmPersistentDisciplines_Discipline*);

typedef
	struct ulmPersistentDisciplines_InterfaceRec { /* ulmObjects_ObjectRec */
		ulmPersistentDisciplines_AddProc add;
		ulmPersistentDisciplines_RemoveProc remove;
		ulmPersistentDisciplines_SeekProc seek;
	} ulmPersistentDisciplines_InterfaceRec;

typedef
	struct ulmPersistentDisciplines_ObjectRec *ulmPersistentDisciplines_Object;

typedef
	struct ulmPersistentDisciplines_ObjectRec { /* ulmPersistentObjects_ObjectRec */
		INT64 _prvt0;
		char _prvt1[64];
	} ulmPersistentDisciplines_ObjectRec;



import ADDRESS *ulmPersistentDisciplines_DisciplineRec__typ;
import ADDRESS *ulmPersistentDisciplines_ObjectRec__typ;
import ADDRESS *ulmPersistentDisciplines_InterfaceRec__typ;

import void ulmPersistentDisciplines_Add (ulmDisciplines_Object object, ulmPersistentDisciplines_Discipline discipline);
import void ulmPersistentDisciplines_AttachInterface (ulmDisciplines_Object object, ulmPersistentDisciplines_Interface if_);
import void ulmPersistentDisciplines_CreateObject (ulmPersistentDisciplines_Object *object);
import ulmPersistentDisciplines_Discipline ulmPersistentDisciplines_GetSample (INT32 id);
import void ulmPersistentDisciplines_Remove (ulmDisciplines_Object object, INT32 id);
import BOOLEAN ulmPersistentDisciplines_Seek (ulmDisciplines_Object object, INT32 id, ulmPersistentDisciplines_Discipline *discipline);
import INT32 ulmPersistentDisciplines_Unique (ulmPersistentDisciplines_Discipline sample);
import void ulmPersistentDisciplines_UseInterfaceOf (ulmDisciplines_Object object, ulmDisciplines_Object host);
import void *ulmPersistentDisciplines__init(void);


#endif // ulmPersistentDisciplines
