trick/trick_source/codegen/Interface_Code_Gen/EnumValues.hh

63 lines
1.5 KiB
C++
Raw Normal View History

2015-02-26 15:02:31 +00:00
#ifndef ENUMVALUES_HH
#define ENUMVALUES_HH
2015-02-26 15:02:31 +00:00
#include <string>
#include <vector>
#include <utility>
#include "ConstructValues.hh"
/**
EnumValues holds information describing a class found with ICG. The
information includes the name and location of the class, properties of the
class, and a vector list of the member data contained in the class.
The class also provides print routines for each function in the io_src.
@author Alexander S. Lin
@date July 2012
*/
class EnumValues : public ConstructValues {
public:
typedef std::pair< std::string , long long > NameValuePair ;
EnumValues() ;
void addEnum(std::string in_name , long long in_val) ;
void addFullyQualifiedEnum(std::string in_name , long long in_val) ;
2015-02-26 15:02:31 +00:00
void setHasDefinition( bool in ) ;
bool getHasDefinition() ;
const std::vector<NameValuePair>& getPairs() {
return enum_values;
}
const std::vector<NameValuePair>& getFullyQualifiedPairs() {
return fully_qualified_enum_values;
}
2016-10-31 14:10:33 +00:00
friend std::ostream & operator << (std::ostream & os , EnumValues & ev ) ;
2015-02-26 15:02:31 +00:00
private:
/** List of enums and their values */
std::vector< NameValuePair > enum_values ;
/** List of fully qualified enums and their values
This is used to generate the S_sie.resource file. */
std::vector< NameValuePair > fully_qualified_enum_values ;
2015-02-26 15:02:31 +00:00
bool has_definition ;
} ;
#endif