We want to be consistent with the previous layout, to avoid needlessly breaking existing codes. The header update means client codes are not required to include all of the stepcode library includes explicitly - i.e., stepcode itself does not force this requirement with its own internal includes. However, if client codes do not want to add the library prefixes to their own includes as we have for stepcode, they should still be able to add the various includes and work as before. Adjust the include directory names accordingly.
59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
#ifndef ATTRDESCRIPTORLIST_H
|
|
#define ATTRDESCRIPTORLIST_H
|
|
|
|
///header for list, node, and iterator
|
|
|
|
#include "SingleLinkList.h"
|
|
|
|
#include "sc_export.h"
|
|
|
|
class AttrDescriptor;
|
|
|
|
class SC_CORE_EXPORT AttrDescLinkNode : public SingleLinkNode {
|
|
private:
|
|
protected:
|
|
AttrDescriptor * _attrDesc;
|
|
public:
|
|
AttrDescLinkNode();
|
|
virtual ~AttrDescLinkNode();
|
|
|
|
const AttrDescriptor * AttrDesc() const {
|
|
return _attrDesc;
|
|
}
|
|
void AttrDesc( AttrDescriptor * ad ) {
|
|
_attrDesc = ad;
|
|
}
|
|
};
|
|
|
|
class SC_CORE_EXPORT AttrDescriptorList : public SingleLinkList {
|
|
private:
|
|
protected:
|
|
public:
|
|
AttrDescriptorList();
|
|
virtual ~AttrDescriptorList();
|
|
|
|
virtual SingleLinkNode * NewNode() {
|
|
return new AttrDescLinkNode;
|
|
}
|
|
|
|
AttrDescLinkNode * AddNode( AttrDescriptor * ad );
|
|
};
|
|
|
|
class SC_CORE_EXPORT AttrDescItr {
|
|
protected:
|
|
const AttrDescriptorList & adl;
|
|
const AttrDescLinkNode * cur;
|
|
|
|
public:
|
|
AttrDescItr( const AttrDescriptorList & adList );
|
|
virtual ~AttrDescItr();
|
|
|
|
void ResetItr() {
|
|
cur = ( AttrDescLinkNode * )( adl.GetHead() );
|
|
}
|
|
|
|
const AttrDescriptor * NextAttrDesc();
|
|
};
|
|
|
|
#endif //ATTRDESCRIPTORLIST_H
|