source: trunk/src/cee/RpLibraryCInterface.cc @ 77

Last change on this file since 77 was 77, checked in by dkearney, 15 years ago
  1. initial checkin of RpLibrary? code, includes c++/c/fortran bindings
  2. minor modifications to makefiles to accommodate new code
  3. updated README in src to tell how to compile code in src and test
File size: 4.3 KB
Line 
1#include "RpLibrary.h"
2#include "RpLibraryCInterface.h"
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8    RpLibrary*
9    library (const char* path)
10    {
11        return new RpLibrary(path);
12    }
13
14    void
15    freeLibrary (RpLibrary* lib)
16    {
17        delete lib;
18        lib = NULL;
19    }
20
21    RpLibrary*
22    element (RpLibrary* lib, const char* path)
23    {
24        return lib->element(path);
25    }
26   
27    RpLibrary* 
28    elementAsObject (RpLibrary* lib, const char* path)
29    {
30        return element(lib,path);
31    }
32
33    const char*
34    elementAsType (RpLibrary* lib, const char* path)
35    {
36        static std::string retStr = "";
37        RpLibrary* retLib = lib->element(path);
38
39        if (retLib) {
40            retStr = retLib->nodeType();
41        }
42
43        return retStr.c_str();
44    }
45
46    const char*
47    elementAsComp (RpLibrary* lib, const char* path)
48    {
49        static std::string retStr = "";
50        RpLibrary* retLib = lib->element(path);
51
52        if (retLib) {
53            retStr = retLib->nodeComp();
54        }
55
56        return retStr.c_str();
57    }
58
59    const char*
60    elementAsId (RpLibrary* lib, const char* path)
61    {
62        static std::string retStr = "";
63        RpLibrary* retLib = lib->element(path);
64
65        if (retLib) {
66            retStr = retLib->nodeId();
67        }
68
69        return retStr.c_str();
70    }
71
72
73    RpLibrary*
74    children (RpLibrary* lib, const char* path, RpLibrary* childEle   )
75    {
76        return lib->children(path,childEle);
77    }
78
79    RpLibrary*
80    childrenByType( RpLibrary* lib,
81                    const char* path,
82                    RpLibrary* childEle,
83                    const char* type    )
84    {
85        return lib->children(path,childEle,type);
86    }
87
88    /*
89    RpLibrary**
90    childrenAsObject (RpLibrary* lib, const char* path, const char* type)
91    {
92        return chilren(lib, path,type);
93    }
94
95    const char*
96    childrenAsType (RpLibrary* lib, const char* path, const char* type)
97    {
98
99    }
100
101    const char*
102    childrenAsComp (RpLibrary* lib, const char* path, const char* type)
103    {
104
105    }
106
107    const char*
108    childrenAsId (RpLibrary* lib, const char* path, const char* type)
109    {
110
111    }
112    */
113
114    RpLibrary* 
115    get (RpLibrary* lib, const char* path)
116    {
117        return lib->get(path);
118    }
119
120    const char*
121    getString (RpLibrary* lib, const char* path)
122    {
123        static std::string retStr = "";
124        retStr = lib->getString(path);
125        return retStr.c_str();
126    }
127
128    double
129    getDouble (RpLibrary* lib, const char* path)
130    {
131        return lib->getDouble(path);
132    }
133
134    void
135    put         (RpLibrary* lib,
136                 const char* path,
137                 const char* value,
138                 const char* id,
139                 int append         )
140    {
141        lib->put(path,value,id,append);
142    }
143
144    void
145    putStringId (RpLibrary* lib,
146                 const char* path,
147                 const char* value,
148                 const char* id,
149                 int append          )
150    {
151        lib->put(path,value,id,append);
152    }
153
154    void
155    putString ( RpLibrary* lib,
156                const char* path,
157                const char* value,
158                int append          )
159    {
160        lib->put(path,value,"",append);
161    }
162
163    void
164    putDoubleId (RpLibrary* lib,
165                 const char* path,
166                 double value,
167                 const char* id,
168                 int append         )
169    {
170        lib->put(path,value,id,append);
171    }
172
173    void
174    putDouble   (RpLibrary* lib,
175                 const char* path,
176                 double value,
177                 int append         )
178    {
179        lib->put(path,value,"",append);
180    }
181
182    const char*
183    xml (RpLibrary* lib)
184    {
185        static std::string retStr = "";
186        retStr = lib->xml();
187        return retStr.c_str();
188    }
189
190    const char*
191    nodeComp (RpLibrary* node)
192    {
193        static std::string retStr = "";
194        retStr = node->nodeComp();
195        return retStr.c_str();
196    }
197
198    const char*
199    nodeType (RpLibrary* node)
200    {
201        static std::string retStr = "";
202        retStr = node->nodeType();
203        return retStr.c_str();
204    }
205
206    const char*
207    nodeId (RpLibrary* node)
208    {
209        static std::string retStr = "";
210        retStr = node->nodeId();
211        return retStr.c_str();
212    }
213
214
215
216#ifdef __cplusplus
217}
218#endif
Note: See TracBrowser for help on using the repository browser.