00001 #ifndef ATTRIBUTETRACKERH
00002 #define ATTRIBUTETRACKERH
00003
00004 #include "ExampleSpec.h"
00005 #include "../util/bitfield.h"
00006
00007
00029 typedef struct _AttributeTracker_ {
00030 BitField bits;
00031 int numAttributes;
00032 int numActiveAttributes;
00033 } AttributeTracker, *AttributeTrackerPtr;
00034
00035
00042 AttributeTrackerPtr AttributeTrackerNew(int numAttributes);
00043
00046 void AttributeTrackerFree(AttributeTrackerPtr at);
00047
00055 AttributeTrackerPtr AttributeTrackerInitial(ExampleSpecPtr es);
00056
00060 AttributeTrackerPtr AttributeTrackerClone(AttributeTrackerPtr at);
00061
00064 void AttributeTrackerMarkActive(AttributeTrackerPtr at, int attNum);
00065
00068 void AttributeTrackerMarkInactive(AttributeTrackerPtr at, int attNum);
00069
00072 int AttributeTrackerIsActive(AttributeTrackerPtr at, int attNum);
00073
00080 int AttributeTrackerAreAllInactive(AttributeTrackerPtr at);
00081
00087 int AttributeTrackerNumActive(AttributeTrackerPtr at);
00088
00089 #endif