split bank ad socket server up

This commit is contained in:
Sebastian Hugentobler 2022-03-16 09:51:29 +01:00
parent 3d9c98eeca
commit c69654a924
22 changed files with 342 additions and 43 deletions

View file

@ -0,0 +1,28 @@
use std::io::Write;
use std::net::TcpStream;
use std::sync::{Arc, RwLock};
use anyhow::Result;
use bank::bank::Bank;
use crate::commands::Command;
use crate::protocol;
pub struct CreateAccount;
impl Command for CreateAccount {
fn execute(&self, bank: Arc<RwLock<Bank>>, data: &[u8], mut stream: &TcpStream) -> Result<usize> {
debug!("owner nr bytes {:?}", data);
let owner = String::from_utf8_lossy(data);
info!("creating new account with owner {}...", owner);
let mut bank = bank.write().unwrap();
let nr = bank.create_account(owner.into());
info!("created account {}", nr);
let written = stream.write(&protocol::account_nr(&nr))?;
Ok(written)
}
}