+++ /dev/null
-/* $Id$
- * CORBA ORBit IDL definition of sandbox intra-captive interface
- * Copyright (C) 2002-2003 Jan Kratochvil <project-captive@jankratochvil.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; exactly version 2 of June 1991 is required
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-module Captive
-{
- typedef sequence<octet> Bytes;
-
-
- typedef unsigned long GnomeVFSResult; /* enum */
- exception GnomeVFSResultException {
- GnomeVFSResult gnome_vfs_result;
- };
-
-
- typedef unsigned long GIOStatus; /* enum */
- exception GIOStatusException {
- GIOStatus g_io_status;
- };
-
-
- typedef unsigned long GLogLevelFlags; /* enum mask */
- struct GLogMessage { /* accepted by 'GLogFunc' */
- /* string log_domain; always "Captive" */
- GLogLevelFlags log_level;
- string message;
- };
- exception GLogMessageFatal {
- GLogMessage g_log_message;
- };
-
- interface GLogFunc {
- /* Do not use 'oneway' as we would loose logging order coherency. */
- void g_log_func(in GLogMessage g_log_message);
- };
-
-
- typedef unsigned long GnomeVFSFileType; /* enum */
- typedef unsigned short GnomeVFSFilePermissions;
- typedef unsigned long long time_t;
- typedef unsigned long long GnomeVFSFileSize;
- typedef unsigned long long GnomeVFSFileFlags;
- typedef long long GnomeVFSFileOffset;
- typedef unsigned long GnomeVFSSeekPosition; /* enum */
- typedef unsigned long GnomeVFSSetFileInfoMask; /* enum mask */
- typedef unsigned long long GnomeVFSOpenMode; /* enum mask */
- struct GnomeVFSFileInfo {
- string name; /* Base name of the file (no path). */
- /* File type (i.e. regular, directory, block device...). */
- GnomeVFSFileType type;
- boolean type_valid;
- GnomeVFSFilePermissions permissions; /* File permissions. */
- boolean permissions_valid;
- GnomeVFSFileSize size; /* Size in bytes. */
- boolean size_valid;
- GnomeVFSFileSize block_count; /* Size measured in units of 512-byte blocks. */
- boolean block_count_valid;
- /* Access, modification and change times. */
- time_t atime; /* not valid if ==(time_t)0 */
- time_t mtime; /* not valid if ==(time_t)0 */
- time_t ctime; /* not valid if ==(time_t)0 */
- GnomeVFSFileFlags flags;
- boolean flags_valid;
- };
-
-
- typedef long long GInt64;
- typedef unsigned long long GUInt64;
- typedef unsigned long GSeekType; /* enum */
- typedef unsigned long GSize;
- interface CaptiveIOChannel {
- void read(out Bytes buffer,in GSize count)
- raises (GIOStatusException,GLogMessageFatal);
- void write(in Bytes buffer,out GSize bytes_written_return)
- raises (GIOStatusException,GLogMessageFatal);
- void seek(in GInt64 offset,in GSeekType type)
- raises (GIOStatusException,GLogMessageFatal);
- GUInt64 size()
- raises (GLogMessageFatal);
- };
-
-
- typedef unsigned long CaptiveOptionRwmode; /* enum */
- typedef unsigned long CaptiveOptionMedia; /* enum */
- struct CaptiveOptionsModule {
- string pathname_utf8;
- Bytes data;
- };
- typedef sequence<CaptiveOptionsModule> CaptiveOptionsModuleList;
- struct CaptiveOptions {
- GLogFunc g_log_func;
- CaptiveOptionsModule filesystem;
- CaptiveOptionRwmode rwmode;
- CaptiveOptionMedia media;
- boolean debug_messages;
- CaptiveIOChannel image_iochannel;
- CaptiveOptionsModuleList load_module;
- };
-
-
- typedef unsigned long GUInt32;
- struct CaptiveVfsVolumeInfo {
- GUInt32 block_size;
- GUInt64 bytes;
- GUInt64 bytes_free;
- GUInt64 bytes_available;
- };
-
-
- interface Directory {
- void read(out GnomeVFSFileInfo file_info)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void remove()
- raises (GnomeVFSResultException,GLogMessageFatal);
- void shutdown();
- };
-
-
- interface File {
- void read(out Bytes buffer,in GnomeVFSFileSize num_bytes)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void write(in Bytes buffer,out GnomeVFSFileSize bytes_written_return)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void seek(in GnomeVFSSeekPosition whence,in GnomeVFSFileOffset offset)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void tell(out GnomeVFSFileOffset offset_return)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void remove()
- raises (GnomeVFSResultException,GLogMessageFatal);
- void file_info_get(out GnomeVFSFileInfo file_info)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void file_info_set(in GnomeVFSFileInfo file_info,in GnomeVFSSetFileInfoMask mask)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void truncate(in GnomeVFSFileSize file_size)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void move(in string pathname_new,in boolean force_replace)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void shutdown();
- };
-
-
- interface Vfs {
- void init(in CaptiveOptions options);
- void shutdown();
- Directory directory_new_open(in string pathname)
- raises (GnomeVFSResultException,GLogMessageFatal);
- Directory directory_new_make(in string pathname,in GnomeVFSFilePermissions perm)
- raises (GnomeVFSResultException,GLogMessageFatal);
- File file_new_open(in string pathname,in GnomeVFSOpenMode mode)
- raises (GnomeVFSResultException,GLogMessageFatal);
- File file_new_create(in string pathname,in GnomeVFSOpenMode mode,in boolean exclusive,in unsigned long perm)
- raises (GnomeVFSResultException,GLogMessageFatal);
- void volume_info_get(out CaptiveVfsVolumeInfo volume_info)
- raises (GnomeVFSResultException,GLogMessageFatal);
- };
-};