Главная
Study mode:
on
1
Intro
2
What are we doing?
3
What do we use?
4
What do we need from client library?
5
What is our proposal?
6
Database communication model
7
Brief example
8
How does it work?
9
Connection abilities
10
Connection provider concept
11
Connection concept
12
User connection type
13
Connection wrapper concept
14
Unwrap connection
15
Connection and wrapper combination
16
Why concepts?
17
Dark side of concepts
18
Use static asserts to check your type
19
Back to the request example
20
User defined type
21
OID map usage
22
OID map storage
23
How to send a query to PostgreSQL?
24
Query template
25
Query builder: compile time tests
26
Why query configuration?
27
Query configuration file
28
Query type definition
29
Query repository
30
Ideas for result
31
Boost.Hana deserialization problem solution
32
Asynchronous completion token
33
Convert completion token into callback
34
Transactions concept implementation
35
Read database result row by row: stackless coroutines
Description:
Explore the design and implementation of an asynchronous DBMS client library in this comprehensive conference talk from C++Now 2018. Delve into efficient database communication, type-safe queries, and result handling. Learn about customization points, library extensions, and performance optimization techniques. Discover how to implement strongly typed requests and responses without boilerplate, and extend the library's type system using Boost.Hana and Boost.Fusion. Examine the benefits of C++17 for flexibility and type safety, and explore the limits of constexpr in database interactions. Gain insights into asynchronous programming techniques using Boost.Asio and Networking TS, and understand how concepts aid in providing an efficient, customizable mechanism. The talk covers the implementation of these ideas in the production-ready PostgreSQL client library, ozo, which supports binary protocol, retries, transactions, and streaming. Finally, learn about testing strategies using GUnit and get a comprehensive overview of database communication models, connection abilities, query building, and result handling using modern C++ techniques. Read more

Design and Implementation of DBMS Asynchronous Client Library

CppNow
Add to list