]> SALOME platform Git repositories - modules/kernel.git/blob - src/HDFPersist/HDFattrCreate.c
Salome HOME
Initialisation de la base KERNEL avec la version operationnelle de KERNEL_SRC issue...
[modules/kernel.git] / src / HDFPersist / HDFattrCreate.c
1 #include "hdfi.h"
2
3 /*
4  * - Name : HDFattrCreate
5  * - Description : create a HDF attribute
6  * - Parameters :
7  *     - pid (IN) : father ID
8  *     - name (IN) : attribute name
9  *     - type (IN) : attribute type
10  * - Result: 
11  *     - if success : attribute ID 
12  *     - if failure : -1
13  */
14 hdf_idt HDFattrCreate(hdf_idt pid,char *name,hdf_type type)
15 {
16   hdf_idt aid,attr;
17   hdf_err ret;
18   int type_hdf;
19
20   switch(type) {
21   case HDF_FLOAT64 :
22     type_hdf = H5T_IEEE_F64LE;
23     break;
24     
25   case HDF_INT32 :
26     type_hdf = H5T_STD_I32LE;
27     break;
28     
29   case HDF_INT64 :
30     type_hdf = H5T_STD_I64LE;
31     break;
32
33   case HDF_STRING :           
34     if((type_hdf = H5Tcopy(H5T_C_S1)) < 0)
35       return -1;
36     if((ret = H5Tset_size(type_hdf,1)) < 0)
37       return -1;
38     break;
39     
40   default :
41     return -1;
42   }
43
44   if ((aid = H5Screate(H5S_SCALAR)) < 0)
45     return -1;
46   
47   if ((attr = H5Acreate(pid,name,type_hdf,aid,H5P_DEFAULT)) < 0)
48     return -1;
49   
50   if ((ret = H5Sclose(aid)) < 0)
51     return -1;
52   
53   return attr;
54 }