Mongoose (C ライブラリ)を使用して作成したサーバーを C++ クラスでラップしようとしています。問題は、マングースでサーバーのインスタンスを作成する に関数ev_handler
を渡そうとしていることです。mg_create_server()
しかし、それは私が信じているキャストエラーを与えます:
src/Server.cpp:16:44: error: cannot convert 'Server::ev_handler' from
type 'int (Server::)(mg_connection*, mg_event)' to type 'mg_handler_t
{aka int (*)(mg_connection*, mg_event)}' server =
mg_create_server(NULL, ev_handler);
ev_handler
静的にしようとしましsend_index_page(conn)
たが、ラッパー クラス内にある必要があります。
void Server::start() {
struct mg_server *server;
int numberOfObjects;
_application = new Application();
_application->start();
// Create and configure the server
server = mg_create_server(NULL, ev_handler);
//... more code here ...
}
int Server::ev_handler(struct mg_connection *conn, enum mg_event ev) {
switch (ev) {
case MG_AUTH: return MG_TRUE;
case MG_REQUEST: return send_index_page(conn);
default: return MG_FALSE;
}
}