/* * $Id: tmmodel.h,v 1.1.1.1 2004/08/25 19:21:33 jan Exp $ * * Copyright (c) 2002 Jan Algermissen * See the file "COPYING" for copying permission. * */ #ifndef TM_MODEL_INCLUDED #define TM_MODEL_INCLUDED #ifdef __cplusplus extern "C" { #endif /** Topic Map Application Definition. * "Model" must be renamed to "Application". * */ typedef struct TMModel *TMModel; #include "tmtk.h" #include "tmlist.h" #include "tmproperty.h" #include "tmsubject.h" /** \defgroup TMModel * The Topic Map Application class. * Topic Map Applications are instances of this structure. * * @{ */ /** Assertion Type Definition. * */ typedef struct TMAssertionType *TMAssertionType; /** Role Type Definition. * */ typedef struct TMRoleType *TMRoleType; /** The non-opaque struct for an assertion type. * FIXME */ struct TMAssertionType { char *description; TMSubject subject; TMList roles; }; /** The non-opaque struct for a role type. * FIXME */ struct TMRoleType { char *description; TMSubject subject; }; struct TMModel { char *name; char *description; TMList properties; TMList atypes; TMList require; }; /** Lookup a property by its name. * FIXME */ TM_API(TMProperty) tm_model_get_property(TMModel self,const char *name); TM_API(void) tm_model_delete(TMPool pool,TMModel *pself); TM_API(void) tm_model_delete_values(TMPool pool,TMModel *pself); /** @} */ #ifdef __cplusplus } #endif #endif /* TM_MODEL_INCLUDED */