Skip to content

Commit b9f73ae

Browse files
author
Levent KARAGÖL
committed
Examples have been added
1 parent 96b8279 commit b9f73ae

2 files changed

Lines changed: 50 additions & 0 deletions

File tree

examples/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.14)
2+
3+
project(examples)
4+
5+
add_executable(examples main.cpp)
6+
7+
target_link_libraries(examples PRIVATE libcpp-event-hub)

examples/main.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include "libcpp-event-hub.hpp"
2+
#include <string>
3+
#include <iostream>
4+
5+
using namespace lklibs;
6+
7+
int main()
8+
{
9+
// Get the singleton instance of the EventHub
10+
auto& eventHub = EventHub::getInstance();
11+
12+
// Add a listener for testEvent1, which sends a string value
13+
auto listener1Id = eventHub.addListener<std::string>("testEvent1", [](const std::string& eventName, const std::string& sender, const std::string& data)
14+
{
15+
std::cout << "1. listener received, Event name: " << eventName << ", sender: " << sender << ", data: " << data << std::endl;
16+
});
17+
18+
// Add a listener for testEvent2, which sends an int value
19+
auto listener2Id = eventHub.addListener<int>("testEvent2", [](const std::string& eventName, const std::string& sender, const int& data)
20+
{
21+
std::cout << "2 listener received, Event name: " << eventName << ", sender: " << sender << ", data: " << data << std::endl;
22+
});
23+
24+
// Add a general listener for all events with a string value
25+
auto listener3Id = eventHub.addListener<std::string>("*", [](const std::string& eventName, const std::string& sender, const std::string& data)
26+
{
27+
std::cout << "General listener received: " << eventName << ", sender: " << sender << ", data: " << data << std::endl;
28+
});
29+
30+
// Emit testEvent1 with a string value, 2 listeners will receive the event (listener1 and the general listener)
31+
eventHub.emit("testEvent1", "main", std::string("Value 1"));
32+
33+
// Emit testEvent2 with an int value, 1 listeners will receive the event (listener2), because there is no general listener for int values
34+
eventHub.emit("testEvent2", "main", 7);
35+
36+
// Remove the first listener for testEvent1
37+
eventHub.removeListener("testEvent1", listener1Id);
38+
39+
// Emit testEvent1 again, only the general listener will receive the event
40+
eventHub.emit("testEvent1", "main", std::string("Value 2"));
41+
42+
return 0;
43+
}

0 commit comments

Comments
 (0)