Basic test for SMM functionality
This commit is contained in:
parent
2f4d42d3ed
commit
7e22acda59
4 changed files with 107 additions and 0 deletions
31
rnex-core/src/nex/datastore.rs
Normal file
31
rnex-core/src/nex/datastore.rs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
use rnex_core::rmc::protocols::datastore::DataStore;
|
||||
// use crate::define_rmc_proto;
|
||||
// use macros::rmc_struct;
|
||||
use rnex_core::prudp::socket_addr::PRUDPSockAddr;
|
||||
use std::sync::{Weak};
|
||||
use rnex_core::PID;
|
||||
use crate::nex::remote_console::RemoteConsole;
|
||||
use rnex_core::rmc::response::ErrorCode;
|
||||
use rnex_core::rmc::protocols::datastore::{GetMetaInfo, GetMetaParam};
|
||||
|
||||
pub struct User {
|
||||
pub pid: PID,
|
||||
pub ip: PRUDPSockAddr,
|
||||
pub this: Weak<User>,
|
||||
pub remote: RemoteConsole,
|
||||
}
|
||||
|
||||
impl DataStore for User {
|
||||
async fn get_meta(&self, metaparam: GetMetaParam) -> Result<GetMetaInfo, rnex_core::rmc::response::ErrorCode> {
|
||||
// // bogus
|
||||
// let info: GetMetaInfo = GetMetaInfo {
|
||||
// dataid: 10,
|
||||
// owner: 1121,
|
||||
// size: 1024,
|
||||
// name: "idk"
|
||||
// }
|
||||
|
||||
// just trying to see what methods it tries to use
|
||||
Err(rnex_core::rmc::response::ErrorCode::DataStore_NotFound)
|
||||
}
|
||||
}
|
||||
|
|
@ -5,3 +5,4 @@ pub mod friends_handler;
|
|||
pub mod matchmake;
|
||||
pub mod remote_console;
|
||||
pub mod user;
|
||||
pub mod datastore;
|
||||
74
rnex-core/src/rmc/protocols/datastore.rs
Normal file
74
rnex-core/src/rmc/protocols/datastore.rs
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
use macros::{method_id, rmc_proto, RmcSerialize, rmc_struct};
|
||||
use crate::rmc::response::ErrorCode;
|
||||
use rnex_core::rmc::structures::qbuffer::QBuffer;
|
||||
|
||||
use rnex_core::kerberos::KerberosDateTime;
|
||||
use rnex_core::PID;
|
||||
|
||||
#[derive(RmcSerialize, Clone)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct PersistenceTarget {
|
||||
pub owner: PID,
|
||||
pub persistence_slot_id: u16,
|
||||
}
|
||||
|
||||
#[derive(RmcSerialize, Clone)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct Permission {
|
||||
pub permission: u8,
|
||||
pub recipient_ids: Vec<PID>,
|
||||
}
|
||||
|
||||
#[derive(RmcSerialize, Clone)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct RatingInfoWithSlot {
|
||||
pub slot: i8,
|
||||
pub rating: RatingInfo,
|
||||
}
|
||||
|
||||
#[derive(RmcSerialize, Clone)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct RatingInfo {
|
||||
pub total_value: i64,
|
||||
pub count: u32,
|
||||
pub initial_value: i64,
|
||||
}
|
||||
|
||||
#[derive(RmcSerialize, Clone)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct GetMetaParam {
|
||||
pub dataid: u64,
|
||||
pub persistence_target: PersistenceTarget,
|
||||
pub result_option: u8,
|
||||
pub access_password: u64,
|
||||
}
|
||||
|
||||
#[derive(RmcSerialize, Clone)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct GetMetaInfo {
|
||||
pub dataid: u64,
|
||||
pub owner: PID,
|
||||
pub size: u32,
|
||||
pub name: &'static str,
|
||||
pub data_type: u16,
|
||||
pub meta_binary: QBuffer,
|
||||
pub permission: Permission,
|
||||
pub del_permission: Permission,
|
||||
pub created_time: KerberosDateTime,
|
||||
pub updated_time: KerberosDateTime,
|
||||
pub period: u16,
|
||||
pub status: u8,
|
||||
pub reffered_count: u32,
|
||||
pub refer_dat_id: u32,
|
||||
pub flag: u32,
|
||||
pub referred_time: KerberosDateTime,
|
||||
pub expire_time: KerberosDateTime,
|
||||
pub tags: Vec<&'static str>,
|
||||
pub ratings: Vec<RatingInfoWithSlot>,
|
||||
}
|
||||
|
||||
#[rmc_proto(115)]
|
||||
pub trait DataStore{
|
||||
#[method_id(8)]
|
||||
async fn get_meta(&self, metaparam: GetMetaParam) -> Result<GetMetaInfo, rnex_core::rmc::response::ErrorCode>;
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ pub mod nat_traversal;
|
|||
pub mod notifications;
|
||||
pub mod ranking;
|
||||
pub mod secure;
|
||||
pub mod datastore;
|
||||
|
||||
use crate::result::ResultExtension;
|
||||
use crate::rmc::message::RMCMessage;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue