Reputation: 4906
I tried to compile this example from https://github.com/augcampos/asterisk-cpp/wiki/Examples but I get this error:
root@debian:~# g++ TesteCpp.cpp -o tt -lasteriskcpp
TesteCpp.cpp: In function ‘int main()’:
TesteCpp.cpp:13:39: error: invalid conversion from ‘void (*)(asteriskcpp::ManagerEvent*)’ to ‘asteriskcpp::onManagerEventCallback_t {aka void (*)(const asteriskcpp::ManagerEvent&)}’ [-fpermissive]
In file included from TesteCpp.cpp:4:0:
/usr/local/include/asteriskcpp/manager/ManagerConnection.h:49:14: error: initializing argument 1 of ‘void asteriskcpp::ManagerConnection::addEventCallback(asteriskcpp::onManagerEventCallback_t)’ [-fpermissive]
How to fix it?
TesteCpp.cpp:
//TesteCpp.cpp
#include <iostream>
#include "asteriskcpp/utils/LogHandler.h"
#include "asteriskcpp/manager/ManagerConnection.h"
using namespace asteriskcpp;
void eventCallback(ManagerEvent* me) {
std::cout << std::endl << "TEST:EVENT" << me->toLog() << std::endl;
}
int main() {
ManagerConnection mc;
mc.addEventCallback(&eventCallback); // add event listener
if (mc.connect("192.168.1.6")) {
if (mc.login("admin", "zzz")) {
mc.logoff();
}
}
mc.disconnect();
return (0);
}
Upvotes: 0
Views: 155
Reputation: 87944
Based on a quick scan of the code
void eventCallback(ManagerEvent* me) {
std::cout << std::endl << "TEST:EVENT" << me->toLog() << std::endl;
}
should be
void eventCallback(const ManagerEvent& me) {
std::cout << std::endl << "TEST:EVENT" << me.toLog() << std::endl;
}
Upvotes: 5