Update API structure
parent
79e5872eea
commit
bdbe38e262
|
@ -21,14 +21,18 @@ void connect_peer1()
|
|||
{
|
||||
int err = 0;
|
||||
|
||||
Throughnet(function_tn(string event_id, tn::EventData& data){
|
||||
if (event_id == "connected") {
|
||||
this_->Send("your-guid", "Hello");
|
||||
}
|
||||
})
|
||||
.Connect("my-guid", "{}");
|
||||
|
||||
Throughnet tn("my-guid", "{}");
|
||||
|
||||
tn.On("connected", function_tn(Throughnet::Data& data){
|
||||
this_->Send("your-guid", "Hello");
|
||||
});
|
||||
|
||||
tn.On("disconnected", function_tn(Throughnet::Data& data) {
|
||||
std::cout << data["id"].c_str() << " has been disconnected.";
|
||||
});
|
||||
|
||||
tn.Connect("my-guid", "{}");
|
||||
|
||||
CHECK_ERR(err, "nothing");
|
||||
}
|
||||
|
||||
|
|
|
@ -7,17 +7,19 @@
|
|||
#include "config.h"
|
||||
#include "throughnet.h"
|
||||
|
||||
Throughnet::Throughnet(void(*handler) (Throughnet* this_, std::string, tn::EventData&)) {
|
||||
handler_ = handler;
|
||||
return;
|
||||
|
||||
Throughnet::Throughnet(std::string id, std::string setting) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
Throughnet::~Throughnet() {
|
||||
return;
|
||||
}
|
||||
|
||||
void Throughnet::Connect(std::string id, std::string setting) {
|
||||
return;
|
||||
bool Throughnet::Connect(std::string id, std::string setting) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Throughnet::Send(std::string id, std::string data) {
|
||||
|
@ -25,3 +27,24 @@ void Throughnet::Send(std::string id, std::string data) {
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
Throughnet& Throughnet::On(std::string name, void(*handler) (Throughnet* this_, Data& data)) {
|
||||
|
||||
if (name == "connected") {
|
||||
events_["connected"] = handler;
|
||||
}
|
||||
else if (name == "disconnected") {
|
||||
events_["disconnected"] = handler;
|
||||
}
|
||||
else if (name == "data") {
|
||||
events_["data"] = handler;
|
||||
}
|
||||
else if (name == "error") {
|
||||
events_["error"] = handler;
|
||||
}
|
||||
else {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
|
|
@ -12,27 +12,24 @@
|
|||
#include <functional>
|
||||
|
||||
|
||||
#define function_tn(_x_, _y_) [](Throughnet* this_, _x_, _y_)
|
||||
|
||||
class Throughnet;
|
||||
|
||||
namespace tn {
|
||||
typedef std::map<std::string, std::string> EventData;
|
||||
typedef std::function<void(Throughnet* this_, std::string, EventData&)> EventHandler;
|
||||
}
|
||||
#define function_tn(_x_) [](Throughnet* this_, _x_)
|
||||
|
||||
class Throughnet {
|
||||
public:
|
||||
typedef std::map<std::string, std::string> Data;
|
||||
typedef std::function<void(Throughnet*, Data&)> EventHandler;
|
||||
typedef std::map<std::string, EventHandler> Events;
|
||||
|
||||
// Throughnet(tn::EventHandler& handler);
|
||||
Throughnet(void (*handler) (Throughnet* this_, std::string, tn::EventData&));
|
||||
~Throughnet();
|
||||
|
||||
void Connect(std::string id, std::string setting);
|
||||
Throughnet(std::string id, std::string setting);
|
||||
|
||||
bool Connect(std::string id, std::string setting);
|
||||
void Send(std::string id, std::string data);
|
||||
Throughnet& On(std::string name, void(*handler) (Throughnet* this_, Data& data));
|
||||
|
||||
protected:
|
||||
tn::EventHandler handler_;
|
||||
~Throughnet();
|
||||
|
||||
Events events_;
|
||||
};
|
||||
|
||||
#endif // __THROUGHNET_THROUGHENT_H__
|
||||
|
|
Loading…
Reference in New Issue