Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lcmaps_vo_data.h

Go to the documentation of this file.
00001 /*                                                                                                            
00002  * Copyright (c) 2001 EU DataGrid.                                                                             
00003  * For license conditions see http://www.eu-datagrid.org/license.html                                          
00004  *
00005  * Copyright (c) 2001, 2002 by 
00006  *     Martijn Steenbakkers <martijn@nikhef.nl>,
00007  *     David Groep <davidg@nikhef.nl>,
00008  *     NIKHEF Amsterdam, the Netherlands
00009  */
00010 
00031 #ifndef LCMAPS_VO_DATA_H
00032 #define LCMAPS_VO_DATA_H
00033 
00034 /******************************************************************************
00035                              Define constants
00036 ******************************************************************************/
00037 #define LCMAPS_NO_GID (gid_t)(-1) 
00039 /******************************************************************************
00040                              Include header files
00041 ******************************************************************************/
00042 #include <grp.h>
00043 
00044 /******************************************************************************
00045                                Type definitions
00046 ******************************************************************************/
00047 
00057 typedef struct lcmaps_vo_data_s
00058 {
00059     char * vo;         
00060     char * group;      
00061     char * subgroup;   
00062     char * role;       
00063     char * capability; 
00064 } lcmaps_vo_data_t;
00065 
00075 typedef struct lcmaps_vo_mapping_s
00076 {
00077     char * vostring;   
00078     char * groupname;  
00080     gid_t  gid;        
00082 } lcmaps_vo_mapping_t;
00083 
00084 /******************************************************************************
00085  *                 Module definition
00086  *****************************************************************************/ 
00087 
00088 /*
00089  * VO data section
00090  */
00091 extern lcmaps_vo_data_t *
00092 lcmaps_createVoData(
00093     const char * vo,
00094     const char * group,
00095     const char * subgroup,
00096     const char * role,
00097     const char * capability
00098 );
00099 
00100 extern int
00101 lcmaps_deleteVoData(
00102     lcmaps_vo_data_t ** vo_data
00103 );
00104 
00105 extern int
00106 lcmaps_cleanVoData(
00107     lcmaps_vo_data_t * vo_data
00108 );
00109 
00110 extern int
00111 lcmaps_copyVoData(
00112     lcmaps_vo_data_t * dst_vo_data,
00113     const lcmaps_vo_data_t * src_vo_data
00114 );
00115 
00116 extern int
00117 lcmaps_printVoData(
00118     int debug_level,
00119     const lcmaps_vo_data_t * vo_data
00120 );
00121 
00122 extern int
00123 lcmaps_stringVoData(
00124     const lcmaps_vo_data_t * vo_data,
00125     char * buffer,
00126     int nchars
00127 );
00128 
00129 
00130 /*
00131  * VO group mapping section
00132  */
00133 extern lcmaps_vo_mapping_t *
00134 lcmaps_createVoMapping(
00135     const char * vo_data_string,
00136     const char * groupname,
00137     const gid_t  gid
00138 );
00139 
00140 extern int
00141 lcmaps_deleteVoMapping(
00142     lcmaps_vo_mapping_t ** vo_mapping
00143 );
00144 
00145 extern int
00146 lcmaps_cleanVoMapping(
00147     lcmaps_vo_mapping_t * vo_mapping
00148 );
00149 
00150 extern int
00151 lcmaps_copyVoMapping(
00152     lcmaps_vo_mapping_t * dst_vo_mapping,
00153     const lcmaps_vo_mapping_t * src_vo_mapping
00154 );
00155 
00156 extern int
00157 lcmaps_printVoMapping(
00158     int debug_level,
00159     const lcmaps_vo_mapping_t * vo_mapping
00160 );
00161 
00162 #endif /* LCMAPS_VO_DATA_H */
00163 
00164 /******************************************************************************
00165 CVS Information:
00166     $Source: /cvs/fabric_mgt/gridification/lcmaps/include/lcmaps_vo_data.h,v $
00167     $Date: 2004/01/05 16:44:10 $
00168     $Revision: 1.6 $
00169     $Author: martijn $
00170 ******************************************************************************/

Generated at Thu Mar 4 17:39:03 2004 for edg-lcmaps by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001