globus_common  17.10
globus_object_hierarchy.idl
1 # this IDL is not used by the globus build process. it is a developer
2 # tool to drive automatic regeneration of the object and error type hierarchy
3 # code and/or documentation from one concise definition. it is part of a very
4 # special-purpose hack.
5 #
6 # please do not change these files unless you really know what you are doing!
7 #
8 #
9 
10 # IDL format
11 #
12 # type : parent { fields } string_func : represents
13 #
14 # types are shorthand (just the unique part of the GLOBUS_OBJECT_TYPE_* name)
15 # list local instance fields only (not inherited)
16 # instance fields default to globus_object_t * type if none given
17 # instance fields separated by comma
18 # represents description is human summary for webdoc
19 #
20 # entries must be in order, supertype before subtype
21 #
22 # PRINTABLE is handled specially and has no parent type
23 # or string_func in the IDL (because it is implemented by hand, not
24 # by the generator).
25 #
26 
27 #
28 # at this point I'm wondering if a simple hack like this will work for
29 # copy/destroy semantics
30 # copy_action destroy_action default init
31 # globus_object_t * globus_object_copy globus_object_free NULL
32 # char * globus_libc_strdup globus_free NULL
33 # int,long,size_t = ; -1
34 #
35 
36 PRINTABLE : { }
37 
38 RESOURCE : PRINTABLE { } NULL :a generic resource
39  COMPUTER : RESOURCE { char * hostname } NULL :a generic computational resource
40  GRAM_RESOURCE : COMPUTER { char * contact } NULL :a computational resource managed by GRAM
41 
42  FD_TABLE : RESOURCE { } NULL
43 
44  STORAGE : RESOURCE { long size } NULL :a generic storage resource
45  FILE : STORAGE { char * filename, int fd, FILE* filep } NULL :a filesystem object
46  MEMORY : STORAGE { } NULL :a memory allocation
47  BUFFER_POOL : STORAGE { } NULL
48 
49  COMMUNICATOR : RESOURCE { } NULL :a generic communication handle
50  SOCKET : COMMUNICATOR { } NULL :a socket communication handle
51 
52 TASK : PRINTABLE { request } NULL :a computation on a resource
53  PROCESS : TASK { computer, long pid } NULL :a local process on a computer
54  GRAMJOB : TASK { gram_resource, char * contact } NULL :a GRAM job on a GRAM-managed resource
55 
56 OPERATION : PRINTABLE { identity, computer } NULL :a generic operation hosted on a computer on behalf of some identity
57  READ : OPERATION { resource, long offset, long size } NULL :a read from a communication or storage resource
58  WRITE : OPERATION { resource, long offset, long size } NULL :a write to a communication or storage resource
59  APPEND : WRITE { } NULL :an append to a communication or storage resource
60  EXECUTE : OPERATION { globus_object_t * program } NULL
61  FORK : EXECUTE { parent } NULL
62  SYS_EXEC : EXECUTE { globus_list_t * arguments } NULL
63  SYS_EXECLE : SYS_EXEC { globus_list_t * environment } NULL
64  GRAM_REQUEST : EXECUTE { resource } NULL
65  OPEN_CREATE : OPERATION { resource } NULL
66  OPEN : OPEN_CREATE { } NULL
67  CREATE : OPEN_CREATE { globus_list_t * mode } NULL
68  CLOSE : OPERATION { resource } NULL
69 
70 USERDATA : PRINTABLE { } NULL
71  RSL : USERDATA { char * string, void * globus_rsl } NULL
72 
73 IDENTITY : PRINTABLE { } NULL
74  LOCAL_IDENTITY : IDENTITY { computer, char * username } NULL
75  GRID_IDENTITY : IDENTITY { char * subject } NULL
76  KERBEROS_IDENTITY : IDENTITY { char * principal } NULL
77 
78 TIME : PRINTABLE { time_t * time } NULL
79 
80 
List data type.
Definition: globus_list.h:29