1#! /usr/bin/sh
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License, Version 1.0 only
7# (the "License").  You may not use this file except in compliance
8# with the License.
9#
10# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11# or http://www.opensolaris.org/os/licensing.
12# See the License for the specific language governing permissions
13# and limitations under the License.
14#
15# When distributing Covered Code, include this CDDL HEADER in each
16# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17# If applicable, add the following below this CDDL HEADER, with the
18# fields enclosed by brackets "[]" replaced with your own identifying
19# information: Portions Copyright [yyyy] [name of copyright owner]
20#
21# CDDL HEADER END
22#
23#
24# ident	"%Z%%M%	%I%	%E% SMI"
25#
26# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
27# Use is subject to license terms.
28#
29
30INFILE=classes.tmp
31INFILE1=assocclasses.tmp
32CLASSFILE=classes
33ASSOCCLASSFILE=assocclasses
34LIBFILE=libname
35TMPFILE=tmp.tmp
36TMPFILE1=tmp1.tmp
37PWD=`pwd`
38
39HEADER=${PWD}/master.h
40
41
42rm -f $HEADER $TMPFILE $TMPFILE1 $CLASSFILE $ASSOCCLASSFILE $LIBFILE
43
44# Convert into separate lines per class
45for x in `cat $INFILE`
46do
47	echo $x >> $TMPFILE
48done
49
50# Convert into separate lines per class
51for x in `cat $INFILE1`
52do
53	echo $x >> $TMPFILE1
54done
55#####################################################
56# Create file containing only the library name
57tail -1 $TMPFILE > $LIBFILE
58LIBNAME=`cat $LIBFILE`
59
60# Create file containing only the class names
61COUNT=`cat $TMPFILE | wc -l`
62COUNT=`expr $COUNT - 1`
63head -n $COUNT $TMPFILE > $CLASSFILE
64
65# Create file containing only the class names
66COUNT=`cat $TMPFILE1 | wc -l`
67COUNT=`expr $COUNT - 1`
68head -n $COUNT $TMPFILE1 > $ASSOCCLASSFILE
69##############################################################
70#
71# Create the header file
72#
73echo "#include <cimapi.h>" > $HEADER
74echo "#include <cimlogsvc.h>" > $HEADER
75
76#
77# Create the externs
78# cp_enumInstances
79# 
80
81echo "" >> $HEADER
82for x in `cat $TMPFILE`
83do
84	echo "extern CCIMInstanceList*" >> $HEADER
85	echo "cp_enumInstances_$x(CCIMObjectPath* pOP);" >> $HEADER
86done
87
88
89#
90# Create the externs
91# cp_enumInstanceNames
92# 
93
94echo "" >> $HEADER
95for x in `cat $TMPFILE`
96do
97	echo "extern CCIMObjectPathList*" >> $HEADER
98	echo "cp_enumInstanceNames_$x(CCIMObjectPath* pOP);" >> $HEADER
99done
100
101#
102# cp_createInstance
103#
104
105echo "" >> $HEADER
106for x in `cat $TMPFILE`
107do
108	echo "extern CCIMObjectPath*" >> $HEADER
109	echo "cp_createInstance_$x(CCIMObjectPath* pOP, CCIMInstance* pInst);" >> $HEADER
110done
111
112#
113# cp_deleteInstance
114#
115
116echo "" >> $HEADER
117for x in `cat $TMPFILE`
118do
119	echo "extern CIMBool" >> $HEADER
120	echo "cp_deleteInstance_$x(CCIMObjectPath* pOP);" >> $HEADER
121done
122
123#
124# cp_getInstance
125#
126
127echo "" >> $HEADER
128for x in `cat $TMPFILE`
129do
130	echo "extern CCIMInstance*" >> $HEADER
131	echo "cp_getInstance_$x(CCIMObjectPath* pOP);" >> $HEADER
132done
133
134#
135# cp_setInstance
136#
137
138echo "" >> $HEADER
139for x in `cat $TMPFILE`
140do
141	echo "extern CIMBool" >> $HEADER
142	echo "cp_setInstance_$x(CCIMObjectPath* pOP, CCIMInstance* pInst);" >> $HEADER
143done
144
145#
146# cp_setProperty
147#
148
149echo "" >> $HEADER
150for x in `cat $TMPFILE`
151do 
152	echo "extern CIMBool" >> $HEADER
153	echo "cp_setProperty_$x(CCIMObjectPath* pOP, CCIMProperty* pProp);" >> $HEADER
154done
155
156#
157# cp_invokeMethod
158#
159
160echo "" >> $HEADER
161for x in `cat $TMPFILE`
162do
163	echo "extern CCIMProperty*" >> $HEADER
164	echo "cp_invokeMethod_$x(CCIMObjectPath* pOP, cimchar* pName,CCIMPropertyList* pInParams,CCIMPropertyList* pInOutParams);" >> $HEADER
165done
166
167#
168# cp_execQuery
169#
170
171echo "" >> $HEADER
172for x in `cat $TMPFILE`
173do
174	echo "extern CCIMInstanceList *" >> $HEADER
175	echo "cp_execQuery_$x(CCIMObjectPath* pOP, char *selectList,char *nonJoinExp, char *queryExp, char *queryType);" >> $HEADER
176done
177
178
179#
180# cp_associators
181#
182
183echo "" >> $HEADER
184for x in `cat $TMPFILE1`
185do
186	echo "extern CCIMInstanceList *" >> $HEADER
187	echo "cp_associators_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pResultClass, char *pRole, char *pResultRole);" >> $HEADER
188done
189
190#
191# cp_associatorNames
192#
193
194echo "" >> $HEADER
195for x in `cat $TMPFILE1`
196do
197	echo "extern CCIMObjectPathList *" >> $HEADER
198	echo "cp_associatorNames_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pResultClass, char *pRole, char *pResultRole);" >> $HEADER
199done
200
201#
202# cp_reference
203#
204
205echo "" >> $HEADER
206for x in `cat $TMPFILE1`
207do
208	echo "extern CCIMObjectPathList *" >> $HEADER
209	echo "cp_references_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pRole);" >> $HEADER
210done
211
212#
213# cp_referenceNames
214#
215
216echo "" >> $HEADER
217for x in `cat $TMPFILE1`
218do
219	echo "extern CCIMObjectPathList *" >> $HEADER
220	echo "cp_referenceNames_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pRole);" >> $HEADER
221done
222
223##############################################################
224#
225# Create the dispatch tables
226#
227##############################################################
228
229
230#
231# *cpInvokeMethodTable
232#
233
234echo "" >> $HEADER
235echo "CCIMProperty *" >> $HEADER
236echo "(*cpInvokeMethodTable[])(CCIMObjectPath *, cimchar *, CCIMPropertyList *, CCIMPropertyList *) = {" >> $HEADER
237for x in `cat $CLASSFILE`
238do
239	echo "cp_invokeMethod_$x," >> $HEADER
240done
241
242echo "cp_invokeMethod_$LIBNAME};" >> $HEADER
243
244
245#
246# *createInstanceTable
247#
248
249echo "" >> $HEADER
250echo "CCIMObjectPath *" >> $HEADER
251echo "(*createInstanceTable[])(CCIMObjectPath *, CCIMInstance *) = {" >> $HEADER
252for x in `cat $CLASSFILE`
253do
254	echo "cp_createInstance_$x," >> $HEADER
255done
256echo "cp_createInstance_$LIBNAME};" >> $HEADER
257
258#
259# *deleteInstanceTable
260#
261
262echo "" >> $HEADER
263echo "CIMBool" >> $HEADER
264echo "(*deleteInstanceTable[])( CCIMObjectPath *) = {" >> $HEADER
265for x in `cat $CLASSFILE`
266do
267	echo "cp_deleteInstance_$x," >> $HEADER
268done
269echo "cp_deleteInstance_$LIBNAME};" >> $HEADER
270
271#
272# *enumInstanceTable
273#
274
275echo "" >> $HEADER
276echo "CCIMInstanceList *" >> $HEADER
277echo "(*enumInstanceTable[])(CCIMObjectPath *) = {" >> $HEADER
278for x in `cat $CLASSFILE`
279do
280	echo "cp_enumInstances_$x," >> $HEADER
281done
282echo "cp_enumInstances_$LIBNAME};" >> $HEADER
283
284#
285# *enumInstanceNamesTable
286#
287
288echo "" >> $HEADER
289echo "CCIMObjectPathList *" >> $HEADER
290echo "(*enumInstanceNamesTable[])(CCIMObjectPath *) = {" >> $HEADER
291for x in `cat $CLASSFILE`
292do
293	echo "cp_enumInstanceNames_$x," >> $HEADER
294done
295echo "cp_enumInstanceNames_$LIBNAME};" >> $HEADER
296
297#
298# *getInstanceTable
299#
300
301echo "" >> $HEADER
302echo "CCIMInstance *" >> $HEADER
303echo "(*getInstanceTable[])(CCIMObjectPath *) = {" >> $HEADER
304for x in `cat $CLASSFILE`
305do
306	echo "cp_getInstance_$x," >> $HEADER
307done
308echo "cp_getInstance_$LIBNAME};" >> $HEADER
309
310#
311# *setInstanceTable
312#
313
314echo "" >> $HEADER
315echo "CIMBool" >> $HEADER
316echo "(*setInstanceTable[])(CCIMObjectPath *, CCIMInstance *) = {" >> $HEADER
317for x in `cat $CLASSFILE`
318do
319	echo "cp_setInstance_$x," >> $HEADER
320done
321echo "cp_setInstance_$LIBNAME};" >> $HEADER
322
323#
324# *setPropertyTable
325#
326
327echo "" >> $HEADER
328echo "CIMBool" >> $HEADER
329echo "(*setPropertyTable[])(CCIMObjectPath *, CCIMProperty *) = {" >> $HEADER
330for x in `cat $CLASSFILE`
331do
332	echo "cp_setProperty_$x," >> $HEADER
333done
334echo "cp_setProperty_$LIBNAME};" >> $HEADER
335
336#
337# *execQueryTable
338#
339
340echo "" >> $HEADER
341echo "CCIMInstanceList*" >> $HEADER
342echo "(*execQueryTable[])(CCIMObjectPath *, char *, char *, char *, char*) = {" >> $HEADER
343for x in `cat $CLASSFILE`
344do
345	echo "cp_execQuery_$x," >> $HEADER
346done
347echo "cp_execQuery_$LIBNAME};" >> $HEADER
348
349
350#
351# *associatorsTable
352#
353
354echo "" >> $HEADER
355echo "CCIMInstanceList*" >> $HEADER
356echo "(*associatorsTable[])(CCIMObjectPath *, CCIMObjectPath *, char *, char *, char*) = {" >> $HEADER
357for x in `cat $ASSOCCLASSFILE`
358do
359	echo "cp_associators_$x," >> $HEADER
360done
361echo "cp_associators_$LIBNAME};" >> $HEADER
362
363##############################################################
364#
365# *associatorNamesTable
366#
367
368echo "" >> $HEADER
369echo "CCIMObjectPathList*" >> $HEADER
370echo "(*associatorNamesTable[])(CCIMObjectPath *, CCIMObjectPath *, char *, char *, char*) = {" >> $HEADER
371for x in `cat $ASSOCCLASSFILE`
372do
373	echo "cp_associatorNames_$x," >> $HEADER
374done
375echo "cp_associatorNames_$LIBNAME};" >> $HEADER
376
377
378##############################################################
379#
380# *referencesTable
381#
382
383echo "" >> $HEADER
384echo "CCIMObjectPathList*" >> $HEADER
385echo "(*referencesTable[])(CCIMObjectPath *, CCIMObjectPath *, char *) = {" >> $HEADER
386for x in `cat $ASSOCCLASSFILE`
387do
388	echo "cp_references_$x," >> $HEADER
389done
390echo "cp_references_$LIBNAME};" >> $HEADER
391
392##############################################################
393#
394# *referenceNamesTable
395#
396
397echo "" >> $HEADER
398echo "CCIMObjectPathList*" >> $HEADER
399echo "(*referenceNamesTable[])(CCIMObjectPath *, CCIMObjectPath *, char *) = {" >> $HEADER
400for x in `cat $ASSOCCLASSFILE`
401do
402	echo "cp_referenceNames_$x," >> $HEADER
403done
404echo "cp_referenceNames_$LIBNAME};" >> $HEADER
405#
406# Create Class Name table
407#
408echo "" >> $HEADER
409echo "static char *classNameTable [] = {" >> $HEADER
410for x in `cat $CLASSFILE`
411do
412        echo "\"$x\"," >> $HEADER
413done
414echo "\"$LIBNAME\"};" >> $HEADER
415
416##############################################################
417#
418# Create Assoc Class Name table
419#
420echo "" >> $HEADER
421echo "static char *assocclassNameTable [] = {" >> $HEADER
422for x in `cat $ASSOCCLASSFILE`
423do
424        echo "\"$x\"," >> $HEADER
425done
426echo "\"$LIBNAME\"};" >> $HEADER
427