Coder Social home page Coder Social logo

cpp_hw_11_async's Introduction

cpp_hw_11_async

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 People

Contributors

jacksonrr3 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.