mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Created READMEs for most projects
This commit is contained in:
parent
71862beb86
commit
97b7524030
3
Compression.BSA/Readme.md
Normal file
3
Compression.BSA/Readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Compression.BSA
|
||||||
|
|
||||||
|
BSA Compression gets it's own project to remove cluttering.
|
3
Wabbajack.CacheServer/Readme.md
Normal file
3
Wabbajack.CacheServer/Readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Wabbajack.CacheServer
|
||||||
|
|
||||||
|
CacheServer for caching mod information to reduce the amount of API calls a user has to account for when using Wabbajack to compiler/install a ModList.
|
@ -1,42 +0,0 @@
|
|||||||
### Overview of CSP (Communicating Sequential Processes) for the C# programmer
|
|
||||||
|
|
||||||
#### What is CSP?
|
|
||||||
Communicating Sequential processes is a programming model invented in 1978 by Tony Hoare, who described a process
|
|
||||||
of computation where hundreds or thousands of small processes communicate via channels. Think of this process like
|
|
||||||
a assembly line. Each worker in the factory is a process, and the conveyor belts are the channels. The workers don't need
|
|
||||||
to know where a part came from, or where it's going, they simply take one item off the belt, perform an operation and pass
|
|
||||||
the item on to another belt. This analogy works quite well, and the following observations about a factory also apply to
|
|
||||||
CSP:
|
|
||||||
|
|
||||||
* Multiple workers can pull from the same belt (channel/queue)
|
|
||||||
* Multiple workers can put work onto the belt
|
|
||||||
* Belts can buffer items, for slow consumers, but at some point they backup and block the writer
|
|
||||||
* A worker can pull/push to multiple belts.
|
|
||||||
|
|
||||||
|
|
||||||
#### What does this look like in C#?
|
|
||||||
|
|
||||||
The basic unit of CSP in this library is the channel:
|
|
||||||
|
|
||||||
```
|
|
||||||
var chan = Channel.Create()
|
|
||||||
```
|
|
||||||
|
|
||||||
Without any other parameters this creates a channel with a size of 0, so every pending put must be matched
|
|
||||||
1:1 with a take. This creates a syncronization point. Channels are fully async and thread-safe:
|
|
||||||
|
|
||||||
```
|
|
||||||
public async Task TestTakePutBlocking()
|
|
||||||
{
|
|
||||||
var channel = Channel.Create<int>();
|
|
||||||
// Channel size is 0, so we can't await, because we'd never complete
|
|
||||||
var ptask = channel.Put(1);
|
|
||||||
|
|
||||||
// Now the put is dispatched to the scheduler because we've taken the value
|
|
||||||
var (open, val) = await channel.Take();
|
|
||||||
|
|
||||||
Assert.AreEqual(1, val);
|
|
||||||
Assert.IsTrue(open);
|
|
||||||
Assert.IsTrue(await ptask);
|
|
||||||
}
|
|
||||||
```
|
|
38
Wabbajack.Common.CSP/Readme.md
Normal file
38
Wabbajack.Common.CSP/Readme.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Wabbajack.Common.CSP
|
||||||
|
|
||||||
|
## Overview of CSP (Communicating Sequential Processes) for the C# programmer
|
||||||
|
|
||||||
|
### What is CSP?
|
||||||
|
|
||||||
|
Communicating Sequential processes is a programming model invented in 1978 by Tony Hoare, who described a process of computation where hundreds or thousands of small processes communicate via channels. Think of this process like a assembly line. Each worker in the factory is a process, and the conveyor belts are the channels. The workers don't need to know where a part came from, or where it's going, they simply take one item off the belt, perform an operation and pass the item on to another belt. This analogy works quite well, and the following observations about a factory also apply to CSP:
|
||||||
|
|
||||||
|
* Multiple workers can pull from the same belt (channel/queue)
|
||||||
|
* Multiple workers can put work onto the belt
|
||||||
|
* Belts can buffer items, for slow consumers, but at some point they backup and block the writer
|
||||||
|
* A worker can pull/push to multiple belts.
|
||||||
|
|
||||||
|
#### What does this look like in C#?
|
||||||
|
|
||||||
|
The basic unit of CSP in this library is the channel:
|
||||||
|
|
||||||
|
```cSharp
|
||||||
|
var chan = Channel.Create()
|
||||||
|
```
|
||||||
|
|
||||||
|
Without any other parameters this creates a channel with a size of 0, so every pending put must be matched 1:1 with a take. This creates a syncronization point. Channels are fully async and thread-safe:
|
||||||
|
|
||||||
|
```cSharp
|
||||||
|
public async Task TestTakePutBlocking()
|
||||||
|
{
|
||||||
|
var channel = Channel.Create<int>();
|
||||||
|
// Channel size is 0, so we can't await, because we'd never complete
|
||||||
|
var ptask = channel.Put(1);
|
||||||
|
|
||||||
|
// Now the put is dispatched to the scheduler because we've taken the value
|
||||||
|
var (open, val) = await channel.Take();
|
||||||
|
|
||||||
|
Assert.AreEqual(1, val);
|
||||||
|
Assert.IsTrue(open);
|
||||||
|
Assert.IsTrue(await ptask);
|
||||||
|
}
|
||||||
|
```
|
3
Wabbajack.Common/Readme.md
Normal file
3
Wabbajack.Common/Readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Wabbajack.Common
|
||||||
|
|
||||||
|
The `Common` part of the project name tells it all: Here you will find our Utility functions, the Constants, File Extractors and Game Handlers.
|
3
Wabbajack.Lib/Readme.md
Normal file
3
Wabbajack.Lib/Readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Wabbajack.Lib
|
||||||
|
|
||||||
|
While `Wabbajack` is the front end, `Wabbajack.Lib` is the back end and contains all functionality from the Compilers, the Installers to our NexusAPI and Downloaders.
|
4
Wabbajack.Test.ListValidation/Readme.md
Normal file
4
Wabbajack.Test.ListValidation/Readme.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Wabbajack.Test.ListValidation
|
||||||
|
|
||||||
|
This project is not part of `Wabbajack.Test` as the `ListValidation` test validates every ModList from [this](https://github.com/wabbajack-tools/mod-lists) repository and checks if all ModLists are valid.
|
||||||
|
The gets called when you push to master or to the repo linked above.
|
3
Wabbajack.Test/Readme.md
Normal file
3
Wabbajack.Test/Readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Wabbajack.Test
|
||||||
|
|
||||||
|
This project contains almost all tests for Wabbajack. If you create a new PR, push to master or update your PR than the tests in this project will be started at Azure DevOps. It is recommended that you run the test(s) for the part of the application you have changed. You can also create new tests if you have added something that other tests do not cover.
|
3
Wabbajack.VirtualFileSystem/Readme.md
Normal file
3
Wabbajack.VirtualFileSystem/Readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Wabbajack.VirtualFileSystem
|
||||||
|
|
||||||
|
Once called just `VirtualFileSystem`, this project is responsible for indexing, staging and caching files from the game folder, the downloads and install folder.
|
4
Wabbajack/Readme.md
Normal file
4
Wabbajack/Readme.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Wabbajack
|
||||||
|
|
||||||
|
This is the main project of this solution. It contains only UI code like all Views and View Models as well as custom Components and Resources such as icons and images.
|
||||||
|
You can consider this project to be the front end of Wabbajack.
|
Loading…
Reference in New Issue
Block a user