/[pdpsoft]/trunk/grid-mw-security/ees/include/library/aos.h
ViewVC logotype

Diff of /trunk/grid-mw-security/ees/include/library/aos.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1344 by aramv, Tue Jan 5 14:43:37 2010 UTC revision 1345 by aramv, Thu Jan 7 16:38:30 2010 UTC
# Line 37  Line 37 
37  #include <sys/types.h>  #include <sys/types.h>
38  #include "eef.h"  #include "eef.h"
39    
40  typedef struct aos_storage_s {  
41    aos_argument_t * list_arguments;  
42    unsigned int   * size_arguments;  pthread_rwlock_t              _rwlock;
43  } aos_storage_t;  pthread_key_t                 _aos_key;
44    pthread_once_t                _aos_key_once;
45  typedef enum context_class_e {  aos_storage_t *               _global_storage;
   SUBJECT,  
   ACTION,  
   RESOURCE,  
   ENVIRONMENT,  
   NONE,  
   ANY  
 } context_class_t;  
   
 typedef struct attribute_s {  
   char* id;  
   char* issuer;  
   aos_argument_t * data_type;  
   void* value;  
 } attribute_t;  
   
 typedef struct context_s {  
   attribute_t *         attributes_list;  
   struct context_s *    next;  
 } context_t;  
   
 pthread_rwlock_t          _rwlock;  
 pthread_key_t             _aos_key;  
 pthread_once_t            _aos_key_once;  
 aos_storage_t *           _global_storage;  
46    
47  /* NEW AOS API */  /* NEW AOS API */
48    
49  context_t *               createContext(context_class_t);  aos_context_t *               createContext(aos_context_class_t);
50  EES_RC                    addContext(context_t*);  EES_RC                        addContext(aos_context_t*);
51  context_t *               getNextContext(context_class_t);  aos_context_t *               getNextContext(aos_context_class_t, aos_storage_t*);
52    void                          setContextObligation(aos_context_t*, char*);
53  attribute_t*              createAttribute();  
54  EES_RC*                   addAttribute(context_t*, attribute_t*);  aos_attribute_t*              createAttribute(void);
55  attribute_t*              getNextAttribute(context_t*);  EES_RC                        addAttribute(aos_context_t*, aos_attribute_t*);
56    aos_attribute_t*              getNextAttribute(aos_context_t*);
57  EES_RC                    setAttributeId(attribute_t*, char* id);  EES_RC                        destroyAttribute(aos_context_t*, aos_attribute_t*);
58  EES_RC                    setAttributeIssuer(attribute_t*, char* issuer);  
59  EES_RC                    setAttributeValue(attribute_t*, aos_argument_t, void* value);  EES_RC                        setAttributeId(aos_attribute_t*, char* id);
60    EES_RC                        setAttributeIssuer(aos_attribute_t*, char* issuer);
61  char*                     getAttributeId(attribute_t*);  EES_RC                        setAttributeValue(aos_attribute_t*, void* value, size_t size);
62  char*                     getAttributeIssuer(attribute_t*);  EES_RC                        setAttributeType(aos_attribute_t*, char* type);
63  char*                     getAttributeValueAsString(attribute_t*);  
64  int                       getAttributeValueAsInt(attribute_t*);  char*                         getAttributeId(aos_attribute_t*);
65    char*                         getAttributeIssuer(aos_attribute_t*);
66    char*                         getAttributeValueAsString(aos_attribute_t*);
67    int                           getAttributeValueAsInt(aos_attribute_t*);
68    
69    
70  /* AOS wrapper functions */  /* AOS wrapper functions */
71    
72  EES_RC                    setAssertion(const char* label, char* value);  /*EES_RC                        setAssertion(const char* label, char* value);*/
73  char*                     getAssertion(const char* label);  /*char*                         getAssertion(const char* label);*/
74  EES_RC                    setObligation(const char* label, char* value);  /*EES_RC                        setObligation(const char* label, char* value);*/
75  char*                     getObligation(const char* label);  /*char*                         getObligation(const char* label);*/
76  EES_RC                    destroyObligation(const char* label);  /*EES_RC                        destroyObligation(const char* label);*/
77    
78  /* general high level wrapper functions */  /* general high level wrapper functions */
79  extern EES_RC             aos_set(const char *label, void *value, eef_arg_type type, size_t arg_bufsize, aos_argument_t * parent, aos_argument_t * child);  extern EES_RC                 aos_set(const char *label, void *value, eef_arg_type type, size_t arg_bufsize, aos_attribute_t * parent, aos_attribute_t * child);
80  extern EES_RC                               aos_set_int(const char* label, int value);  extern EES_RC                 aos_set_int(const char* label, int value);
81  extern EES_RC                               aos_set_string(const char* label, char* value);  extern EES_RC                 aos_set_string(const char* label, char* value);
82  extern EES_RC                               aos_set_pem(const char* label, char* value);  extern EES_RC                 aos_set_pem(const char* label, char* value);
83  extern EES_RC             aos_delete_argument_by_label(const char* label);  extern EES_RC                 aos_delete_attribute_by_label(const char* label);
84  extern void*                                  aos_get_value_by_label(const char* label);  extern void*                  aos_get_value_by_label(const char* label);
85  extern aos_argument_t *   aos_get_argument_by_label(const char *label);  extern aos_attribute_t *      aos_get_attribute_by_label(const char *label);
86    
87  #endif  #endif
88    

Legend:
Removed from v.1344  
changed lines
  Added in v.1345

grid.support@nikhef.nl
ViewVC Help
Powered by ViewVC 1.1.28