Turn messages into stub SubscribeMessage struct

This commit is contained in:
Lucien Greathouse
2019-09-23 10:53:11 -07:00
parent a46d467b75
commit bd33aebc3d
5 changed files with 28 additions and 12 deletions

View File

@@ -8,6 +8,7 @@ use crate::{
message_queue::MessageQueue,
project::Project,
session_id::SessionId,
snapshot::AppliedPatchSet,
snapshot::RojoTree,
};
@@ -16,7 +17,7 @@ pub struct ServeSession<F> {
root_project: Option<Project>,
session_id: SessionId,
tree: Mutex<RojoTree>,
message_queue: MessageQueue<()>, // TODO: Real message type
message_queue: MessageQueue<AppliedPatchSet>,
imfs: Imfs<F>,
}
@@ -42,7 +43,7 @@ impl<F: ImfsFetcher> ServeSession<F> {
&self.imfs
}
pub fn message_queue(&self) -> &MessageQueue<()> {
pub fn message_queue(&self) -> &MessageQueue<AppliedPatchSet> {
&self.message_queue
}

View File

@@ -60,6 +60,7 @@ pub struct PatchUpdate {
///
// TODO: Introduce machinery to detect conflicts, like keeping previous +
// current values in all fields.
#[derive(Debug, Clone)]
pub struct AppliedPatchSet {
pub removed: Vec<RbxId>,
pub added: Vec<AppliedPatchAdd>,
@@ -76,10 +77,12 @@ impl AppliedPatchSet {
}
}
#[derive(Debug, Clone)]
pub struct AppliedPatchAdd {
pub instance_id: RbxId,
}
#[derive(Debug, Clone)]
pub struct AppliedPatchUpdate {
pub id: RbxId,

View File

@@ -5,11 +5,11 @@ use std::collections::HashMap;
use rbx_dom_weak::{RbxId, RbxInstanceProperties, RbxValue};
use super::{
patch::{PatchSet, PatchUpdate},
patch::{AppliedPatchSet, PatchSet, PatchUpdate},
InstancePropertiesWithMeta, InstanceSnapshot, RojoTree,
};
pub fn apply_patch_set(tree: &mut RojoTree, patch_set: PatchSet) {
pub fn apply_patch_set(tree: &mut RojoTree, patch_set: PatchSet) -> AppliedPatchSet {
let mut context = PatchApplyContext::default();
for removed_id in patch_set.removed_instances {
@@ -25,6 +25,9 @@ pub fn apply_patch_set(tree: &mut RojoTree, patch_set: PatchSet) {
}
apply_deferred_properties(context, tree);
// TODO: Actually calculate patch set
AppliedPatchSet::new()
}
#[derive(Default)]

View File

@@ -13,8 +13,8 @@ use crate::{
serve_session::ServeSession,
web::{
interface::{
ErrorResponse, Instance, ReadResponse, ServerInfoResponse, SubscribeResponse,
PROTOCOL_VERSION, SERVER_VERSION,
ErrorResponse, Instance, ReadResponse, ServerInfoResponse, SubscribeMessage,
SubscribeResponse, PROTOCOL_VERSION, SERVER_VERSION,
},
util::{json, json_ok},
},
@@ -90,11 +90,19 @@ impl<F: ImfsFetcher> ApiService<F> {
}
Box::new(receiver.then(move |result| match result {
Ok((message_cursor, messages)) => json_ok(SubscribeResponse {
Ok((message_cursor, messages)) => {
// TODO: Transform applied patch sets into subscribe responses
let api_messages = messages
.into_iter()
.map(|_message| SubscribeMessage)
.collect();
json_ok(SubscribeResponse {
session_id,
message_cursor,
messages,
}),
messages: api_messages,
})
}
Err(_) => json(
ErrorResponse::internal_error("Message queue disconnected sender"),
StatusCode::INTERNAL_SERVER_ERROR,

View File

@@ -17,7 +17,8 @@ pub(crate) const SERVER_VERSION: &str = env!("CARGO_PKG_VERSION");
pub const PROTOCOL_VERSION: u64 = 3;
// TODO
pub type SubscribeMessage = ();
#[derive(Debug, Serialize, Deserialize)]
pub struct SubscribeMessage;
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]