[gnome-boxes] util: add uuid_generate ()



commit bcef9aa7630e456c8c01ff84fe660f4d0612546a
Author: Marc-Andrà Lureau <marcandre lureau gmail com>
Date:   Sat Aug 4 23:28:31 2012 +0200

    util: add uuid_generate ()
    
    https://bugzilla.gnome.org/show_bug.cgi?id=681246

 configure.ac      |    2 ++
 src/util-app.vala |   18 ++++++++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index e5961bc..233653d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,6 +53,7 @@ SPICE_GTK_MIN_VERSION=0.12.101
 GUDEV_MIN_VERSION=165
 OSINFO_MIN_VERSION=0.1.1
 TRACKER_SPARQL=0.13.1
+UUID_REQUIRED=1.41.3
 
 PKG_CHECK_MODULES(BOXES, [
   clutter-gtk-1.0 >= $CLUTTER_GTK_MIN_VERSION
@@ -68,6 +69,7 @@ PKG_CHECK_MODULES(BOXES, [
   gudev-1.0 >= $GUDEV_MIN_VERSION
   libosinfo-1.0 >= $OSINFO_MIN_VERSION
   tracker-sparql-0.14 >= $TRACKER_SPARQL
+  uuid >= $UUID_REQUIRED
 ])
 
 VALA_ADD_CHECKFILE([src/gnome_boxes_vala.stamp])
diff --git a/src/util-app.vala b/src/util-app.vala
index cdba390..87885b4 100644
--- a/src/util-app.vala
+++ b/src/util-app.vala
@@ -339,4 +339,22 @@ namespace Boxes {
             return false;
          });
     }
+
+    namespace UUID {
+        [CCode (cname = "uuid_generate", cheader_filename = "uuid/uuid.h")]
+        internal extern static void generate ([CCode (array_length = false)] uchar[] uuid);
+        [CCode (cname = "uuid_unparse", cheader_filename = "uuid/uuid.h")]
+        internal extern static void unparse ([CCode (array_length = false)] uchar[] uuid,
+                                             [CCode (array_length = false)] uchar[] output);
+    }
+
+    string uuid_generate () {
+        var udn = new uchar[50];
+        var id = new uchar[16];
+
+        UUID.generate (id);
+        UUID.unparse (id, udn);
+
+        return (string) udn;
+    }
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]