/* %Z%%M% %I% %E% */

/*
 * Copyright (c) 1992, 1995 by Wayne C. Gramlich.
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * for any purpose is hereby granted without fee provided that the above
 * copyright notice and this permission are retained.  The author makes
 * no representations about the suitability of this software for any purpose.
 * It is provided "as is" without express or implied warranty.
 */

/* This file declares the object manipulation routines: */

#ifndef OBJECT_EXPORTS_H
#define OBJECT_EXPORTS_H

#ifndef CALL_TYPES_H
#include "call_types.h"
#endif

#ifndef GEN_TYPES_H
#include "gen_types.h"
#endif

#ifndef HEAP_TYPES_H
#include "heap_types.h"
#endif

#ifndef OBJECT_TYPES_H
#include "object_types.h"
#endif

#ifndef STR_TYPES_H
#include "str_types.h"
#endif

#ifndef TYPE_TYPES_H
#include "type_types.h"
#endif

#ifndef UNIX_STDIO_H
#include "unix_stdio.h"
#endif

extern void		object_create(Object_table, Str,
				      Type_ref, Type_def, int);
extern void		objects_gen(Object_table, Gen);
extern void		object_ref_delete(Object_ref);
extern Object_ref	object_ref_insert(Object_table,
					  Str, Type_ref, Type_ref, int);
extern Object_ref	object_ref_lookup(Object_table, Str, Type_ref);
extern void		object_table_convert(Object_table, Convert);
extern Object_table	object_table_create(Msg, Type_tables, Heap);
extern void		object_table_dump(Object_table, Stdio);
extern void		object_table_extern_gen(Object_table, Gen);
extern int		object_table_module_objects_gen(Object_table, Gen);
extern void		object_table_read(Object_table, Stdio);
extern void		object_table_write(Object_table, Stdio, Type_tables);


#endif /* OBJECT_EXPORTS_H */
