ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/eplus_idf.h
(Generate patch)

Comparing ray/src/util/eplus_idf.h (file contents):
Revision 2.1 by greg, Sat Feb 1 01:28:43 2014 UTC vs.
Revision 2.7 by greg, Wed Feb 12 17:40:07 2014 UTC

# Line 17 | Line 17 | extern "C" {
17   #endif
18  
19   #define IDF_MAXLINE     512                     /* maximum line length */
20 < #define IDF_MAXARGL     128                     /* maximum argument length */
20 > #define IDF_MAXARGL     104                     /* maximum argument length */
21  
22 < /* Input Data File parameter argument list */
22 > /* Input Data File object argument list */
23   typedef struct s_idf_field {
24 <        struct s_idf_field      *next;          /* next in parameter list */
24 >        struct s_idf_field      *next;          /* next in object list */
25          char                    *rem;           /* string following argument */
26 <        char                    arg[2];         /* argument (extends struct) */
26 >        char                    val[2];         /* value (extends struct) */
27   } IDF_FIELD;
28  
29 < /* Input Data File parameter */
30 < typedef struct s_idf_parameter {
31 <        const char              *pname;         /* parameter name (type) */
32 <        struct s_idf_parameter  *pnext;         /* next parameter same type */
33 <        struct s_idf_parameter  *dnext;         /* next parameter in IDF */
29 > /* Input Data File object */
30 > typedef struct s_idf_object {
31 >        const char              *pname;         /* object name (type) */
32 >        struct s_idf_object     *pnext;         /* next object same type */
33 >        struct s_idf_object     *dnext;         /* next object in IDF */
34 >        int                     nfield;         /* field count */
35          IDF_FIELD               *flist;         /* field list */
36          char                    rem[1];         /* comment (extends struct) */
37 < } IDF_PARAMETER;
37 > } IDF_OBJECT;
38  
39   /* Input Data File w/ dictionary */
40   typedef struct {
41          char                    *hrem;          /* header remarks */
42 <        IDF_PARAMETER           *pfirst;        /* first parameter in file */
43 <        IDF_PARAMETER           *plast;         /* last parameter loaded */
44 <        LUTAB                   ptab;           /* parameter table */
42 >        IDF_OBJECT              *pfirst;        /* first object in file */
43 >        IDF_OBJECT              *plast;         /* last object loaded */
44 >        LUTAB                   ptab;           /* object hash table */
45   } IDF_LOADED;
46  
47 < /* Create a new parameter with empty field list (comment optional) */
48 < extern IDF_PARAMETER    *idf_newparam(IDF_LOADED *idf, const char *pname,
49 <                                                        const char *comm,
49 <                                                IDF_PARAMETER *prev);
47 > /* Create a new object with empty field list (comment & prev optional) */
48 > extern IDF_OBJECT       *idf_newobject(IDF_LOADED *idf, const char *pname,
49 >                                        const char *comm, IDF_OBJECT *prev);
50  
51 < /* Add a field to the given parameter and follow with the given text */
52 < extern int              idf_addfield(IDF_PARAMETER *param, const char *fval,
51 > /* Add a field to the given object and follow with the given text */
52 > extern int              idf_addfield(IDF_OBJECT *param, const char *fval,
53                                                          const char *comm);
54  
55 < /* Delete the specified parameter from our IDF */
56 < extern int              idf_delparam(IDF_LOADED *idf, IDF_PARAMETER *param);
55 > /* Retrieve the indexed field from object (first field index is 1) */
56 > extern IDF_FIELD        *idf_getfield(IDF_OBJECT *param, int fn);
57  
58 < /* Get a named parameter list */
59 < extern IDF_PARAMETER    *idf_getparam(IDF_LOADED *idf, const char *pname);
58 > /* Delete the specified object from the IDF */
59 > extern int              idf_delobject(IDF_LOADED *idf, IDF_OBJECT *param);
60  
61 < /* Read a parameter and fields from an open file and add to end of list */
62 < extern IDF_PARAMETER    *idf_readparam(IDF_LOADED *idf, FILE *fp);
61 > /* Move the specified object to the given position in the IDF */
62 > extern int              idf_movobject(IDF_LOADED *idf, IDF_OBJECT *param,
63 >                                                IDF_OBJECT *prev);
64  
65 + /* Get a named object list */
66 + extern IDF_OBJECT       *idf_getobject(IDF_LOADED *idf, const char *pname);
67 +
68 + /* Read a object and fields from an open file and add to end of list */
69 + extern IDF_OBJECT       *idf_readobject(IDF_LOADED *idf, FILE *fp);
70 +
71   /* Initialize an IDF struct */
72   extern IDF_LOADED       *idf_create(const char *hdrcomm);
73  
74 + /* Add comment(s) to header */
75 + extern int              idf_add2hdr(IDF_LOADED *idf, const char *hdrcomm);
76 +
77   /* Load an Input Data File */
78   extern IDF_LOADED       *idf_load(const char *fname);
79  
80 < /* Write a parameter and fields to an open file */
81 < int                     idf_writeparam(IDF_PARAMETER *param, FILE *fp);
80 > /* Write a object and fields to an open file */
81 > int                     idf_writeparam(IDF_OBJECT *param, FILE *fp,
82 >                                        int incl_comm);
83  
84   /* Write out an Input Data File */
85 < extern int              idf_write(IDF_LOADED *idf, const char *fname);
85 > extern int              idf_write(IDF_LOADED *idf, const char *fname,
86 >                                        int incl_comm);
87  
88   /* Free a loaded IDF */
89   extern void             idf_free(IDF_LOADED *idf);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines