Grid Community Toolkit  6.2.1653033972 (tag: v6.2.20220524)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
globus_object_hierarchy.idl
1 
2 
3 #
4 # Copyright 1999-2006 University of Chicago
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 
19 #
20 # this IDL is not used by the globus build process. it is a developer
21 # tool to drive automatic regeneration of the object and error type hierarchy
22 # code and/or documentation from one concise definition. it is part of a very
23 # special-purpose hack.
24 #
25 # please do not change these files unless you really know what you are doing!
26 #
27 #
28 
29 # IDL format
30 #
31 # type : parent { fields } string_func : represents
32 #
33 # types are shorthand (just the unique part of the GLOBUS_OBJECT_TYPE_* name)
34 # list local instance fields only (not inherited)
35 # instance fields default to globus_object_t * type if none given
36 # instance fields separated by comma
37 # represents description is human summary for webdoc
38 #
39 # entries must be in order, supertype before subtype
40 #
41 # PRINTABLE is handled specially and has no parent type
42 # or string_func in the IDL (because it is implemented by hand, not
43 # by the generator).
44 #
45 
46 #
47 # at this point I'm wondering if a simple hack like this will work for
48 # copy/destroy semantics
49 # copy_action destroy_action default init
50 # globus_object_t * globus_object_copy globus_object_free NULL
51 # char * globus_libc_strdup globus_free NULL
52 # int,long,size_t = ; -1
53 #
54 
55 PRINTABLE : { }
56 
57 RESOURCE : PRINTABLE { } NULL :a generic resource
58  COMPUTER : RESOURCE { char * hostname } NULL :a generic computational resource
59  GRAM_RESOURCE : COMPUTER { char * contact } NULL :a computational resource managed by GRAM
60 
61  FD_TABLE : RESOURCE { } NULL
62 
63  STORAGE : RESOURCE { long size } NULL :a generic storage resource
64  FILE : STORAGE { char * filename, int fd, FILE* filep } NULL :a filesystem object
65  MEMORY : STORAGE { } NULL :a memory allocation
66  BUFFER_POOL : STORAGE { } NULL
67 
68  COMMUNICATOR : RESOURCE { } NULL :a generic communication handle
69  SOCKET : COMMUNICATOR { } NULL :a socket communication handle
70 
71 TASK : PRINTABLE { request } NULL :a computation on a resource
72  PROCESS : TASK { computer, long pid } NULL :a local process on a computer
73  GRAMJOB : TASK { gram_resource, char * contact } NULL :a GRAM job on a GRAM-managed resource
74 
75 OPERATION : PRINTABLE { identity, computer } NULL :a generic operation hosted on a computer on behalf of some identity
76  READ : OPERATION { resource, long offset, long size } NULL :a read from a communication or storage resource
77  WRITE : OPERATION { resource, long offset, long size } NULL :a write to a communication or storage resource
78  APPEND : WRITE { } NULL :an append to a communication or storage resource
79  EXECUTE : OPERATION { globus_object_t * program } NULL
80  FORK : EXECUTE { parent } NULL
81  SYS_EXEC : EXECUTE { globus_list_t * arguments } NULL
82  SYS_EXECLE : SYS_EXEC { globus_list_t * environment } NULL
83  GRAM_REQUEST : EXECUTE { resource } NULL
84  OPEN_CREATE : OPERATION { resource } NULL
85  OPEN : OPEN_CREATE { } NULL
86  CREATE : OPEN_CREATE { globus_list_t * mode } NULL
87  CLOSE : OPERATION { resource } NULL
88 
89 USERDATA : PRINTABLE { } NULL
90  RSL : USERDATA { char * string, void * globus_rsl } NULL
91 
92 IDENTITY : PRINTABLE { } NULL
93  LOCAL_IDENTITY : IDENTITY { computer, char * username } NULL
94  GRID_IDENTITY : IDENTITY { char * subject } NULL
95  KERBEROS_IDENTITY : IDENTITY { char * principal } NULL
96 
97 TIME : PRINTABLE { time_t * time } NULL
98 
99 
List data type.
Definition: globus_list.h:44