Book Image

C++ Reactive Programming

By : Praseed Pai, Peter Abraham
Book Image

C++ Reactive Programming

By: Praseed Pai, Peter Abraham

Overview of this book

Reactive programming is an effective way to build highly responsive applications with an easy-to-maintain code base. This book covers the essential functional reactive concepts that will help you build highly concurrent, event-driven, and asynchronous applications in a simpler and less error-prone way. C++ Reactive Programming begins with a discussion on how event processing was undertaken by different programming systems earlier. After a brisk introduction to modern C++ (C++17), you’ll be taken through language-level concurrency and the lock-free programming model to set the stage for our foray into the Functional Programming model. Following this, you’ll be introduced to RxCpp and its programming model. You’ll be able to gain deep insights into the RxCpp library, which facilitates reactive programming. You’ll learn how to deal with reactive programming using Qt/C++ (for the desktop) and C++ microservices for the Web. By the end of the book, you will be well versed with advanced reactive programming concepts in modern C++ (C++17).
Table of Contents (20 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

What is Stream programming model?


Before we get into the topic of the Stream programming model, we will take a step back to look at parallels with the POSIX shell programming model. In a typical command line shell program, every command is a program and every program is a command. We can pipe the output of one program to another program after achieving a computational objective or task. In effect, we can chain a series of commands  to achieve bigger computational task. We can see it as a stream of data passing through a series of filters or transformations to fetch the output. We can also call the preceding process as command composition. There are real-life cases where huge programs are being replaced by small amount of shell code using command composition . The same process can be realized in a C++ program, by treating the input of a function as a stream, sequence, or list. The data can be passed from one function or function object (aka functor)  to another as a standard data container...