Finished and deployed CORBA sandbox separation
[captive.git] / src / libcaptive / sandbox / sandbox.idl
1 /* $Id$
2  * CORBA ORBit IDL definition of sandbox intra-captive interface
3  * Copyright (C) 2002-2003 Jan Kratochvil <project-captive@jankratochvil.net>
4  * 
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; exactly version 2 of June 1991 is required
8  * 
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  * 
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19
20 module Captive
21 {
22         typedef unsigned long GnomeVFSResult;   /* enum */
23         exception GnomeVFSResultException {
24                 GnomeVFSResult gnome_vfs_result;
25                 };
26
27
28         typedef unsigned long GLogLevelFlags;   /* enum mask */
29         struct GlibLogMessage { /* accepted by 'GLogFunc' */
30                 /* string log_domain; always "Captive" */
31                 GLogLevelFlags log_level;
32                 string message;
33                 };
34         exception GlibLogMessageFatal {
35                 GlibLogMessage g_log_message;
36                 };
37
38         interface GlibLogFunc {
39                 /* Do not use 'oneway' as we would loose logging order coherency. */
40                 void glibLogFunc(in GlibLogMessage glib_log_message);
41                 };
42
43
44         typedef unsigned long      GnomeVFSFileType;        /* enum */
45         typedef unsigned short     GnomeVFSFilePermissions;
46         typedef unsigned long long time_t;
47         typedef unsigned long long GnomeVFSFileSize;
48         typedef unsigned long long GnomeVFSFileFlags;
49         typedef          long long GnomeVFSFileOffset;
50         typedef unsigned long      GnomeVFSSeekPosition;    /* enum */
51         typedef unsigned long      GnomeVFSSetFileInfoMask; /* enum mask */
52         typedef unsigned long long GnomeVFSOpenMode;          /* enum mask */
53         struct GnomeVFSFileInfo {
54                 string name;    /* Base name of the file (no path). */
55                 /* File type (i.e. regular, directory, block device...). */
56                 GnomeVFSFileType type;
57                 boolean type_valid;
58                 GnomeVFSFilePermissions permissions;    /* File permissions. */
59                 boolean permissions_valid;
60                 GnomeVFSFileSize size;  /* Size in bytes. */
61                 boolean size_valid;
62                 GnomeVFSFileSize block_count;   /* Size measured in units of 512-byte blocks. */
63                 boolean block_count_valid;
64                 /* Access, modification and change times. */
65                 time_t atime;   /* not valid if ==(time_t)0 */
66                 time_t mtime;   /* not valid if ==(time_t)0 */
67                 time_t ctime;   /* not valid if ==(time_t)0 */
68                 GnomeVFSFileFlags flags;
69                 boolean flags_valid;
70                 };
71
72         typedef sequence<octet> Bytes;
73
74
75         interface Directory {
76                 void read(out GnomeVFSFileInfo file_info)
77                         raises (GnomeVFSResultException,GlibLogMessageFatal);
78                 void remove()
79                         raises (GnomeVFSResultException,GlibLogMessageFatal);
80                 };
81
82
83         interface File {
84                 void read(out Bytes buffer,in GnomeVFSFileSize num_bytes)
85                         raises (GnomeVFSResultException,GlibLogMessageFatal);
86                 void write(in Bytes buffer,out GnomeVFSFileSize bytes_written_return)
87                         raises (GnomeVFSResultException,GlibLogMessageFatal);
88                 void seek(in GnomeVFSSeekPosition whence,in GnomeVFSFileOffset offset)
89                         raises (GnomeVFSResultException,GlibLogMessageFatal);
90                 void tell(out GnomeVFSFileOffset offset_return)
91                         raises (GnomeVFSResultException,GlibLogMessageFatal);
92                 void remove()
93                         raises (GnomeVFSResultException,GlibLogMessageFatal);
94                 void file_info_get(out GnomeVFSFileInfo file_info)
95                         raises (GnomeVFSResultException,GlibLogMessageFatal);
96                 void file_info_set(in GnomeVFSFileInfo file_info,in GnomeVFSSetFileInfoMask mask)
97                         raises (GnomeVFSResultException,GlibLogMessageFatal);
98                 void truncate(in GnomeVFSFileSize file_size)
99                         raises (GnomeVFSResultException,GlibLogMessageFatal);
100                 void move(in string pathname_new,in boolean force_replace)
101                         raises (GnomeVFSResultException,GlibLogMessageFatal);
102                 };
103
104
105         interface Vfs {
106                 void registerGlibLogFunc(in GlibLogFunc glib_log_func);
107                 void shutdown();
108                 Directory directory_new_open(in string pathname)
109                         raises (GnomeVFSResultException,GlibLogMessageFatal);
110                 Directory directory_new_make(in string pathname,in GnomeVFSFilePermissions perm)
111                         raises (GnomeVFSResultException,GlibLogMessageFatal);
112                 File file_new_open(in string pathname,in GnomeVFSOpenMode mode)
113                         raises (GnomeVFSResultException,GlibLogMessageFatal);
114                 File file_new_create(in string pathname,in GnomeVFSOpenMode mode,in boolean exclusive,in unsigned long perm)
115                         raises (GnomeVFSResultException,GlibLogMessageFatal);
116                 };
117 };