- This library is currently under primary development
- libagio is created based on libuv to serve for Project Hive.
- Dependency:
- Build with cmake:
$ git clone https://github.com/ultrasilicon/libagio.git
$ cd libagio
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install
#include <libagio/tcp_server.h>
#include <iostream>
using namespace std;
using namespace Agio;
int main()
{
Loop loop;
TcpServer *server = new TcpServer(&loop);
server->bind("0.0.0.0", 63773);
server->listen();
on(&server->onNewConnection, [&](TcpServer* server){
TcpSocket* sock = new TcpSocket(&loop);
on(&sock->onReadyRead, [](Buffer* data, TcpSocket* sock){
cout << sock->peerAddress() << ": " << data->toString() << endl;
});
server->accept(sock);
});
return loop.run();
}
#include <libagio/tcp_socket.h>
#include <libagio/timer.h>
#include <iostream>
using namespace std;
using namespace Agio;
int main()
{
Loop loop;
TcpSocket *client = new TcpSocket(&loop);
on(&client->onConnected, [](){
cout << "connected." << endl;
});
Timer *timer = new Timer(2000, 500, &loop);
on(&timer->onTimedOut, [&](Timer*){
if(client->write("hello") == 0)
cout << "written" << endl;
});
client->connect("127.0.0.1", 63773);
client->start();
timer->start();
return loop.run();
}
libuv | libParsley | Progress | Comments |
---|---|---|---|
uv_check_t | Parsley::Check | 100% | Done |
uv_lib_t | Parsley::lib | 100% | Done |
uv_async_t | Parsley::Async | 100% | Done |
- | Parsley::AbstractSocket | 100% | Done |
uv_timer_t | Parsley::Timer | 100% | Done |
uv_loop_t | Parsley::Loop | 80% | Good to use |
uv_fs_t | Parsley::File | 60% | Good for basic use, some file & dir operation not yet implemented |
uv_udp_t | Parsley::UdpSocket | 80% | Good for basic use, multicast not yet implemented |
uv_tcp_t | Parsley::TcpSocket | 90% | Good to use |
uv_tcp_t | Parsley::TcpServer | 100% | Done |