62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
|
|
package demo
|
||
|
|
|
||
|
|
import "github.com/Snider/Core"
|
||
|
|
|
||
|
|
// this instance is the singleton instance of the demo module.
|
||
|
|
var instance *API
|
||
|
|
|
||
|
|
type API struct {
|
||
|
|
name string
|
||
|
|
core *core.Core
|
||
|
|
}
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
coreService := core.New(
|
||
|
|
core.WithService(demo.Register),
|
||
|
|
core.WithService(demo.RegisterDemo2),
|
||
|
|
core.WithServiceLock(),
|
||
|
|
)
|
||
|
|
|
||
|
|
rickService := core.New(
|
||
|
|
core.WithService(demo.Register),
|
||
|
|
core.WithService(demo.RegisterDemo2),
|
||
|
|
core.WithServiceLock(),
|
||
|
|
)
|
||
|
|
mortyService := core.New(
|
||
|
|
core.WithService(demo.Register),
|
||
|
|
core.WithService(demo.RegisterDemo2),
|
||
|
|
core.WithServiceLock(),
|
||
|
|
)
|
||
|
|
|
||
|
|
core.Mod[API](coreService, "demo").name = "demo"
|
||
|
|
core.Mod[API](rickService).name = "demo2"
|
||
|
|
core.Mod[API](mortyService).name = "demo2"
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
func RegisterDemo(c *core.Core) error {
|
||
|
|
instance = &API{
|
||
|
|
core: c,
|
||
|
|
}
|
||
|
|
if err := c.RegisterModule("demo", instance); err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
c.RegisterAction(handleActionCall)
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func RegisterDemo2(c *core.Core) error {
|
||
|
|
instance = &API{
|
||
|
|
core: c,
|
||
|
|
}
|
||
|
|
if err := c.RegisterModule("demo", instance); err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
c.RegisterAction(handleActionCall)
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func handleActionCall(c *core.Core, msg core.Message) error {
|
||
|
|
return nil
|
||
|
|
}
|