home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftptest.leeds.ac.uk
/
2015.02.ftptest.leeds.ac.uk.tar
/
ftptest.leeds.ac.uk
/
bionet
/
CAE-GROUP
/
SCL-WIN3x
/
SCL.EXE
/
REGISTRY.H
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-06
|
2KB
|
65 lines
#ifndef _REGISTRY_H
#define _REGISTRY_H
/*
* NIST STEP Core Class Library
* clstepcore/Registry.h
* February, 1994
* K. C. Morris
* David Sauder
* Development of this software was funded by the United States Government,
* and is not subject to copyright.
*/
/* $Id: Registry.h,v 2.0.1.2 1994/05/10 21:01:34 kc Exp $ */
#include <Sentity.h>
#include <errordesc.h>
#include <scl_hash.h>
typedef struct Hash_Table * HashTable;
class Registry;
extern char * EntityClassName ( char *);
typedef void (* CF_init) (Registry &); // pointer to creation initialization
class Registry {
protected:
HashTable primordialSwamp; // dictionary of EntityDescriptors
HashTable active_schemas; // dictionary of SchemaDescriptors
HashTable active_types; // dictionary of TypeDescriptors
int entity_cnt;
HashEntry cur_entity;
HashEntry cur_schema;
public:
Registry (CF_init initFunct);
~Registry ();
void DeleteContents (); // CAUTION: calls delete on all the descriptors
const EntityDescriptor* FindEntity (const char *, int check_case =1) const;
const SchemaDescriptor* FindSchema (const char *, int check_case =1) const;
const TypeDescriptor* FindType (const char *, int check_case =1) const;
void AddEntity (const EntityDescriptor&);
void AddSchema (const SchemaDescriptor&);
void AddType (const TypeDescriptor&);
void RemoveEntity (const char *);
void RemoveSchema (const char *);
void RemoveType (const char *);
int GetEntityCnt ();
void ResetEntities ();
const EntityDescriptor * NextEntity ();
void ResetSchemas () ;
const SchemaDescriptor * NextSchema ();
STEPentity* ObjCreate (const char * nm, int check_case =1) const;
};
#endif //_REGISTRY_H