https://github.com/nir3x/eventmanager
Event Manager for Go - Simple and Flexible Event Handling
https://github.com/nir3x/eventmanager
event-handling event-manager events go golang
Last synced: 2 months ago
JSON representation
Event Manager for Go - Simple and Flexible Event Handling
- Host: GitHub
- URL: https://github.com/nir3x/eventmanager
- Owner: NIR3X
- License: agpl-3.0
- Created: 2024-01-25T15:03:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-16T04:02:26.000Z (over 1 year ago)
- Last Synced: 2024-02-16T05:22:40.872Z (over 1 year ago)
- Topics: event-handling, event-manager, events, go, golang
- Language: Go
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Event Manager for Go - Simple and Flexible Event Handling
## Overview
This is a simple event manager module written in Go. It allows you to manage events and their handlers, providing functionalities to add, remove, and trigger events.
## Installation
To use this module in your Go project, you can install it using the following command:
```bash
go get -u github.com/NIR3X/eventmanager
```## Usage
Here's a basic example demonstrating how to use the event manager:
```go
package mainimport (
"fmt"
"github.com/NIR3X/eventmanager"
)func main() {
// Create a new EventManager instance.
em := eventmanager.NewEventManager()// Add an event handler for "example_event".
handlerId := em.AddHandler("example_event", func(data interface{}) {
fmt.Printf("Received event: example_event, Data: %v\n", data)
})// Trigger the "example_event" event.
em.TriggerEvent("example_event", "Hello, world!")// Remove the event handler using the handler Id.
em.RemoveHandler("example_event", handlerId)// Trigger the event again to verify removal.
em.TriggerEvent("example_event", "Hello again!")
}
```## License
[](https://www.gnu.org/licenses/agpl-3.0.html)
This program is Free Software: You can use, study share and improve it at your
will. Specifically you can redistribute and/or modify it under the terms of the
[GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html) as
published by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.