예제 #1
0
        public List <Domain> GetDomains(virConnectListAllDomainsFlags flags = default)
        {
            int result = Libvirt.virConnectListAllDomains(_conn, out IntPtr ptrDomains, flags);

            ThrowExceptionOnError(result);

            List <Domain> domains = new List <Domain>();

            for (int i = 0; i < result; i++)
            {
                IntPtr ptrDomain = Marshal.ReadIntPtr(ptrDomains, i * IntPtr.Size);
                domains.Add(new Domain(_conn, ptrDomain));
            }

            Libvirt.virFree(ptrDomains);

            return(domains);
        }
예제 #2
0
 public static extern int virConnectListAllDomains(IntPtr conn, [Out] out IntPtr domains, virConnectListAllDomainsFlags flags);
예제 #3
0
        public Libvirt_Pinvoke.CS_Objects.Container.LibvirtContainer <Domain> virConnectListAllDomains(virConnectListAllDomainsFlags flags)
        {
            Domain[] domains;
            Libvirt.virDomainPtr[] ds;
            var ret = API.virConnectListAllDomains(_ConnectPtr, out ds, flags);

            if (ret > -1)
            {
                domains = new Domain[ds.Length];
                for (var i = 0; i < ds.Length; i++)
                {
                    domains[i] = new Domain(ds[i]);
                }
            }
            else
            {
                domains = new Domain[0];
            }
            return(new Libvirt_Pinvoke.CS_Objects.Container.LibvirtContainer <Domain>(domains));
        }
예제 #4
0
 public Libvirt_Pinvoke.CS_Objects.Container.LibvirtContainer<Domain> virConnectListAllDomains(virConnectListAllDomainsFlags flags)
 {
     Domain[] domains;
     Libvirt.virDomainPtr[] ds;
     var ret = API.virConnectListAllDomains(_ConnectPtr, out ds, flags);
     if (ret > -1)
     {
         domains = new Domain[ds.Length];
         for (var i = 0; i < ds.Length; i++)
         {
             domains[i] = new Domain(ds[i]);
         }
     }
     else domains = new Domain[0];
     return new Libvirt_Pinvoke.CS_Objects.Container.LibvirtContainer<Domain>(domains);
 }