The C++ framework for developing highly scalable, high performance servers on Windows platforms.

Libraries

Collaboration diagram for Libraries:

Detailed Description

The code builds as static libraries, no effort has been put into making the code build as DLLs. Over the years we've found that if you want your production code to run with least surprises then the easiest way is to have the least dependencies possible. The more you depend on external things the more likely you'll get a support call at 4am because someone has changed one of the external things and it's not quite as compatible with the old version as you'd like. We don't like getting up at 4am to fix other people's problems and so we tend to build our reusable code into static libraries and then link them all together into one, single executable file where possible. See here and here for more details.

.


Modules

 Admin Library
 The Admin library is a collection of header files that all other libraries in the JetByte Tools suite use. Header files from the Admin library control things such as which warnings are disabled (Warnings.h) and which version of windows you're targetting the code for (see here for details of just how complex that simple thing could be...).

This section contains links to the code that implements this concept.
 CLR Hosting Tools Library
 These classes manage the hosting of and interaction with the .Net CLR.
 Core Tools Library
 These classes are generally simple wrappers around operating system primitives, done in a cross platform manner, such as events, locks, threads, etc. They provide an object oriented way to use these C-based APIs. The library also contains several more advanced classes, such as a thread pool and a timer queue, that build provide basic functionality that either is missing from platform specific APIs or that would otherwise need to be built by hand.
 I/O Tools Library
 The I/O Tools Library contains code to implement synchronous and asynchronous I/O on files and other devices.
 OpenSSL Tools Library
 PerfMon Tools Library
 SChannel Tools Library
 Service Tools Library
 Socket Tools Library
 The Socket Tools Library provides a framework for client and server software that uses asynchronous I/O and I/O completion ports. The framework makes it easy to write high-performance stream (e.g. TCP) and datagram (e.g. UDP) servers and clients. The library also includes extensive classes for addressing using either TCPv4 or TCPv6 addressing. The server and client frameworks provide specific socket classes that expose only those details that are appropriate for the situation at hand. There is also a large amount of utility code to help with the construction of servers and clients. All classes are built to allow for networking other than TCP and UDP should the need arise. It's possible to add filtering to stream based systems so that the data stream can be manipulated before it reaches user code on the way in and before it reaches the network on the way out. This makes it easy to add encryption or compression, etc, below the business logic code.
 SSPI Negotiate Tools Library
 SSPI Tools Library
 WebSocket Tools Library
 The WebSocket Library contains code to implement the WebSockets protocol.
 Win32 Tools Library
 These classes are generally simple wrappers around Win32 primitives such as events, critical sections, etc. They provide an object oriented way to use these C-based APIs. The library also contains several more advanced classes, such as a thread pool and a timer queue, that build provide basic functionality that either is missing from the Win32 API or that would otherwise need to be built by hand. The opaque user data stuff should, possibly, be moved to the C++ Tools library.


Generated on Sun Sep 12 19:06:46 2021 for The Server Framework - v7.4 by doxygen 1.5.3