コード例 #1
0
ファイル: Connect.cs プロジェクト: WenceyWang/libvirt-csharp
        public Domain CreateDomain(string xml)
        {
            IntPtr result = Libvirt.virDomainCreateXML(_conn, xml);

            ThrowExceptionOnError(result);

            return(new Domain(_conn, result));
        }
コード例 #2
0
ファイル: Connect.cs プロジェクト: WenceyWang/libvirt-csharp
        public void Close(bool ignoreErrors = false)
        {
            if (!IsOpen)
            {
                return;
            }

            int result = Libvirt.virConnectClose(_conn);

            if (!ignoreErrors)
            {
                ThrowExceptionOnError(result);
            }

            IsOpen = false;
        }
コード例 #3
0
ファイル: Connect.cs プロジェクト: WenceyWang/libvirt-csharp
        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);
        }
コード例 #4
0
ファイル: Connect.cs プロジェクト: WenceyWang/libvirt-csharp
        public void Open(bool readOnly = false)
        {
            if (IsDisposed)
            {
                throw new ObjectDisposedException("Connect", "Cannot open a disposed connection.");
            }

            if (readOnly)
            {
                _conn = Libvirt.virConnectOpenReadOnly(Uri);
            }
            else
            {
                _conn = Libvirt.virConnectOpen(Uri);
            }

            ThrowExceptionOnError(_conn);

            IsOpen = true;
        }
コード例 #5
0
 public void CleanUpNativeData(IntPtr pNativeData)
 {
     Libvirt.virFree(pNativeData);
 }
コード例 #6
0
ファイル: Connect.cs プロジェクト: WenceyWang/libvirt-csharp
 public void RestoreDomain(string file) => ThrowExceptionOnError(Libvirt.virDomainRestore(_conn, file));
コード例 #7
0
ファイル: Domain.cs プロジェクト: WenceyWang/libvirt-csharp
 public void Save(string file) => ThrowExceptionOnError(Libvirt.virDomainSave(_ptrDomain, file));
コード例 #8
0
ファイル: Domain.cs プロジェクト: WenceyWang/libvirt-csharp
 protected override void DisposeInternal()
 {
     Libvirt.virDomainFree(_ptrDomain);
 }
コード例 #9
0
ファイル: Domain.cs プロジェクト: WenceyWang/libvirt-csharp
 public void Resume() => ThrowExceptionOnError(Libvirt.virDomainResume(_ptrDomain));
コード例 #10
0
ファイル: Domain.cs プロジェクト: WenceyWang/libvirt-csharp
 public void Suspend() => ThrowExceptionOnError(Libvirt.virDomainSuspend(_ptrDomain));
コード例 #11
0
ファイル: Domain.cs プロジェクト: WenceyWang/libvirt-csharp
 public void Shutdown() => ThrowExceptionOnError(Libvirt.virDomainShutdown(_ptrDomain));
コード例 #12
0
ファイル: Domain.cs プロジェクト: WenceyWang/libvirt-csharp
 public void Destroy() => ThrowExceptionOnError(Libvirt.virDomainDestroy(_ptrDomain));
コード例 #13
0
        private static virError GetLastError()
        {
            IntPtr errPtr = Libvirt.virGetLastError();

            return(Marshal.PtrToStructure <virError>(errPtr));
        }