C# bindings need and advice from the experts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
 
I'm working on C# bindings. The goal is to obtain a more C# API for the API users.
So I have create object for libvirt familly function (an object Connect, Domain, Storage and so on).
 
All is almost done, but I need and advice about the way to handle object properties. For example, for the Connect object, I expose a "RunningDomains" property that can be used in this manner :
 
Connect myConn = new Connect("qemu+tcp://192.168.220.198/system");
List<Domain> runningDomains = myConn.RunningsDomains;
 
In the Connect object, the property "RunningDomains" is coded in this :
 

/// <summary>

/// Get the list of running domains

/// </summary>

public List<Domain> RunningDomains

{

    get

    {

        if (_conn == IntPtr.Zero) return null;

        int nbRunningDomain = NumOfDomains(_conn);

        int[] runningDomainIds = new int[nbRunningDomain];

        ListDomains(_conn, runningDomainIds, nbRunningDomain);

        return runningDomainIds.Select(id => new Domain(Domain.LookupByID(_conn, id), this)).ToList();

    }

}

 

So the property call "virConnectNumOfDomains" and "virConnectListDomains" each time the property is called. And I don't know if it is a good thing. The other way, is to keep the list in the Connect object and handle domain adding or removing in this via callbacks. This avoid multiple call to the librar.

 

Any advice ?

 

Regards,

 

Arnaud

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

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]