Home | History | Annotate | Download | only in bus
      1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
      2 /* desktop-file.h  .desktop file parser
      3  *
      4  * Copyright (C) 2003  CodeFactory AB
      5  *
      6  * Licensed under the Academic Free License version 2.1
      7  *
      8  * This program is free software; you can redistribute it and/or modify
      9  * it under the terms of the GNU General Public License as published by
     10  * the Free Software Foundation; either version 2 of the License, or
     11  * (at your option) any later version.
     12  *
     13  * This program is distributed in the hope that it will be useful,
     14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16  * GNU General Public License for more details.
     17  *
     18  * You should have received a copy of the GNU General Public License
     19  * along with this program; if not, write to the Free Software
     20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
     21  *
     22  */
     23 #ifndef BUS_DESKTOP_FILE_H
     24 #define BUS_DESKTOP_FILE_H
     25 
     26 #include <dbus/dbus.h>
     27 #include <dbus/dbus-string.h>
     28 
     29 #define BUS_DESKTOP_PARSE_ERROR_INVALID_SYNTAX  "org.freedesktop.DBus.DesktopParseError.InvalidSyntax"
     30 #define BUS_DESKTOP_PARSE_ERROR_INVALID_ESCAPES "org.freedesktop.DBus.DesktopParseError.InvalidEscapes"
     31 #define BUS_DESKTOP_PARSE_ERROR_INVALID_CHARS   "org.freedesktop.DBus.DesktopParseError.InvalidChars"
     32 
     33 #define DBUS_SERVICE_SECTION  "D-BUS Service"
     34 #define DBUS_SERVICE_NAME     "Name"
     35 #define DBUS_SERVICE_EXEC     "Exec"
     36 #define DBUS_SERVICE_USER     "User"
     37 #define DBUS_SERVICE_GROUP    "Group"
     38 #define DBUS_SERVICE_SYSTEMD_SERVICE "SystemdService"
     39 
     40 typedef struct BusDesktopFile BusDesktopFile;
     41 
     42 BusDesktopFile *bus_desktop_file_load (DBusString     *filename,
     43 				       DBusError      *error);
     44 void            bus_desktop_file_free (BusDesktopFile *file);
     45 
     46 dbus_bool_t bus_desktop_file_get_raw    (BusDesktopFile  *desktop_file,
     47 					 const char      *section_name,
     48 					 const char      *keyname,
     49 					 const char     **val);
     50 dbus_bool_t bus_desktop_file_get_string (BusDesktopFile  *desktop_file,
     51 					 const char      *section,
     52 					 const char      *keyname,
     53 					 char           **val,
     54 					 DBusError       *error);
     55 
     56 
     57 #endif /* BUS_DESKTOP_FILE_H */
     58