use surrealcs_kernel::messages::server::interface::ServerTransactionMessage;
use surrealcs_kernel::messages::server::kv_operations;
use transactions::interface::interface::Transaction;
use crate::router::create_connection_pool;
use crate::transactions::interface::bridge::BridgeHandle;
mod connection;
mod router;
mod transactions;
mod utils;
use tracing::Level;
use tracing_subscriber::FmtSubscriber;
fn init_logger() {
let subscriber = FmtSubscriber::builder()
.with_max_level(Level::TRACE)
.with_ansi(true)
.with_file(false)
.with_target(true)
.with_line_number(true)
.with_thread_ids(true)
.with_thread_names(false)
.finish();
tracing::subscriber::set_global_default(subscriber).expect("Failed to set up logger");
}
#[tokio::main]
async fn main() {
init_logger();
tracing::trace!("Hello, world!");
let one = create_connection_pool("127.0.0.1:8080", Some(1)).await.unwrap();
tracing::trace!("{:?}", one);
let transaction = Transaction::new().await.unwrap();
tracing::trace!("transaction created");
let message = ServerTransactionMessage::Put(kv_operations::MessagePut {
key: b"keys".to_vec(),
value: b"value".to_vec(),
version: None,
});
let (message, mut transaction) = transaction.begin::<BridgeHandle>(message).await.unwrap();
tracing::trace!("transaction sent: {:?}", message);
let message = ServerTransactionMessage::Get(kv_operations::MessageGet {
key: b"keys".to_vec(),
version: None,
});
let _ = transaction.send::<BridgeHandle>(message).await.unwrap();
let message = ServerTransactionMessage::Del(kv_operations::MessageDel {
key: b"keys".to_vec(),
});
let _ = transaction.send::<BridgeHandle>(message).await.unwrap();
let (_, _transaction) = transaction.commit::<BridgeHandle>().await.unwrap();
router::close_connection_pool().await.unwrap();
std::thread::sleep(std::time::Duration::from_secs(5));
}