[libvirt] [libvirt-java] [PATCH 59/65] Implement Domain.screenshot

Claudio Bley cbley at av-test.de
Thu Feb 13 15:23:07 UTC 2014


This wraps the native virDomainScreenshot libvirt function available
since version 0.9.2.

Signed-off-by: Claudio Bley <cbley at av-test.de>
---
 src/main/java/org/libvirt/Domain.java      |   10 ++++++++++
 src/main/java/org/libvirt/Stream.java      |    4 ++++
 src/main/java/org/libvirt/jna/Libvirt.java |    1 +
 3 files changed, 15 insertions(+)

diff --git a/src/main/java/org/libvirt/Domain.java b/src/main/java/org/libvirt/Domain.java
index 1c0af91..a9113cf 100644
--- a/src/main/java/org/libvirt/Domain.java
+++ b/src/main/java/org/libvirt/Domain.java
@@ -1285,6 +1285,16 @@ public class Domain {
         processError(libvirt.virDomainSave(VDP, to));
     }
 
+    public String screenshot(Stream stream, int screen) throws LibvirtException {
+        Pointer ptr = processError(libvirt.virDomainScreenshot(this.VDP, stream.getVSP(), screen, 0));
+        stream.markReadable();
+        try {
+            return Library.getString(ptr);
+        } finally {
+            Library.free(ptr);
+        }
+    }
+
     /**
      * Configures the network to be automatically started when the host machine
      * boots.
diff --git a/src/main/java/org/libvirt/Stream.java b/src/main/java/org/libvirt/Stream.java
index 71a2a6e..97bebdd 100644
--- a/src/main/java/org/libvirt/Stream.java
+++ b/src/main/java/org/libvirt/Stream.java
@@ -175,6 +175,10 @@ public class Stream implements ByteChannel {
         return success;
     }
 
+    StreamPointer getVSP() {
+        return VSP;
+    }
+
     /**
      * Receives data from the stream into the buffer provided.
      *
diff --git a/src/main/java/org/libvirt/jna/Libvirt.java b/src/main/java/org/libvirt/jna/Libvirt.java
index c383ba6..80dacdb 100644
--- a/src/main/java/org/libvirt/jna/Libvirt.java
+++ b/src/main/java/org/libvirt/jna/Libvirt.java
@@ -305,6 +305,7 @@ public interface Libvirt extends Library {
     int virDomainResume(DomainPointer virDomainPtr);
     int virDomainSave(DomainPointer virDomainPtr, String to);
     int virDomainSendKey(DomainPointer virDomainPtr, int codeset, int holdtime, int[] keycodes, int nkeycodes, int flags);
+    Pointer virDomainScreenshot(DomainPointer virDomainPtr, StreamPointer virStreamPtr, int screen, int flags);
     int virDomainSetAutostart(DomainPointer virDomainPtr, int autoStart);
     int virDomainSetMaxMemory(DomainPointer virDomainPtr, NativeLong maxMemory);
     int virDomainSetMemory(DomainPointer virDomainPtr, NativeLong maxMemory);
-- 
1.7.9.5




More information about the libvir-list mailing list