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
/
ENUMERAT.H
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-06
|
3KB
|
130 lines
#ifndef ENUMERATION_H
#define ENUMERATION_H
/*
* NIST STEP Core Class Library
* clstepcore/Enumeration.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: Enumeration.h,v 2.0.1.6 1994/06/08 19:44:28 ian Exp $ */
#include <Str.h>
#include <errordesc.h>
#define ENUM_NULL -1
class STEPenumeration {
friend ostream &operator<< ( ostream&, const STEPenumeration& );
protected:
int v; // integer value of enumeration instance
// mapped to a symbolic value in the elements
int set_value (const char * n);
int set_value (const int n);
virtual ~STEPenumeration () {
}
public:
inline virtual int no_elements () const =0;
virtual const char * Name () const =0;
const char * get_value_at (int n) const { return element_at (n); }
virtual const char * element_at (int n) const =0;
Severity EnumValidLevel(const char *value, ErrorDescriptor *err,
int optional, char *tokenList,
int needDelims = 0, int clearError = 1);
Severity EnumValidLevel(istream &in, ErrorDescriptor *err,
int optional, char *tokenList,
int needDelims = 0, int clearError = 1);
const int asInt () const { return v; }
const char * asStr (SCLstring &s) const;
void STEPwrite (ostream& out = cout) const;
const char * STEPwrite (SCLstring &s) const;
Severity StrToVal (const char * s, ErrorDescriptor *err, int optional = 1);
Severity STEPread(istream& in, ErrorDescriptor *err, int optional = 1);
Severity STEPread(const char *s, ErrorDescriptor *err, int optional = 1);
int put (int val) { return set_value (val); }
int put (const char * n) { return set_value (n); }
int is_null () const { return ( v == ENUM_NULL ); }
int set_null() { return put (ENUM_NULL); }
STEPenumeration& operator= (const int);
STEPenumeration& operator= (const STEPenumeration&);
void DebugDisplay (ostream& out =cout) const;
protected:
Severity ReadEnum(istream& in, ErrorDescriptor *err, int AssignVal = 1,
int needDelims = 1);
};
enum LOGICAL { sdaiUNKNOWN, sdaiFALSE, sdaiTRUE };
#define F sdaiFALSE
#define U sdaiUNKNOWN
#define T sdaiTRUE
class Logical :
public STEPenumeration {
public:
const char * Name () const {
return "Logical";
}
Logical (char * val =0) {
set_value (val);
}
Logical (LOGICAL val) {
set_value (val);
}
virtual ~Logical () {
}
inline virtual int no_elements () const {
return 3;
}
operator LOGICAL () const;
virtual const char * element_at (int n) const;
}
;
class Boolean :
public STEPenumeration {
public:
const char * Name () const {
return "Boolean";
}
Boolean (char * val =0) {
set_value (val);
}
Boolean (LOGICAL val);
virtual ~Boolean () {
}
inline virtual int no_elements () const {
return 2;
}
operator LOGICAL () const;
operator int () const;
virtual const char * element_at (int n) const;
}
;
#endif