On Sat, Jul 25, 2009 at 08:02:11AM -0400, Bryan Kearney wrote:
> ---
>  src/org/libvirt/Connect.java                     |    9 +
>  src/org/libvirt/Domain.java                      |  307 
> +++++++++++++---------
>  src/org/libvirt/DomainBlockStats.java            |   13 +
>  src/org/libvirt/DomainInfo.java                  |   14 +
>  src/org/libvirt/DomainInterfaceStats.java        |   17 ++
>  src/org/libvirt/ErrorHandler.java                |   11 +-
>  src/org/libvirt/Network.java                     |    8 +-
>  src/org/libvirt/NodeInfo.java                    |    4 +-
>  src/org/libvirt/SchedBooleanParameter.java       |   20 ++-
>  src/org/libvirt/SchedDoubleParameter.java        |   13 +
>  src/org/libvirt/SchedIntParameter.java           |   13 +
>  src/org/libvirt/SchedLongParameter.java          |   14 +
>  src/org/libvirt/SchedParameter.java              |   43 +++
>  src/org/libvirt/SchedUintParameter.java          |   13 +
>  src/org/libvirt/SchedUlongParameter.java         |   13 +
>  src/org/libvirt/VcpuInfo.java                    |   13 +
>  src/org/libvirt/jna/Libvirt.java                 |   42 +++-
>  src/org/libvirt/jna/virDomainBlockStats.java     |   12 +
>  src/org/libvirt/jna/virDomainInfo.java           |   13 +
>  src/org/libvirt/jna/virDomainInterfaceStats.java |   16 ++
>  src/org/libvirt/jna/virSchedParameter.java       |   11 +
>  src/org/libvirt/jna/virSchedParameterValue.java  |   13 +
>  src/org/libvirt/jna/virVcpuInfo.java             |   12 +
>  src/test.java                                    |  154 ++++++-----
>  24 files changed, 595 insertions(+), 203 deletions(-)
>  create mode 100644 src/org/libvirt/jna/virDomainBlockStats.java
>  create mode 100644 src/org/libvirt/jna/virDomainInfo.java
>  create mode 100644 src/org/libvirt/jna/virDomainInterfaceStats.java
>  create mode 100644 src/org/libvirt/jna/virSchedParameter.java
>  create mode 100644 src/org/libvirt/jna/virSchedParameterValue.java
>  create mode 100644 src/org/libvirt/jna/virVcpuInfo.java
[...]
>      }
> +    
> +    public static int[] convertUUIDBytes(byte bytes[]) {
> +        int[] returnValue = new int[Libvirt.VIR_UUID_BUFLEN] ;
> +        for (int x = 0 ; x < Libvirt.VIR_UUID_BUFLEN ; x++) {
> +            returnValue[x] = (int) bytes[x] ;
> +        }
> +        return returnValue ;
> +    }
> +                      

  bahh, it's not too bad :-)

[..]
> +import com.sun.jna.ptr.IntByReference;
[..]
>       public boolean getAutostart() throws LibvirtException{
> -//           return _getAutostart(VDP);
> -        throw new RuntimeException("Not Implemented") ;          
> +        IntByReference autoStart = new IntByReference() ;
> +        libvirt.virDomainGetAutostart(VDP, autoStart) ;
> +        processError() ;        
> +        return autoStart.getValue() != 0 ? true : false ; 
>       }

  oh, it can handle int * ... cool :-)

[...]
>       public SchedParameter[] getSchedulerParameters() throws 
> LibvirtException{
> -//           return _getSchedulerParameters(VDP);
> -        throw new RuntimeException("Not Implemented") ;          
> +         IntByReference nParams = new IntByReference() ;
> +         SchedParameter[] returnValue = new SchedParameter[0] ; 
> +         String scheduler = libvirt.virDomainGetSchedulerType(VDP, nParams) ;
> +         processError() ;
> +         if (scheduler != null) {
> +             virSchedParameter[] nativeParams = new 
> virSchedParameter[nParams.getValue()] ;
> +             returnValue = new SchedParameter[nParams.getValue()] ;
> +             libvirt.virDomainGetSchedulerParameters(VDP, nativeParams, 
> nParams) ;
> +             processError() ;
> +             for (int x = 0 ; x < nParams.getValue() ; x++ ) {
> +                 returnValue[x] = SchedParameter.create(nativeParams[x]) ;
> +             }
> +         } 
> +         
> +         return returnValue ;
>       }
>  
> -//   private native SchedParameter[] _getSchedulerParameters (long VDP) 
> throws LibvirtException;
>  
>       /**
>        * Changes the scheduler parameters
> @@ -220,11 +248,16 @@ public class Domain {
>        * @throws LibvirtException
>        */
>       public void setSchedulerParameters(SchedParameter[] params) throws 
> LibvirtException{
> -//           _setSchedulerParameters(VDP, params);
> -        throw new RuntimeException("Not Implemented") ;          
> +        IntByReference nParams = new IntByReference() ;
> +        nParams.setValue(params.length) ;
> +        virSchedParameter[] input = new virSchedParameter[params.length] ; 
> +        for (int x = 0 ; x < params.length ; x++) {
> +            input[x] = SchedParameter.toNative(params[x]) ;
> +        }
> +        libvirt.virDomainSetSchedulerParameters(VDP, input, nParams) ;
> +        processError() ;         
>       }

  Get and SetSchedulerParameters are the most free-form APIs in libvirt,
if that's all it takes, I would say congrats to JNA design,  of course
there is a separate classes for them but they are really simple and the
the result looks natural, great !

[...]
> +++ b/src/org/libvirt/jna/virDomainBlockStats.java
> @@ -0,0 +1,12 @@
> +package org.libvirt.jna;
> +
> +import com.sun.jna.Structure;
> +
> +public class virDomainBlockStats extends Structure
> +{
> +    public long rd_req ;
> +    public long rd_bytes ;    
> +    public long wr_req ;
> +    public long wr_bytes ;    
> +    public long errs ;    
> +}

  Hum ... in C we have

struct _virDomainBlockStats {
  long long rd_req; /* number of read requests */
  long long rd_bytes; /* number of read bytes */
  long long wr_req; /* number of write requests */
  long long wr_bytes; /* number of written bytes */
  long long errs;   /* In Xen this returns the mysterious 'oo_req'. */
};

  will java long really be able to match C long long scope ?

> +package org.libvirt.jna;
> +
> +import com.sun.jna.Structure;
> +
> +public class virDomainInterfaceStats extends Structure
> +{
> +    public long rx_bytes;
> +    public long rx_packets;
> +    public long rx_errs;
> +    public long rx_drop;
> +    public long tx_bytes;
> +    public long tx_packets;
> +    public long tx_errs;
> +    public long tx_drop;
> +    
> +}

  and same question here.

  Except for this question looks fine, ACK !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to