This wraps the native virDomainScreenshot libvirt function available
since version 0.9.2.
Signed-off-by: Claudio Bley <cbley(a)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