4 # Copyright 1999-2006 University of Chicago
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
10 # http://www.apache.org/licenses/LICENSE-2.0
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.
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.
25 # please do not change these files unless you really know what you are doing!
31 # type : parent { fields } string_func : represents
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
39 # entries must be in order, supertype before subtype
41 # PRINTABLE is handled specially and has no parent type
42 # or string_func in the IDL (because it is implemented by hand, not
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
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
61 FD_TABLE : RESOURCE { } NULL
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
68 COMMUNICATOR : RESOURCE { } NULL :a
generic communication handle
69 SOCKET : COMMUNICATOR { } NULL :a socket communication handle
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
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
83 GRAM_REQUEST : EXECUTE { resource } NULL
84 OPEN_CREATE : OPERATION { resource } NULL
85 OPEN : OPEN_CREATE { } NULL
87 CLOSE : OPERATION { resource } NULL
89 USERDATA : PRINTABLE { } NULL
90 RSL : USERDATA {
char * string,
void * globus_rsl } NULL
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
97 TIME : PRINTABLE { time_t * time } NULL
List data type.
Definition: globus_list.h:44