Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

file_object.h

Go to the documentation of this file.
00001 /*
00002  * $Id: file_object.h 13706 2007-05-18 19:00:53Z cbiere $
00003  *
00004  * Copyright (c) 2006, Christian Biere
00005  *
00006  *----------------------------------------------------------------------
00007  * This file is part of gtk-gnutella.
00008  *
00009  *  gtk-gnutella is free software; you can redistribute it and/or modify
00010  *  it under the terms of the GNU General Public License as published by
00011  *  the Free Software Foundation; either version 2 of the License, or
00012  *  (at your option) any later version.
00013  *
00014  *  gtk-gnutella is distributed in the hope that it will be useful,
00015  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  *  GNU General Public License for more details.
00018  *
00019  *  You should have received a copy of the GNU General Public License
00020  *  along with gtk-gnutella; if not, write to the Free Software
00021  *  Foundation, Inc.:
00022  *      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023  *----------------------------------------------------------------------
00024  */
00025 
00026 #ifndef _core_file_object_h_
00027 #define _core_file_object_h_
00028 
00029 #include "common.h"
00030 
00031 void file_object_init(void);
00032 void file_object_close(void);
00033 
00034 struct file_object *file_object_new(int fd, const char *pathname, int accmode);
00035 struct file_object *file_object_open(const char *pathname, int accmode);
00036 
00037 ssize_t file_object_pwrite(const struct file_object *fo,
00038                     const void *data, size_t buf, filesize_t offset);
00039 ssize_t file_object_pwritev(const struct file_object *fo,
00040                     const struct iovec *iov, int iov_cnt, filesize_t offset);
00041 ssize_t file_object_pread(const struct file_object *fo,
00042                     void *data, size_t size, filesize_t pos);
00043 ssize_t file_object_preadv(const struct file_object *fo,
00044                     struct iovec *iov, int iov_cnt, filesize_t offset);
00045 
00046 int file_object_get_fd(const struct file_object *fo);
00047 const char *file_object_get_pathname(const struct file_object *fo);
00048 
00049 void file_object_release(struct file_object **fo_ptr);
00050 void file_object_revoke(const char *pathname);
00051 
00052 #endif /* _core_file_object_h_ */
00053 /* vi: set ts=4 sw=4 cindent: */

Generated on Sat Jun 30 17:53:23 2007 for gtk-gnutella by  doxygen 1.3.9.1