Zefina  Component

A component is an "object" or a "collection of functionality" to perform a task. There may not be a single implementation for a type of component. For example, a Queue provides a known set of functionality but there could be a FIFO Queue and a Query Queue where both would have completely different implementations.

Memory Pool

A memory pool contains a block of memory which can be used for allocation and deallocation, much like OS memory. The difference is a memory pool is allocated once and used explicitly for a specific type of data. This difference allows the memory pool to provide better performance than the default OS memory allocation.

The memory pool will have the following features:

  • Allocate memory
  • Deallocate memory
  • Defragment unused memory

See: [MemZone Configuration][memzone_config]


Queue

A queue contains a list of one type of thing. There is no "base class/object" that defines the common behavior of a queue. Therefore the API of a specific type of queue will differ from other types of queue "objects". This allows each queue to behave in a way that is optimized based on the thing it contains.

In general, a queue will have one or more of the following features:

  • The first thing will have an index of 0.
  • insert: A thing will be placed at the specified index, shifting all other thing_s to the "right". Negative indexes will append _thing to the end of the list.
  • 'remove': Remove a thing from the specified index. Negative indexes will remove the last thing in the list.

See: [Queue Configuration][queue_config]