1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
3
* Copyright (C) 2008 David Zeuthen <zeuthen@gmail.com>
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; either version 2 of the License, or
8
* (at your option) any later version.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22
#include <glib/gi18n-lib.h>
29
#include <sys/types.h>
34
#include <glib-object.h>
36
#include "udisksfstabentry.h"
37
#include "udisksprivate.h"
42
* The #UDisksFstabEntry structure contains only private data and should
43
* only be accessed using the provided API.
45
struct _UDisksFstabEntry
47
GObject parent_instance;
57
typedef struct _UDisksFstabEntryClass UDisksFstabEntryClass;
59
struct _UDisksFstabEntryClass
61
GObjectClass parent_class;
64
G_DEFINE_TYPE (UDisksFstabEntry, udisks_fstab_entry, G_TYPE_OBJECT);
67
udisks_fstab_entry_finalize (GObject *object)
69
UDisksFstabEntry *entry = UDISKS_FSTAB_ENTRY (object);
71
g_free (entry->fsname);
76
if (G_OBJECT_CLASS (udisks_fstab_entry_parent_class)->finalize)
77
G_OBJECT_CLASS (udisks_fstab_entry_parent_class)->finalize (object);
81
udisks_fstab_entry_init (UDisksFstabEntry *fstab_entry)
86
udisks_fstab_entry_class_init (UDisksFstabEntryClass *klass)
88
GObjectClass *gobject_class;
90
gobject_class = G_OBJECT_CLASS (klass);
91
gobject_class->finalize = udisks_fstab_entry_finalize;
95
_udisks_fstab_entry_new (const struct mntent *mntent)
97
UDisksFstabEntry *entry;
99
entry = UDISKS_FSTAB_ENTRY (g_object_new (UDISKS_TYPE_FSTAB_ENTRY, NULL));
100
entry->fsname = g_strdup (mntent->mnt_fsname);
101
entry->dir = g_strdup (mntent->mnt_dir);
102
entry->type = g_strdup (mntent->mnt_type);
103
entry->opts = g_strdup (mntent->mnt_opts);
104
entry->freq = mntent->mnt_freq;
105
entry->passno = mntent->mnt_passno;
111
* udisks_fstab_entry_compare:
112
* @entry: A #UDisksFstabEntry
113
* @other_entry: Another #UDisksFstabEntry.
115
* Comparison function for comparing two #UDisksFstabEntry objects.
117
* Returns: Negative value if @entry < @other_entry; zero if @entry = @other_entry; positive value if @entry > @other_entry.
120
udisks_fstab_entry_compare (UDisksFstabEntry *entry,
121
UDisksFstabEntry *other_entry)
125
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), 0);
126
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (other_entry), 0);
128
ret = g_strcmp0 (other_entry->fsname, entry->fsname);
132
ret = g_strcmp0 (other_entry->dir, entry->dir);
136
ret = g_strcmp0 (other_entry->type, entry->type);
140
ret = g_strcmp0 (other_entry->opts, entry->opts);
144
ret = entry->freq - other_entry->freq;
148
ret = entry->passno - other_entry->passno;
155
* udisks_fstab_entry_get_fsname:
156
* @entry: A #UDisksFstabEntry.
158
* Gets the fsname field of @entry.
160
* Returns: The fsname field.
163
udisks_fstab_entry_get_fsname (UDisksFstabEntry *entry)
165
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), NULL);
166
return entry->fsname;
170
* udisks_fstab_entry_get_dir:
171
* @entry: A #UDisksFstabEntry.
173
* Gets the dir field of @entry.
175
* Returns: The dir field.
178
udisks_fstab_entry_get_dir (UDisksFstabEntry *entry)
180
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), NULL);
185
* udisks_fstab_entry_get_fstype:
186
* @entry: A #UDisksFstabEntry.
188
* Gets the type field of @entry.
190
* Returns: The type field.
193
udisks_fstab_entry_get_fstype (UDisksFstabEntry *entry)
195
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), NULL);
200
* udisks_fstab_entry_get_opts:
201
* @entry: A #UDisksFstabEntry.
203
* Gets the opts field of @entry.
205
* Returns: The opts field.
208
udisks_fstab_entry_get_opts (UDisksFstabEntry *entry)
210
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), NULL);
215
* udisks_fstab_entry_get_freq:
216
* @entry: A #UDisksFstabEntry.
218
* Gets the freq field of @entry.
220
* Returns: The freq field.
223
udisks_fstab_entry_get_freq (UDisksFstabEntry *entry)
225
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), 0);
230
* udisks_fstab_entry_get_passno:
231
* @entry: A #UDisksFstabEntry.
233
* Gets the passno field of @entry.
235
* Returns: The passno field.
238
udisks_fstab_entry_get_passno (UDisksFstabEntry *entry)
240
g_return_val_if_fail (UDISKS_IS_FSTAB_ENTRY (entry), 0);
241
return entry->passno;