blob: faec700753dc4e04a68501fd0b5355cc63f78485 [file] [log] [blame]
#ifndef Sfcc_CimcIterator_h
#define Sfcc_CimcIterator_h
#include "cimcdt.h"
#include "cimcft.h"
#include "sfccSPtr.h"
#include "sfccPtr.h"
class CimcClass;
class CimcInstance;
class CimcString;
class CimData;
typedef class sfccPtr<CimcString, cimcString> CimString;
typedef class sfccPtr<CimcClass, cimcConstClass> CimClass;
typedef class sfccPtr<CimcInstance, cimcInstance> CimInstance;
class CimcIterator {
friend class sfccSPtr<CimcIterator>;
friend class CimcInstance;
friend class CimcClass;
protected:
enum iType {
instQual,
instProp,
instPropQual,
clsQual,
clsProp,
clsPropQual,
clsMeth,
clsMethQual,
clsMethParm,
clsMethParmQual
};
private:
CimClass *cls;
CimInstance *inst;
char *pName;
char *mName;
int count,next;
iType type;
int refCount;
protected:
CimcIterator();
void set(CimcClass *c, char* pn, char* mn, int c, iType t);
void set(CimcInstance *i, char* pn, char* mn, int c, iType t);
public:
~CimcIterator();
int hasNext();
CimData getNext(CimString **name);
CimData getNext();
unsigned int getCount();
};
typedef sfccSPtr<CimcIterator> CimIterator;
#endif