// Code generated by "./generator ./com.deepin.dataserver.Calendar"; DO NOT EDIT.

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

import (
	"unsafe"

	"github.com/godbus/dbus"
	"github.com/linuxdeepin/go-lib/dbusutil/proxy"
)

type HuangLi interface {
	huangLi // interface com.deepin.dataserver.Calendar.HuangLi
	proxy.Object
}

type objectHuangLi struct {
	interfaceHuangLi // interface com.deepin.dataserver.Calendar.HuangLi
	proxy.ImplObject
}

func NewHuangLi(conn *dbus.Conn) HuangLi {
	obj := new(objectHuangLi)
	obj.ImplObject.Init_(conn, "com.deepin.dataserver.Calendar", "/com/deepin/dataserver/Calendar/HuangLi")
	return obj
}

type huangLi interface {
	GoGetFestivalMonth(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32) *dbus.Call
	GetFestivalMonth(flags dbus.Flags, arg1 uint32, arg2 uint32) (string, error)
	GoGetHuangLiDay(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 uint32) *dbus.Call
	GetHuangLiDay(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 uint32) (string, error)
	GoGetHuangLiMonth(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 bool) *dbus.Call
	GetHuangLiMonth(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 bool) (string, error)
	GoGetLunarInfoBySolar(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 uint32) *dbus.Call
	GetLunarInfoBySolar(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 uint32) ([]interface{}, error)
	GoGetLunarMonthCalendar(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 bool) *dbus.Call
	GetLunarMonthCalendar(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 bool) ([]interface{}, error)
}

type interfaceHuangLi struct{}

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

func (*interfaceHuangLi) GetInterfaceName_() string {
	return "com.deepin.dataserver.Calendar.HuangLi"
}

// method getFestivalMonth

func (v *interfaceHuangLi) GoGetFestivalMonth(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32) *dbus.Call {
	return v.GetObject_().Go_(v.GetInterfaceName_()+".getFestivalMonth", flags, ch, arg1, arg2)
}

func (*interfaceHuangLi) StoreGetFestivalMonth(call *dbus.Call) (arg0 string, err error) {
	err = call.Store(&arg0)
	return
}

func (v *interfaceHuangLi) GetFestivalMonth(flags dbus.Flags, arg1 uint32, arg2 uint32) (string, error) {
	return v.StoreGetFestivalMonth(
		<-v.GoGetFestivalMonth(flags, make(chan *dbus.Call, 1), arg1, arg2).Done)
}

// method getHuangLiDay

func (v *interfaceHuangLi) GoGetHuangLiDay(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 uint32) *dbus.Call {
	return v.GetObject_().Go_(v.GetInterfaceName_()+".getHuangLiDay", flags, ch, arg1, arg2, arg3)
}

func (*interfaceHuangLi) StoreGetHuangLiDay(call *dbus.Call) (arg0 string, err error) {
	err = call.Store(&arg0)
	return
}

func (v *interfaceHuangLi) GetHuangLiDay(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 uint32) (string, error) {
	return v.StoreGetHuangLiDay(
		<-v.GoGetHuangLiDay(flags, make(chan *dbus.Call, 1), arg1, arg2, arg3).Done)
}

// method getHuangLiMonth

func (v *interfaceHuangLi) GoGetHuangLiMonth(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 bool) *dbus.Call {
	return v.GetObject_().Go_(v.GetInterfaceName_()+".getHuangLiMonth", flags, ch, arg1, arg2, arg3)
}

func (*interfaceHuangLi) StoreGetHuangLiMonth(call *dbus.Call) (arg0 string, err error) {
	err = call.Store(&arg0)
	return
}

func (v *interfaceHuangLi) GetHuangLiMonth(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 bool) (string, error) {
	return v.StoreGetHuangLiMonth(
		<-v.GoGetHuangLiMonth(flags, make(chan *dbus.Call, 1), arg1, arg2, arg3).Done)
}

// method getLunarInfoBySolar

func (v *interfaceHuangLi) GoGetLunarInfoBySolar(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 uint32) *dbus.Call {
	return v.GetObject_().Go_(v.GetInterfaceName_()+".getLunarInfoBySolar", flags, ch, arg1, arg2, arg3)
}

func (*interfaceHuangLi) StoreGetLunarInfoBySolar(call *dbus.Call) (arg0 []interface{}, err error) {
	err = call.Store(&arg0)
	return
}

func (v *interfaceHuangLi) GetLunarInfoBySolar(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 uint32) ([]interface{}, error) {
	return v.StoreGetLunarInfoBySolar(
		<-v.GoGetLunarInfoBySolar(flags, make(chan *dbus.Call, 1), arg1, arg2, arg3).Done)
}

// method getLunarMonthCalendar

func (v *interfaceHuangLi) GoGetLunarMonthCalendar(flags dbus.Flags, ch chan *dbus.Call, arg1 uint32, arg2 uint32, arg3 bool) *dbus.Call {
	return v.GetObject_().Go_(v.GetInterfaceName_()+".getLunarMonthCalendar", flags, ch, arg1, arg2, arg3)
}

func (*interfaceHuangLi) StoreGetLunarMonthCalendar(call *dbus.Call) (arg0 []interface{}, err error) {
	err = call.Store(&arg0)
	return
}

func (v *interfaceHuangLi) GetLunarMonthCalendar(flags dbus.Flags, arg1 uint32, arg2 uint32, arg3 bool) ([]interface{}, error) {
	return v.StoreGetLunarMonthCalendar(
		<-v.GoGetLunarMonthCalendar(flags, make(chan *dbus.Call, 1), arg1, arg2, arg3).Done)
}
