# 11. Appendix

## 11.1. List of engine hooks

{des11:0} The table below lists all engine hooks currently implemented in libcschem. An engine hook is a call where the core calls view engines (plugins/scripts) while performing operations on the data. Each title is a hook name and the list of arguments in parenthesis.

### 11.1.1. terminal_name_to_port_name(current_name, component, terminal)

{des11:1} Compile a terminal name to a port name, operating on component. Current_name is a string that represents the currently proposed port name. The hook may change this by returning a different string. Returning anything else (or simply not setting the return value) will keep current_name.

Example: std_devmap uses this hook to calculate a port name that matches the physical package, including slotting.

### 11.1.2. symbol_joins_component(symbol, component)

{des11:2} Called when a symbol is merged into a component, whether the component is newly created or already existed. The call is made after each symbol-to-component join, after the attributes of the symbol got merged into the component (whether this merge changed any component attribute or not).