00001 /* 00002 * Copyright 2008, 2009 Alexandros Frantzis, Michael Iatrou 00003 * 00004 * This file is part of libbls. 00005 * 00006 * libbls is free software: you can redistribute it and/or modify it under the 00007 * terms of the GNU Lesser General Public License as published by the Free Software 00008 * Foundation, either version 3 of the License, or (at your option) any later 00009 * version. 00010 * 00011 * libbls is distributed in the hope that it will be useful, but WITHOUT ANY 00012 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00013 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00014 * details. 00015 * 00016 * You should have received a copy of the GNU General Public License along with 00017 * libbls. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 /** 00021 * @file data_object_file.h 00022 * 00023 * Definitions of constructor functions for the file data_object_t. 00024 */ 00025 #ifndef _DATA_OBJECT_FILE_H 00026 #define _DATA_OBJECT_FILE_H 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 #include "data_object.h" 00033 #include <sys/types.h> 00034 00035 /** 00036 * @addtogroup data_object 00037 * @{ 00038 */ 00039 00040 /** 00041 * A function used to close the file owned by a file data_object_t. 00042 */ 00043 typedef int (data_object_file_close_func)(int fd); 00044 00045 /** 00046 * @name Constructors 00047 * @{ 00048 */ 00049 00050 int data_object_file_new(data_object_t **obj, int fd); 00051 00052 int data_object_tempfile_new(data_object_t **obj, int fd, char *path); 00053 00054 int data_object_file_set_close_func(data_object_t *obj, 00055 data_object_file_close_func *file_close); 00056 00057 /** @} */ 00058 /** @} */ 00059 00060 #ifdef __cplusplus 00061 } 00062 #endif 00063 00064 #endif /* _DATA_OBJECT_FILE_H */ 00065