00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */ 00002 00003 /* 00004 * Copyright (c) 2005, 2006, 2007 Ciaran McCreesh 00005 * Copyright (c) 2006 Mark Loeser 00006 * 00007 * This file is part of the Paludis package manager. Paludis is free software; 00008 * you can redistribute it and/or modify it under the terms of the GNU General 00009 * Public License version 2, as published by the Free Software Foundation. 00010 * 00011 * Paludis 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 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00018 * Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_FS_ENTRY_FWD_HH 00022 #define PALUDIS_GUARD_PALUDIS_UTIL_FS_ENTRY_FWD_HH 1 00023 00024 #include <iosfwd> 00025 #include <paludis/util/attributes.hh> 00026 #include <paludis/util/set-fwd.hh> 00027 #include <paludis/util/sequence-fwd.hh> 00028 00029 /** \file 00030 * Forward declarations for paludis/util/fs_entry.hh . 00031 * 00032 * \ingroup g_fs 00033 */ 00034 00035 namespace paludis 00036 { 00037 class FSError; 00038 00039 /** 00040 * File permissions used by FSEntry. 00041 * 00042 * \ingroup g_fs 00043 */ 00044 enum FSPermission 00045 { 00046 fs_perm_read, ///< read permission on file 00047 fs_perm_write, ///< write permission on file 00048 fs_perm_execute ///< execute permission on file 00049 }; 00050 00051 /** 00052 * User classes used by FSEntry. 00053 * 00054 * \ingroup g_fs 00055 */ 00056 enum FSUserGroup 00057 { 00058 fs_ug_owner, ///< owner permission 00059 fs_ug_group, ///< group permission 00060 fs_ug_others ///< others permission 00061 }; 00062 00063 class FSEntry; 00064 00065 /** 00066 * An FSEntry can be written to an ostream. 00067 * 00068 * \ingroup g_fs 00069 */ 00070 std::ostream & operator<< (std::ostream & s, const FSEntry & f) PALUDIS_VISIBLE; 00071 00072 /** 00073 * A sequence of FSEntry instances. 00074 * 00075 * \ingroup g_fs 00076 */ 00077 typedef Sequence<FSEntry> FSEntrySequence; 00078 00079 /** 00080 * A set of FSEntry instances. 00081 * 00082 * \ingroup g_fs 00083 */ 00084 typedef Set<FSEntry> FSEntrySet; 00085 } 00086 00087 #endif