// Code generated by "./generator com.deepin.daemon.systeminfo/"; DO NOT EDIT.

// Copyright: 2018 - 2022 UnionTech Software Technology Co., Ltd.
//
// License-Identifier: GPL-3.0-or-later
package systeminfo

import "github.com/godbus/dbus"

import "github.com/linuxdeepin/go-lib/dbusutil/proxy"
import "unsafe"

type SystemInfo interface {
	systemInfo // interface com.deepin.daemon.SystemInfo
	proxy.Object
}

type objectSystemInfo struct {
	interfaceSystemInfo // interface com.deepin.daemon.SystemInfo
	proxy.ImplObject
}

func NewSystemInfo(conn *dbus.Conn) SystemInfo {
	obj := new(objectSystemInfo)
	obj.ImplObject.Init_(conn, "com.deepin.daemon.SystemInfo", "/com/deepin/daemon/SystemInfo")
	return obj
}

type systemInfo interface {
	DiskCap() proxy.PropUint64
	MemoryCap() proxy.PropUint64
	SystemType() proxy.PropInt64
	Version() proxy.PropString
	DistroID() proxy.PropString
	DistroDesc() proxy.PropString
	DistroVer() proxy.PropString
	Processor() proxy.PropString
	CurrentSpeed() proxy.PropUint64
	CPUMaxMHz() proxy.PropDouble
	CPUHardware() proxy.PropString
}

type interfaceSystemInfo struct{}

func (v *interfaceSystemInfo) GetObject_() *proxy.ImplObject {
	return (*proxy.ImplObject)(unsafe.Pointer(v))
}

func (*interfaceSystemInfo) GetInterfaceName_() string {
	return "com.deepin.daemon.SystemInfo"
}

// property DiskCap t

func (v *interfaceSystemInfo) DiskCap() proxy.PropUint64 {
	return &proxy.ImplPropUint64{
		Impl: v,
		Name: "DiskCap",
	}
}

// property MemoryCap t

func (v *interfaceSystemInfo) MemoryCap() proxy.PropUint64 {
	return &proxy.ImplPropUint64{
		Impl: v,
		Name: "MemoryCap",
	}
}

// property SystemType x

func (v *interfaceSystemInfo) SystemType() proxy.PropInt64 {
	return &proxy.ImplPropInt64{
		Impl: v,
		Name: "SystemType",
	}
}

// property Version s

func (v *interfaceSystemInfo) Version() proxy.PropString {
	return &proxy.ImplPropString{
		Impl: v,
		Name: "Version",
	}
}

// property DistroID s

func (v *interfaceSystemInfo) DistroID() proxy.PropString {
	return &proxy.ImplPropString{
		Impl: v,
		Name: "DistroID",
	}
}

// property DistroDesc s

func (v *interfaceSystemInfo) DistroDesc() proxy.PropString {
	return &proxy.ImplPropString{
		Impl: v,
		Name: "DistroDesc",
	}
}

// property DistroVer s

func (v *interfaceSystemInfo) DistroVer() proxy.PropString {
	return &proxy.ImplPropString{
		Impl: v,
		Name: "DistroVer",
	}
}

// property Processor s

func (v *interfaceSystemInfo) Processor() proxy.PropString {
	return &proxy.ImplPropString{
		Impl: v,
		Name: "Processor",
	}
}

// property CurrentSpeed t

func (v *interfaceSystemInfo) CurrentSpeed() proxy.PropUint64 {
	return &proxy.ImplPropUint64{
		Impl: v,
		Name: "CurrentSpeed",
	}
}

// property CPUMaxMHz d

func (v *interfaceSystemInfo) CPUMaxMHz() proxy.PropDouble {
	return &proxy.ImplPropDouble{
		Impl: v,
		Name: "CPUMaxMHz",
	}
}

// property CPUHardware s

func (v *interfaceSystemInfo) CPUHardware() proxy.PropString {
	return &proxy.ImplPropString{
		Impl: v,
		Name: "CPUHardware",
	}
}
