pub mod req;
pub mod resp;
mod errors;
pub use self::errors::IpcError;
pub use self::req::{AppExchangeInfo, AuthReq, ContainersReq, IpcReq, Permission, ShareMData,
ShareMDataReq};
pub use self::resp::{AccessContInfo, AccessContainerEntry, AppKeys, AuthGranted, IpcResp,
access_container_enc_key};
use ffi_utils::{base64_decode, base64_encode};
use maidsafe_utilities::serialisation::{deserialise, serialise};
use rand::{self, Rng};
pub use routing::BootstrapConfig;
use std::u32;
#[cfg_attr(feature = "cargo-clippy", allow(large_enum_variant))]
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub enum IpcMsg {
Req {
req_id: u32,
req: IpcReq,
},
Resp {
req_id: u32,
resp: IpcResp,
},
Revoked {
app_id: String,
},
Err(IpcError),
}
pub fn encode_msg(msg: &IpcMsg) -> Result<String, IpcError> {
Ok(base64_encode(&serialise(msg)?))
}
pub fn decode_msg(encoded: &str) -> Result<IpcMsg, IpcError> {
Ok(deserialise(&base64_decode(encoded)?)?)
}
pub fn gen_req_id() -> u32 {
rand::thread_rng().gen_range(0, u32::MAX) + 1
}