& enumName,
44 const string& packedType,
45 const string& cType,
boolisInteger,
47 const string& valuePrefix,
48 const string& namespaceName,
51:
CParent(namespaceName, dataType, comments),
52m_ExternalName(externalName), m_EnumName(enumName),
53m_PackedType(packedType),
54m_CType(cType), m_IsInteger(isInteger), m_IsBitset(
false),
55m_Values(values), m_ValuesPrefix(valuePrefix)
75 const string& methodPrefix)
const 96 stringmethodPrefix =
ctx.GetMethodPrefix();
97 boolinClass = !methodPrefix.empty();
100 size_tmaxlen = 0, maxwidth=0;
102maxlen =
max(maxlen,
i->GetName().size());
111maxwidth =
max(maxwidth,w);
118hpp <<
" NCBI_PACKED_ENUM_TYPE( "<<
m_PackedType<<
" )";
124hpp <<
string( maxlen -
i->GetName().size(),
' ') <<
" = ";
125hpp.width( maxwidth );
126hpp <<
i->GetValue();
131 i->GetComments().PrintHPPEnum(hpp);
135hpp <<
" NCBI_PACKED_ENUM_END()";
142hpp <<
"DECLARE_INTERNAL_ENUM_INFO";
148<<
"'s attributes (values, names) as defined in spec\n";
154hpp <<
" const NCBI_NS_NCBI::CEnumeratedTypeValues* ENUM_METHOD_NAME";
157 ctx.AddHPPCode(hpp);
162 if( methodPrefix.empty() ) {
177 " SET_ENUM_INTERNAL_NAME(\""<<
names.m_OwnerName<<
"\", ";
178 if( !
names.m_MemberName.empty() )
179cpp <<
"\""<<
names.m_MemberName<<
"\"";
184 if( !module_name.empty() ) {
186 " SET_ENUM_MODULE(\""<<module_name<<
"\");\n";
190 " SET_ENUM_BITSET;\n";
197 " ADD_ENUM_VALUE_FLAGS(\""<<
i->GetName()<<
"\", "<<
m_ValuesPrefix<<
id<<
", "<<
flags<<
");\n";
200 " ADD_ENUM_VALUE(\""<<
i->GetName()<<
"\", "<<
m_ValuesPrefix<<
id<<
");\n";
207 ctx.AddCPPCode(cpp);
212 const string& cType,
214 const string& fileName,
217m_EnumName(enumName),
218m_CType(cType), m_Namespace(ns),
247 const string&
)
const 254 stringref =
"ENUM";
263 if( haveNamespace ) {
static const string & GetExportSpecifier(void)
virtual void GenerateTypeCode(CClassContext &ctx) const override
virtual string GetInitializer(void) const override
virtual const CNamespace & GetNamespace(void) const override
virtual string GetCType(const CNamespace &ns) const override
CEnumRefTypeStrings(const string &enumName, const string &cName, const CNamespace &ns, const string &fileName, const CComments &comments)
virtual const string & GetEnumName(void) const override
virtual string GetRef(const CNamespace &ns) const override
virtual string GetPrefixedCType(const CNamespace &ns, const string &methodPrefix) const override
virtual EKind GetKind(void) const override
virtual string GetPrefixedCType(const CNamespace &ns, const string &methodPrefix) const override
CEnumTypeStrings(const string &externalName, const string &enumName, const string &packedType, const string &cType, bool isInteger, const TValues &values, const string &valuesPrefix, const string &namespaceName, const CDataType *dataType, const CComments &comments)
bool IsBitset(void) const
virtual string GetRef(const CNamespace &ns) const override
virtual void GenerateTypeCode(CClassContext &ctx) const override
list< CEnumDataTypeValue > TValues
virtual string GetCType(const CNamespace &ns) const override
const string & GetExternalName(void) const
virtual string GetInitializer(void) const override
virtual const string & GetEnumName(void) const override
virtual EKind GetKind(void) const override
string GetNamespaceRef(const CNamespace &ns) const
string ToString(void) const
static const CNamespace KEmptyNamespace
void PrintHPPComments(CNcbiOstream &out) const
const string & GetModuleName(void) const
container_type::const_iterator const_iterator
static const struct name_t names[]
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
constexpr bool empty(list< Ts... >) noexcept
Useful/utility classes and methods.
string Identifier(const string &typeName, bool capitalize)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4