async Условие Основная цель переработать Задание 7 так, чтобы ввод данных контролировался внешним кодом. Интерфейс описан в файле async.h. Инициатором обмена будет выступать внешний код, вместо привычной входной точки main() будет три - connect(), receive() и disconnect(). Порядок вызова следующий: • Вызывается connect() с размером блока команд. Сохраняется значение возврата. Значение никак не интерпретируется и служит только для передачи контекста; • Вызывается receive() с передачей указателя на начало буфера, размера буфера и контекста. Вызов повторяемый; • Вызывается disconnect() с передачей контекста. Вызов разрушает контекст. Необходимо реализовать эти функции так, чтобы сохранить прежнюю функциональность проекта и добавить новую возможность. Реализация должна допускать множественные вызовы connect(). Вызовы receive() с разными контекстами не должны мешать друг другу. В зависимости от внутренней реализации может возникнуть требование иметь одинаковый размер блока для всех команд. Нет цели вносить столь глубокие изменения. Если потенциальная возможность иметь разные размеры очереди влечет глубокую переработку, функция connect() должна вернуть nullptr. Вызовы могут осуществляться из разных потоков, однако вызовы с одинаковым контекстом выполняются из одного и того же потока. Опционально реализовать возможность вызывать все функции из любых потоков. Опционально взять за основу вместо однопоточной версии из Задания 7 многопоточную реализацию из Задания 10. Самоконтроль • пакет async содержащий библиотеку libasync.so опубликован на bintray • отправлена на проверку ссылка на страницу репозитория Проверка Задание считается выполненным успешно, если после установки пакета, линковки с тестовым кодом (пример в main.cpp) и запуска с тестовыми данными вывод соответствует описанию Задания 7. Данные подаются порциями в разных контекстах в большом объеме без пауз. Будет отмечено отсутствие ограничений на вызов из разных потоков и взятая за основу многопоточная версия задания. Самоконтроль • файл async.h должен остаться без изменений
cpp_hw_11_async's Introduction
cpp_hw_11_async's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.