Programming Paradigms

AppWeb supports several programming paradigms or styles. These paradigms are a blend of the following programming models:

  • Programming Language

  • Threading Model

  • Event processing Model

AppWeb supports the following programming paradigms:

  • C Language programs

  • C++ Language programs

  • Single-threaded programs

  • Multithreaded programs

  • Programs using the POSIX select event wait mechanism

  • Programs using a Windows messages event wait mechanism

  • Programs using polling to check for events

We have strived to support the major programming paradigms for C/C++. If your programming paradigm is not easily supported, please let us know at .

AppWeb Modules

AppWeb modules execute inside the AppWeb server. As such, they have a few constraints on how such modules must operate:
  • Modules must use some C++ code to interface with the AppWeb loadable module mechanism.

  • The AppWeb server may run multithreaded and so AppWeb modules must be thread-safe and must be capable of running multithreaded See NOTE below.

NOTE: Despite the fact that AppWeb can run multithreaded, most AppWeb modules do not have to worry about multithreaded issues and locking. AppWeb will only ever use a single thread to service a request and so most AppWeb module code does not need to synchronize access to per-request data. However, module code must be reentrant, as many requests may be running at a single time and the module code must support this. Furthermore, if your module has data that is shared across requests, you must use thread synchronization primitives to ensure your data does not become corrupted.

Using the AppWeb Library

The AppWeb HTTP library has several facets that permit it to be used in the widest variety of applications. It provides both C and C++ programming interfaces that are usable by single-threaded or multithreaded programs. You also have a choice of event processing mechanisms.


© Mbedthis Software LLC, 2003-2204. All rights reserved. Mbedthis is a trademark of Mbedthis Software LLC.