Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
karnkaul committed Nov 29, 2024
1 parent d4a614e commit 3bcf41a
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,29 +95,26 @@ Pull requests are welcome.

## Architecture

`locc-lib` is a library that can be used by CLI / GUI executables. `locc-cli` is the built-in CLI app that links to `locc-lib` and whose outputs are in this document.
* `locc-lib` is a library that can be used by CLI / GUI executables
* `locc-cli` is the built-in CLI app that links to `locc-lib` and whose outputs are in this document; CMake option: `LOCC_BUILD_CLI`
* `locc-gui` is a built-in GUI app that links to `locc-lib`; CMake option: `LOCC_BUILD_GUI`

### Dependencies

```
locc-gui locc-cli
| |
---------- ------------
| | | |
gvdi locc-lib clap
|
----------
| |
ktask djson
| |
---------- -
| | |
gvdi locc-lib
|
-------
| |
klib djson
```

`djson` deals with parsing JSONs and is used for grammar IO. `ktask` is a lightweight task execution queue, `locc-lib` enqueues a counter task for each file using it. This _counter_ task is internal to `locc-lib` and not exposed to users. Users utilize a single `locc::LineCounter` wrapper task, which reports progress / status, and supports waiting (blocking) until all individual counters have completed (or if any counter has been dropped). It can be used directly or through a `locc::Instance`. Using the instance is convenient when all line counters use the same grammars and file filters. As is evident, multiple line counters can share the same task queue, which can also have other tasks interleaved in between. Note that after a line counter task starts execution, it will flood the queue with its internal counter subtasks. Any custom tasks enqueued after this line counter task - including another line counter task - will not start executing until the first batch of sub-counters completes execution (unless the number of files to count is less than the number of worker threads).

`clap` is a command line argument parser, which `locc-cli` uses. `gvdi` is a GLFW / Dear ImGui / Vulkan lib, which `locc-gui` uses.

* [clap](https://github.com/karnkaul/clap)
* [klib](https://github.com/karnkaul/klib)
* [gvdi](https://github.com/karnkaul/gvdi)
* [ktask](https://github.com/karnkaul/ktask)
* [djson](https://github.com/karnkaul/djson)

[**Original Repository**](https://github.com/karnkaul/locc)

0 comments on commit 3bcf41a

Please sign in to comment.