Skip to content

Commit

Permalink
पुनरीक्षण
Browse files Browse the repository at this point in the history
  • Loading branch information
boseji committed Sep 5, 2024
1 parent 48490a9 commit 8ac8462
Showing 1 changed file with 31 additions and 31 deletions.
62 changes: 31 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,66 +17,66 @@

## `tppi` stands for Tilde Pipe Plus Interface

> A simple communication helper and enclosing mechanism called **TPPI protocol**.
> A simple communication helper and enclosing mechanism called **`TPPI protocol`**.
There are two parts to this protocol:

- *Organization* - Build the compatible data representation called **TPPI content**.
- *Encapsulation* - Prepare a compatible packet with necessary safeguards called **TPPI packet**.
- *Organization* - Build the compatible data representation called **`TPPI content`**.
- *Encapsulation* - Prepare a compatible packet with necessary safeguards called **`TPPI packet`**.

This is **string oriented protocol** with *special safeguards* for **TPPI protocol.**
This is **`string oriented protocol`** with *special safeguards* for **`TPPI protocol`**.

The following symbols are considered special to **TPPI protocol**:
The following symbols are considered special to **`TPPI protocol`**:

- `~` Tilde Symbol
- `|` Pipe Symbol
- `+` Plus Symbol

These *symbol are replaced* by the following as *safeguards* for **TPPI packet**:
These *symbol are replaced* by the following as *safeguards* for **`TPPI packet`**:

- `|` converts to `\\x7C`
- `+` converts to `\\x2B`

These *symbols are replaced* for *safeguards* in data specified for **TPPI contents** :
These *symbols are replaced* for *safeguards* in data specified for **`TPPI contents`** :

- `~` converts to `%7E`
- `|` converts to `%7C`
- `+` converts to `%2B`

The **TPPI protocol** contains special annotations:
The **`TPPI protocol`** contains special annotations:

- `~|` is used to indicate the **start** of the **TPPI Packet**
- `|~` is used to indicate the **end** of the **TPPI Packet**
- `|` is used to separate the **TPPI contents** in a **TPPI Packet**
- `~` are used to organize the **TPPI contents** with Type, tags, & data.
- `~||~` indicates a **TPPI packet** *without any contents*
- `+` is used to join TPPI packets together.
- `~|` is used to indicate the **`start`** of the **`TPPI Packet`**
- `|~` is used to indicate the **end** of the **`TPPI Packet`**
- `|` is used to separate the **`TPPI contents`** in a **`TPPI Packet`**
- `~` are used to organize the **`TPPI contents`** with Type, tags, & data.
- `~||~` indicates a **`TPPI packet`** *without any contents*
- `+` is used to join **`TPPI packets`** together.

Collection rule for TPPI packets:
Collection rule for **`TPPI packets`**:

- If **TPPI packet** are sent one at a time then no special addition is needed.
- In case *collection* of **TPPI packets** need to be sent then `+` symbol is used.
- If **`TPPI packet`** are sent one at a time then no special addition is needed.
- In case *collection* of **`TPPI packets`** need to be sent then `+` symbol is used.

Rules for **TPPI content**:
Rules for **`TPPI content`**:

- The *content mist be filtered* with necessary *safeguards*.
- **Type Signature**: Each **TPPI content** must have a **Type Signature** that tells what type of data it contains and helps in *Discovery process* later. In case no **Type Signature** is provided `UN` would be used to indicate `unknown` Type`.
- **Type Signature** can't be left blank and recommended to be added.
- **Tag**: Each **TPPI content** can have a string name or tag that can help better identify the data enclosed. This would later be used for *Discovery process*. This is an *Optional field* and can be omitted in the **TPPI content**.
- **Data**: The **TPPI content** encloses the data provided in *string form*, that can later be retrieved using the *Discovery process*.
- The fields **Type Signature**, *(optional)* **Tag** and **Data** are separated by `~` Symbol in a **TPPI content**.
- **`Type Signature`**: Each **T`PPI content`** must have a **`Type Signature`** that tells what type of data it contains and helps in *Discovery process* later. In case no **`Type Signature`** is provided `UN` would be used to indicate `unknown` Type`.
- **`Type Signature`** can't be left blank and recommended to be added.
- **`Tag`**: Each **`TPPI content`** can have a string name or tag that can help better identify the data enclosed. This would later be used for *Discovery process*. This is an *Optional field* and can be omitted in the **`TPPI content`**.
- **`Data`**: The **`TPPI content`** encloses the data provided in *string form*, that can later be retrieved using the *Discovery process*.
- The fields **`Type Signature`**, *(optional)* **`Tag`** and **`Data`** are separated by `~` Symbol in a **`TPPI content`**.

**TPPI Content Processes**:
**`TPPI Content Processes`**:

- **Specify**: In this process the **Type Signature**, *(optional)* **Tag** and **Data** are joined together in **TPPI Content** form. This follows the rules for **TPPI content**. This typically happens before preparing the **TPPI packet**.
- **Discover**: In this process the **Type Signature**, *(optional)* **Tag** and **Data** are recovered from the supplied **TPPI Content**. This follows the same rules for **TPPI content** in order to find the enclosed data. This is typically done after receiving the TPPI packet and getting the **TPPI contents**.
- **`Specify`**: In this process the **`Type Signature`**, *(optional)* **`Tag`** and **`Data`** are joined together in **`TPPI Content`** form. This follows the rules for **`TPPI content`**. This typically happens before preparing the **`TPPI packet`**.
- **`Discover`**: In this process the **`Type Signature`**, *(optional)* **`Tag`** and **`Data`** are recovered from the supplied **`TPPI Content`**. This follows the same rules for **`TPPI content`** in order to find the enclosed data. This is typically done after receiving the TPPI packet and getting the **`TPPI contents`**.

**TPPI Packet Processes**:
**`TPPI Packet Processes`**:

- **Assemble**: In this process the **TPPI contents** are *filtered* and *joined together* into a **TPPI packet** following respective rules. This however *should not be used* for Joining *multiple TPPI packets*.
- **Disassemble**: In this process the incoming **TPPI packet** is broken into into multiple **TPPI contents** with *filtering/safeguards* removed. This however *should not be used* directly on the *Incoming TPPI packet* as *it would not be able to split apart TPPI packets*.
- **Join**: This is the process of *Joining multiple packets* before sending over the **combined TPPI packets**.
- **Split**: This is process perform as soon as the **TPPI packets** are received. *Only after this the process* of *Disassembly can begin*.
- **`Assemble`**: In this process the **`TPPI contents`** are *filtered* and *joined together* into a **`TPPI packet`** following respective rules. This however *should not be used* for Joining *multiple TPPI packets*.
- **`Disassemble`**: In this process the incoming **`TPPI packet`** is broken into into multiple **`TPPI contents`** with *filtering/safeguards* removed. This however *should not be used* directly on the *Incoming TPPI packet* as *it would not be able to split apart TPPI packets*.
- **`Join`**: This is the process of *Joining multiple packets* before sending over the **`combined TPPI packets`**.
- **`Split`**: This is process perform as soon as the **`TPPI packets`** are received. *Only after this the process* of *Disassembly can begin*.

*Background behind the name:*

Expand Down

0 comments on commit 8ac8462

Please sign in to comment.