1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/havesnag-ec

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

EC — это оболочка C++11, основанная на libevent.

Контакты

QQ группа: 3721 44008.

Электронная почта: xiacengx@qq.com.

Приглашаем всех внести свой вклад в код!

Компиляция

Зависимости

  • Версия C++ должна поддерживать C++11.
  • Требуется версия libevent 2.0 или выше.

Метод компиляции

CMake и скрипты установки не предоставляются.

Чтобы скомпилировать динамическую библиотеку ссылок, выполните команду:

make -f makefile

Для компиляции тестовых примеров выполните команду:

make -f ExampleMakefile

Архитектура

Описание изображения

Пространство имён EC — «ec», оно включает в себя несколько основных классов:

  • Loop — объединяет цикл событий и потоки, инкапсулирует struct event_base из libevent;
  • Timer — класс таймера, зависит от Loop, поддерживает периодические, отложенные и постоянные таймеры;
  • TcpServer — потокобезопасный класс TCP-сервера, позволяет настраивать количество потоков ввода-вывода;
  • HttpServer — HTTP-сервер с частичной функциональностью.

Loop

Loop инкапсулирует цикл событий и управление потоками. Рекомендуется, чтобы каждый поток имел свой собственный Loop. Timer и TcpSocket должны быть связаны с Loop, и соответствующее поведение будет инициировано в потоке Loop.

#include "ec/loop.h"
int main(int argc, char *argv[])
{
    ec::Loop loop;
    loop.start(false); //false текущий поток блокируется, true запускает новый поток
    loop.wait(); //ожидает завершения потока, действует только для запуска нового потока
}

TcpServer

Многопоточный TCP-сервер, можно настроить количество потоков ввода-вывода.

Тестовые примеры

После компиляции с помощью команды «make -f ExampleMakefile» выполните следующие команды:

./test timer

Команда «./test timer» тестирует использование таймера.

./test tcp

Команда «./test tcp» тестирует TCP.

./test http

Команда «./test http» запускает HTTP-сервер и доступна по адресу http://127.0.0.1:4567/.

Тестовый код

test.cpp является основным входом, а конкретные функции реализованы в каталоге example.

Пример использования таймера:

void timerExample();

Пример TCP:

void tcpExample();

HTTP-пример:

void httpExample();

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

libevent C++11 wrapper. Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/havesnag-ec.git
git@api.gitlife.ru:oschina-mirror/havesnag-ec.git
oschina-mirror
havesnag-ec
havesnag-ec
master