Implement a dummy protocolDescription in the root actor

This commit is contained in:
Anthony Ramine 2016-03-24 17:12:47 +01:00
parent 9a2955d4da
commit 14653e2875
3 changed files with 47 additions and 2 deletions

View file

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use actor::{Actor, ActorMessageStatus, ActorRegistry};
use protocol::JsonPacketStream;
use protocol::{ActorDescription, JsonPacketStream, Method};
use serde_json::Value;
use std::collections::BTreeMap;
use std::net::TcpStream;
@ -70,4 +70,12 @@ impl PerformanceActor {
name: name,
}
}
pub fn description() -> ActorDescription {
ActorDescription {
category: "actor",
typeName: "performance",
methods: vec![],
}
}
}

View file

@ -8,8 +8,9 @@
/// that perform more specific actions (tabs, addons, browser chrome, etc.)
use actor::{Actor, ActorMessageStatus, ActorRegistry};
use actors::performance::PerformanceActor;
use actors::tab::{TabActor, TabActorMsg};
use protocol::JsonPacketStream;
use protocol::{ActorDescription, JsonPacketStream};
use serde_json::Value;
use std::collections::BTreeMap;
use std::net::TcpStream;
@ -44,6 +45,17 @@ pub struct RootActorMsg {
traits: ActorTraits,
}
#[derive(Serialize)]
pub struct ProtocolDescriptionReply {
from: String,
types: Types,
}
#[derive(Serialize)]
pub struct Types {
performance: ActorDescription,
}
pub struct RootActor {
pub tabs: Vec<String>,
}
@ -81,6 +93,17 @@ impl Actor for RootActor {
ActorMessageStatus::Processed
}
"protocolDescription" => {
let msg = ProtocolDescriptionReply {
from: self.name(),
types: Types {
performance: PerformanceActor::description(),
},
};
stream.write_json_packet(&msg);
ActorMessageStatus::Processed
}
_ => ActorMessageStatus::Ignored
})
}