Initial library commit.
This commit is contained in:
commit
b83c3970a6
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Ignore swap files from text editors.
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
# Ignore compiled files.
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
*.rlib
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
|
||||||
|
# Ignore files/directories generated by Cargo.
|
||||||
|
/target/
|
||||||
|
|
||||||
|
# Remove Cargo.lock from gitignore if creating an executable,
|
||||||
|
# leave it for libraries.
|
||||||
|
# More information here: http://doc.crates.io/guide.html#cargotoml-vs-cargolock
|
||||||
|
#Cargo.lock
|
12
Cargo.lock
generated
Normal file
12
Cargo.lock
generated
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[root]
|
||||||
|
name = "apprentice"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"scribe 0.1.0 (git+https://gitlab.com/CyberMages/scribe.git)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "scribe"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://gitlab.com/CyberMages/scribe.git#d6a6f5107c8d03b13e081c9378486781e31daa4e"
|
||||||
|
|
13
Cargo.toml
Normal file
13
Cargo.toml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[package]
|
||||||
|
name = "apprentice"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Jason Travis Smith <Jason@CyberMagesLLC.com>"]
|
||||||
|
description = "A Rust task scheduler."
|
||||||
|
license = ""
|
||||||
|
repository = "https://gitlab.com/CyberMages/apprentice.git"
|
||||||
|
documentation = ""
|
||||||
|
keywords = ["scheduler", "task", "thread"]
|
||||||
|
|
||||||
|
|
||||||
|
[dependencies.scribe]
|
||||||
|
git = "https://gitlab.com/CyberMages/scribe.git"
|
12
examples/sample_tasks.rs
Normal file
12
examples/sample_tasks.rs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
extern crate apprentice;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
use apprentice::*;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pub fn main()
|
||||||
|
{
|
||||||
|
println!("Hello world");
|
||||||
|
}
|
14
src/lib.rs
Normal file
14
src/lib.rs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#[macro_use]
|
||||||
|
extern crate scribe;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mod scheduler;
|
||||||
|
mod task;
|
||||||
|
mod thread;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pub use self::scheduler::Scheduler;
|
||||||
|
pub use self::task::Task;
|
||||||
|
pub use self::thread::Thread;
|
60
src/scheduler.rs
Normal file
60
src/scheduler.rs
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
use ::thread::Thread;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
pub struct Scheduler
|
||||||
|
{
|
||||||
|
///
|
||||||
|
has_unlimited_threads: bool,
|
||||||
|
|
||||||
|
///
|
||||||
|
maximum_thread_amount: u64,
|
||||||
|
|
||||||
|
///
|
||||||
|
thread_list: Vec<Thread>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
impl Scheduler
|
||||||
|
{
|
||||||
|
///
|
||||||
|
pub fn new(num_threads: Option<u64>) -> Scheduler
|
||||||
|
{
|
||||||
|
let thread_count: u64;
|
||||||
|
let unlimited_threads: bool;
|
||||||
|
|
||||||
|
// Check to see if the scheduler will
|
||||||
|
// be using unlimited threads.
|
||||||
|
match num_threads
|
||||||
|
{
|
||||||
|
Some(count) =>
|
||||||
|
{
|
||||||
|
// Set the maximum number of threads to be the desired
|
||||||
|
// amount.
|
||||||
|
thread_count = count;
|
||||||
|
unlimited_threads = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
None =>
|
||||||
|
{
|
||||||
|
// Set that there can be an unlimited amount of threads.
|
||||||
|
thread_count = 0;
|
||||||
|
unlimited_threads = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the new Scheduler.
|
||||||
|
Scheduler
|
||||||
|
{
|
||||||
|
has_unlimited_threads: unlimited_threads,
|
||||||
|
maximum_thread_amount: thread_count,
|
||||||
|
thread_list: Vec::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_thread()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
20
src/task.rs
Normal file
20
src/task.rs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
///
|
||||||
|
pub struct Task
|
||||||
|
{
|
||||||
|
///
|
||||||
|
name: String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
impl Task
|
||||||
|
{
|
||||||
|
///
|
||||||
|
pub fn new(task_name: &str) -> Task
|
||||||
|
{
|
||||||
|
Task
|
||||||
|
{
|
||||||
|
name: String::from(task_name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
src/thread.rs
Normal file
20
src/thread.rs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
///
|
||||||
|
pub struct Thread
|
||||||
|
{
|
||||||
|
///
|
||||||
|
empty: i8
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
impl Thread
|
||||||
|
{
|
||||||
|
///
|
||||||
|
pub fn new() -> Thread
|
||||||
|
{
|
||||||
|
Thread
|
||||||
|
{
|
||||||
|
empty: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user