Skip to content

Commit

Permalink
Added readme for Architecture components
Browse files Browse the repository at this point in the history
  • Loading branch information
Karan-Palan committed Feb 27, 2024
1 parent 7e0aa19 commit f3b4881
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions docs/images/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Project Architecture Components

This document describes the components of our project architecture as depicted in the block diagram.

## Element API

The Element API is the main interface for interacting with the system. It provides a way to override signals, declare elements, handle queries, and manage states. The API allows users to define custom signals that can be triggered by events in the system. It also provides a way to declare new elements, which can be used to define the system's behavior. The API supports queries, which allow users to retrieve information about the system's state. Finally, the API provides a way to manage the system's states, which represent the different modes of operation that the system can be in.

## Specification

The Specification component defines the structure and behavior of the elements in the system. It includes the specification table, which stores information about the elements and their states. The specification table is a data structure that contains information about the elements, such as their names, types, and properties. It also stores the current state of each element, as well as any historical state information. The arrows in and out of the Specification box represent the flow of data and state information between the Specification component and the other components in the system.

## Warehouse

The Warehouse is responsible for storing and managing the element instances and their statistics. It provides methods for querying and updating the element instances. The Warehouse component maintains a database of element instances, along with their associated statistics and metadata. The arrows in and out of the Warehouse box represent the flow of data and commands between the Warehouse and the other components in the system.

## Tree

The Tree component manages the hierarchy of element instances and their relationships. It provides methods for adding, removing, and querying element instances in the tree. The Tree component maintains a hierarchical structure of the element instances, representing their relationships and dependencies. The arrows in and out of the Tree box represent the flow of data and commands between the Tree and the other components in the system.

## Library Elements

The Library Elements component provides a set of predefined element classes that can be used in the system. These element classes can be extended or customized as needed. The Library Elements component provides a set of pre-built element classes that can be used to create new element instances in the system. These element classes define the structure and behavior of the elements, as well as any default values or settings. The arrows in and out of the Library Elements box represent the flow of data and element classes between the Library Elements and the other components in the system.

## Plugin Elements

The Plugin Elements component allows for the integration of third-party elements into the system. These elements can be used alongside the library elements to extend the functionality of the system. The Plugin Elements component provides a way to integrate external elements into the system, allowing for the addition of new functionality or features. The arrows in and out of the Plugin Elements box represent the flow of data and commands between the Plugin Elements and the other components in the system.

## Symbol Table

The Symbol Table component provides a mapping of element instance IDs to their corresponding element instances. It allows for quick lookup and identification of element instances in the system. The Symbol Table component maintains a mapping of element instance IDs to their corresponding element instances, allowing for efficient lookup and identification of element instances in the system. The arrows in and out of the Symbol Table box represent the flow of data and ID mappings between the Symbol Table and the other components in the system.


## Scheduler
The Scheduler component manages the execution of commands and tasks in the system. It provides methods for scheduling and executing commands in a timely manner. The Scheduler component manages the execution of commands and tasks in the system, ensuring that they are executed in the correct order and at the right time. The arrows in and out of the Scheduler box represent the flow of commands and task information between the Scheduler and the other components in the system.

## Parser

The Parser component is responsible for parsing and interpreting the syntax tree nodes in the system. It provides methods for building and analyzing syntax trees. The Parser component takes in syntax tree nodes and converts them into a format that can be interpreted and executed by the system. The arrows in and out of the Parser box represent the flow of syntax tree nodes and parsed data between the Parser and the other components in the system.

## Interpreter

The Interpreter component manages the system's call stack and executes the syntax tree generated by the Parser. The interpreter provides methods for executing syntax tree nodes and managing the call stack. It also provides a way to handle exceptions and errors that may occur during execution.

## Monitor
The Monitor component provides status signals and monitors the system's performance. It also provides a way to monitor the system's performance and identify bottlenecks or other issues.


The arrows in the diagram represent the flow of data and control between the components. For example, the Element API sends commands to the Scheduler, which then executes them in the context of the system. Similarly, the Parser sends a syntax tree to the Interpreter, which then executes it. The Warehouse and Tree components interact with various other components to store and retrieve element instances and their associated information.

0 comments on commit f3b4881

Please sign in to comment.