From c0fe40ee4f74ccd273294e8fb90d7c188de29e4b Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Mon, 27 Oct 2025 16:06:43 +0000 Subject: [PATCH] Include simple example of usage in README. * README.md --- README.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ecde849..62007ab 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,82 @@ been brought up to our expectations of full production-quality code yet still regard it as beta-quality software. +## Simplest example + +The following is provided as the simplest code to demonstrate use of the +dmbcs-micro-server library, not to inform of any coding style or quality +system approach. We assume a standard GNU system with recent +`make`, `bash`, `gcc`, etc. + +Start with the HTML file `calc.html` + +```html + + Multiplier +

Multiplier

+
+ x + = +
+ CALCULATE +
+ + +``` + +And the C++ source file `calc.cc` + +```c++ + #include + + using namespace DMBCS::Micro_Server; + + + /* This function both serves up the basic HTML page, and + * performs the multiplication and injects the result into the + * HTML. */ + void home_page (Query_String const &query, int const socket) + { + Hyper_Tags tags; + + tags.add ("result", + query.get ("arg_1", 0) * query.get ("arg_2", 0)); + + Http_Server::return_html (socket, + substitute (tags, + slurp_file ("calc.html"))); + } + + + int main () + { + auto server = Http_Server {2022, + { {"", home_page}, + {"compute", home_page} }}; + + for (;;) tick (server, 1000000); + + return 0; + } +``` + +then the `makefile` + + CXXFLAGS = `pkg-config --cflags dmbcs-micro-server` + LDFLAGS = `pkg-config --libs dmbcs-micro-server` + +Then at the command line type + + make calc + ./calc + +then point a browser at `http://localhost:2022/` and use the simple +calculator (donʼt try to do anything funny: the code has been kept +deliberately simple and doesnʼt do any error checking). Note that an +answer can be obtained directly with a URL like +`http://localhost:2022/compute?arg_1=3&arg_2=4`. + + ## Download The *dmbcs-micro-server* source code is managed with *GIT* (configured @@ -61,4 +137,5 @@ If you use this application please consider a bitcoin donation if you can. A small amount informs us that there is interest and that we are providing a useful service to the community; it will keep us motivated to continue to make open source software. Donations can be made by bitcoin to -the address 1PWHez4zT2xt6PoyuAwKPJsgRznAKwTtF9, or by Ethereum to 0xd306277ef68026a64bdd8c99ac7f19f21b3da6fb. +the address 1PWHez4zT2xt6PoyuAwKPJsgRznAKwTtF9, or by Ethereum to +0xd306277ef68026a64bdd8c99ac7f19f21b3da6fb.