VFML: ExampleSpec.h Source File 
 
ExampleSpec.h Go to the documentation of this file. 00001 #ifndef EXAMPLESPECH 
00002 #define EXAMPLESPECH 
00003  
00021 #include <stdio.h> 
00022 #include "../util/lists.h" 
00023 
00024 typedef  enum  { asIgnore, 
00025                asContinuous,
00026                asDiscreteNamed,
00027                asDiscreteNoName } AttributeSpecType;
00028 
00029 typedef  struct  _AttributeSpec_ {
00030    AttributeSpecType type;
00031    char  *attributeName;
00032 
00033    int  numDiscreteValues;
00034    VoidAListPtr attributeValues;
00035 } AttributeSpec, *AttributeSpecPtr;
00036 
00037 
00038 
00039 
00040 AttributeSpecPtr AttributeSpecNew(void );
00041 void  AttributeSpecFree(AttributeSpecPtr as);
00042 void  AttributeSpecSetType(AttributeSpecPtr as, AttributeSpecType type);
00043 void  AttributeSpecSetName(AttributeSpecPtr as, char  *name);
00044    
00045 void  AttributeSpecSetNumValues(AttributeSpecPtr as, int  num);
00046 void  AttributeSpecAddValue(AttributeSpecPtr as, char  *value);
00047 
00048 
00049 
00050 
00051 
00052 #define AttributeSpecGetType(as) (as->type) 
00053  
00054 
00055 
00056 #define AttributeSpecGetNumValues(as) \ 
00057    (((AttributeSpecPtr)as)->numDiscreteValues) 
00058  
00059 int  AttributeSpecGetNumAssignedValues(AttributeSpecPtr as);
00060 char  *AttributeSpecGetName(AttributeSpecPtr as);
00061 
00062 #define AttributeSpecGetValueName(as, index) \ 
00063             (VALIndex(as->attributeValues, index)) 
00064  
00065 int  AttributeSpecLookupName(AttributeSpecPtr as, char  *name);
00066 
00067 
00068 
00069 
00070 void  AttributeSpecWrite(AttributeSpecPtr as, FILE *out);
00071 
00072 
00074  typedef  struct  _ExampleSpec_  {
00075    VoidAListPtr classes;
00076    VoidAListPtr attributes;
00077 } ExampleSpec , *ExampleSpecPtr ;
00078 
00079 
00080 
00081 
00082 
00091 ExampleSpecPtr  ExampleSpecNew(void );
00092 
00099 void  ExampleSpecFree(ExampleSpecPtr es);
00100 
00112 void  ExampleSpecAddClass(ExampleSpecPtr es, char  *className);
00113 
00114 void  ExampleSpecAddAttributeSpec(ExampleSpecPtr es, AttributeSpecPtr as);
00115   
00116   
00117 
00128 int  ExampleSpecAddDiscreteAttribute(ExampleSpecPtr es, char  *name);
00129 
00130 
00141 int  ExampleSpecAddContinuousAttribute(ExampleSpecPtr es, char  *name);
00142 
00155 void  ExampleSpecAddAttributeValue(ExampleSpecPtr es, int  attNum, char  *name);
00156 
00157 
00158 
00176 ExampleSpecPtr  ExampleSpecRead(char  *fileName);
00177 void  ExampleSpecIgnoreAttribute(ExampleSpecPtr es, int  num);
00178 
00179 
00180 
00181 
00182 
00189 int  ExampleSpecGetNumAttributes(ExampleSpecPtr es);
00190 
00191 
00204 
00205  #define ExampleSpecGetAttributeType(es, num) \ 
00206    ( AttributeSpecGetType(((AttributeSpecPtr)VALIndex(es->attributes, num))) ) 
00207  
00208 
00214 int  ExampleSpecIsAttributeDiscrete(ExampleSpecPtr es, int  num);
00215 
00221 int  ExampleSpecIsAttributeContinuous(ExampleSpecPtr es, int  num);
00222 
00227 int  ExampleSpecIsAttributeIgnored(ExampleSpecPtr es, int  num);
00228 
00235 
00236  #define ExampleSpecGetAttributeValueCount(es, attNum) \ 
00237   ( AttributeSpecGetNumValues(((AttributeSpecPtr)VALIndex(es->attributes, attNum))) ) 
00238  
00239 
00240 int  ExampleSpecGetAssignedAttributesValueCount(ExampleSpecPtr es, int  attNum);
00241 
00242 
00244 char  *ExampleSpecGetAttributeName(ExampleSpecPtr es, int  attNum);
00245 
00246 
00247 
00248 
00255  #define ExampleSpecGetAttributeValueName(es, attNum, valNum) \ 
00256       ( (char *)AttributeSpecGetValueName(((AttributeSpecPtr)VALIndex(es->attributes, attNum)), valNum) ) 
00257  
00264 int  ExampleSpecLookupAttributeName(ExampleSpecPtr es, char  *valName);
00265 
00272 int  ExampleSpecLookupAttributeValueName(ExampleSpecPtr es, int  attNum,
00273                                    char  *valName);
00274 
00276 int  ExampleSpecLookupClassName(ExampleSpecPtr es, char  *name);
00277 
00279 char  *ExampleSpecGetClassValueName(ExampleSpecPtr es, int  classNum);
00280 
00286 int  ExampleSpecGetNumClasses(ExampleSpecPtr es);
00287 
00288 
00289 
00290 
00291 
00301 void  ExampleSpecWrite(ExampleSpecPtr es, FILE *out);
00302 
00303 #endif  
  
Generated for VFML by 
 
hosted by