Menu

Overview of Source Files

Victor H Olvera

Overview of Source Files for Vector Sigma

This overview just pretains to VectorSigma by itself by that I mean that the source files for the cilantro platform library and the source files for the method support modules are not covered here. There are 10 source files that make up VectorSigma. They are as follows

Filename description
vectorsigma.c The program base. It contains the main() function. It performs the loading, execution and shutdown sequence of the modules. Its officially known as the Launch Bay in the Cilantro platform but because the server name is VectorSigma the filename is called vectorsigma.c
tLaunchBay.h The header file representing vectorsigma.c. All the modules and code files ultimately depend on this file to tie themselves together.
tServerPump.c Represents the server pump module. Should be compiled into a dynamically loadable library (serverpump.so). It is the interface between the operating system and the server
tServerPump.h The header file for tServerPump.c. Any code file that interacts with the server pump would include this file.
tIOControl.c Represents the IO control module. Should be compiled into a dynamically loadable library (iocontrol.so). It handles the input, output and processing logistics for the server.
tIOControl.h The header file for tIOControl.c. Any code file that interacts with IO control would include this file
tIOCtrlUtils.c IO control provides a set of utilities to the method support modules. At the time of this writing there is only a small number of utility functions hence all of them fit nicely into this one file. In the future, as the number of functions increases, this file may be split into multiple files.
tIOCtrlUtils.h The header file for tIOCtrlUtils.c. For the most part the method support modules would need to include this file to have access to the utilities.
tNetCourier.c Represents the net courier module. Should be compiled into a dynamically loadable library (netcourier.so). It handles the transmission of incomming and outgoing data.
tNetCourier.h The header file for tNetCourier.c. Any code file that interacts with the net couriers would include this file.

Putting the method support modules aside Vector Sigma is composed of 3 modules types: The server pump, IO control and net courier type. Each module is basically a dynamically loadable library. I opted for this approach because its very likely that the LBS, HBS and WBS server would share the same design and hence modules might be interchangable between themselves. Its would ease up on updating and recompiling. I want to encourage experimenting and testing stuff by just changing modules. Maybe making headway on updating and configurating the server live.

Vector Sigma is multi-threaded. The launch bay and the server pump share the same thread. IO control has its own thread and each of the net couriers runs on its own thread. The number of net couriers represents the number of concurrent data transfers the server can preform. For the most part each thread relies on a messaging object called tPacketArray for communicating with each other. Between IO control and the net couriers there is another messaging object called the TX request queue. That object is a dedicated queue informing the net couriers of what needs to be transmitted and the order of transmission.


MongoDB Logo MongoDB