// Code generated by "./generator ./system/org.freedesktop.timesync1"; DO NOT EDIT.

// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later
package timesync1

import (
	"unsafe"

	"github.com/godbus/dbus/v5"
	"github.com/LingmoOS/golang-github-lingmo-go-lib/dbusutil/proxy"
)

type Timesync1 interface {
	timesync1 // interface org.freedesktop.timesync1.Manager
	proxy.Object
}

type objectTimesync1 struct {
	interfaceTimesync1 // interface org.freedesktop.timesync1.Manager
	proxy.ImplObject
}

func NewTimesync1(conn *dbus.Conn) Timesync1 {
	obj := new(objectTimesync1)
	obj.ImplObject.Init_(conn, "org.freedesktop.timesync1", "/org/freedesktop/timesync1")
	return obj
}

type timesync1 interface {
	LinkNTPServers() proxy.PropStringArray
	SystemNTPServers() proxy.PropStringArray
	FallbackNTPServers() proxy.PropStringArray
	ServerName() proxy.PropString
	RootDistanceMaxUSec() proxy.PropUint64
	PollIntervalMinUSec() proxy.PropUint64
	PollIntervalMaxUSec() proxy.PropUint64
	PollIntervalUSec() proxy.PropUint64
	Frequency() proxy.PropInt64
}

type interfaceTimesync1 struct{}

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

func (*interfaceTimesync1) GetInterfaceName_() string {
	return "org.freedesktop.timesync1.Manager"
}

// property LinkNTPServers as

func (v *interfaceTimesync1) LinkNTPServers() proxy.PropStringArray {
	return &proxy.ImplPropStringArray{
		Impl: v,
		Name: "LinkNTPServers",
	}
}

// property SystemNTPServers as

func (v *interfaceTimesync1) SystemNTPServers() proxy.PropStringArray {
	return &proxy.ImplPropStringArray{
		Impl: v,
		Name: "SystemNTPServers",
	}
}

// property FallbackNTPServers as

func (v *interfaceTimesync1) FallbackNTPServers() proxy.PropStringArray {
	return &proxy.ImplPropStringArray{
		Impl: v,
		Name: "FallbackNTPServers",
	}
}

// property ServerName s

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

// property RootDistanceMaxUSec t

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

// property PollIntervalMinUSec t

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

// property PollIntervalMaxUSec t

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

// property PollIntervalUSec t

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

// property Frequency x

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