//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QNetworkInterface")]
    public class QNetworkInterface : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QNetworkInterface(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QNetworkInterface), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QNetworkInterface() {
            staticInterceptor = new SmokeInvocation(typeof(QNetworkInterface), null);
        }
        public enum InterfaceFlag {
            IsUp = 0x1,
            IsRunning = 0x2,
            CanBroadcast = 0x4,
            IsLoopBack = 0x8,
            IsPointToPoint = 0x10,
            CanMulticast = 0x20,
        }
        public QNetworkInterface() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QNetworkInterface", "QNetworkInterface()", typeof(void));
        }
        public QNetworkInterface(QNetworkInterface other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QNetworkInterface#", "QNetworkInterface(const QNetworkInterface&)", typeof(void), typeof(QNetworkInterface), other);
        }
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        public string Name() {
            return (string) interceptor.Invoke("name", "name() const", typeof(string));
        }
        public uint Flags() {
            return (uint) interceptor.Invoke("flags", "flags() const", typeof(uint));
        }
        public string HardwareAddress() {
            return (string) interceptor.Invoke("hardwareAddress", "hardwareAddress() const", typeof(string));
        }
        public List<QNetworkAddressEntry> AddressEntries() {
            return (List<QNetworkAddressEntry>) interceptor.Invoke("addressEntries", "addressEntries() const", typeof(List<QNetworkAddressEntry>));
        }
        ~QNetworkInterface() {
            interceptor.Invoke("~QNetworkInterface", "~QNetworkInterface()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QNetworkInterface", "~QNetworkInterface()", typeof(void));
        }
        public static QNetworkInterface InterfaceFromName(string name) {
            return (QNetworkInterface) staticInterceptor.Invoke("interfaceFromName$", "interfaceFromName(const QString&)", typeof(QNetworkInterface), typeof(string), name);
        }
        public static QNetworkInterface InterfaceFromIndex(int index) {
            return (QNetworkInterface) staticInterceptor.Invoke("interfaceFromIndex$", "interfaceFromIndex(int)", typeof(QNetworkInterface), typeof(int), index);
        }
        public static List<QNetworkInterface> AllInterfaces() {
            return (List<QNetworkInterface>) staticInterceptor.Invoke("allInterfaces", "allInterfaces()", typeof(List<QNetworkInterface>));
        }
        public static List<QHostAddress> AllAddresses() {
            return (List<QHostAddress>) staticInterceptor.Invoke("allAddresses", "allAddresses()", typeof(List<QHostAddress>));
        }
    }
}
