CamelCase messages

This commit is contained in:
Patrick Walton 2012-06-14 15:20:41 -07:00
parent c5e2f391b0
commit fb4fab8a07
5 changed files with 71 additions and 61 deletions

View file

@ -3,7 +3,7 @@
tasks. tasks.
"] "]
export msg, ping; export ControlMsg, PingMsg;
export content; export content;
import result::extensions; import result::extensions;
@ -13,35 +13,37 @@ import dom = dom::base;
import layout::layout_task; import layout::layout_task;
import js::rust::methods; import js::rust::methods;
enum msg { enum ControlMsg {
parse(~str), ParseMsg(~str),
execute(~str), ExecuteMsg(~str),
exit ExitMsg
} }
enum ping { enum PingMsg {
pong PongMsg
} }
// sends a ping to layout and awaits the response. #[doc="Sends a ping to layout and waits for the response."]
fn join_layout(scope: dom::node_scope, fn join_layout(scope: dom::node_scope, to_layout: chan<layout_task::Msg>) {
to_layout: chan<layout_task::msg>) {
if scope.is_reader_forked() { if scope.is_reader_forked() {
comm::listen { |ch| comm::listen {
to_layout.send(layout_task::ping(ch)); |from_layout|
ch.recv(); to_layout.send(layout_task::PingMsg(from_layout));
from_layout.recv();
} }
scope.reader_joined(); scope.reader_joined();
} }
} }
fn content(to_layout: chan<layout_task::msg>) -> chan<msg> { fn content(to_layout: chan<layout_task::Msg>) -> chan<ControlMsg> {
task::spawn_listener::<msg> {|from_master| task::spawn_listener::<ControlMsg> {
|from_master|
let scope = dom::node_scope(); let scope = dom::node_scope();
let rt = js::rust::rt(); let rt = js::rust::rt();
loop { loop {
alt from_master.recv() { alt from_master.recv() {
parse(filename) { ParseMsg(filename) {
#debug["content: Received filename `%s` to parse", *filename]; #debug["content: Received filename `%s` to parse", *filename];
// TODO actually parse where the css sheet should be // TODO actually parse where the css sheet should be
@ -80,13 +82,14 @@ fn content(to_layout: chan<layout_task::msg>) -> chan<msg> {
join_layout(scope, to_layout); join_layout(scope, to_layout);
// Send new document to layout. // Send new document to layout.
to_layout.send(layout_task::build(root, css_rules)); to_layout.send(layout_task::BuildMsg(root, css_rules));
// Indicate that reader was forked so any further // Indicate that reader was forked so any further
// changes will be isolated. // changes will be isolated.
scope.reader_forked(); scope.reader_forked();
} }
execute(filename) {
ExecuteMsg(filename) {
#debug["content: Received filename `%s` to execute", #debug["content: Received filename `%s` to execute",
*filename]; *filename];
@ -98,16 +101,18 @@ fn content(to_layout: chan<layout_task::msg>) -> chan<msg> {
let cx = rt.cx(); let cx = rt.cx();
cx.set_default_options_and_version(); cx.set_default_options_and_version();
cx.set_logging_error_reporter(); cx.set_logging_error_reporter();
cx.new_compartment(js::global::global_class).chain { |comp| cx.new_compartment(js::global::global_class).chain {
comp.define_functions(js::global::debug_fns); |compartment|
cx.evaluate_script(comp.global_obj, bytes, *filename, compartment.define_functions(js::global::debug_fns);
1u) cx.evaluate_script(compartment.global_obj, bytes,
*filename, 1u)
}; };
} }
} }
} }
exit {
to_layout.send(layout_task::exit); ExitMsg {
to_layout.send(layout_task::ExitMsg);
break; break;
} }
} }

View file

@ -22,19 +22,19 @@ fn engine<S:renderer::sink send copy>(sink: S) -> chan<Msg> {
LoadURLMsg(url) { LoadURLMsg(url) {
let url <- url; let url <- url;
if (*url).ends_with(".js") { if (*url).ends_with(".js") {
content.send(content::execute(url)) content.send(content::ExecuteMsg(url))
} else { } else {
content.send(content::parse(url)) content.send(content::ParseMsg(url))
} }
} }
ExitMsg(sender) { ExitMsg(sender) {
content.send(content::exit); content.send(content::ExitMsg);
layout.send(layout::layout_task::exit); layout.send(layout::layout_task::ExitMsg);
listen { listen {
|resp_ch| |response_channel|
renderer.send(renderer::exit(resp_ch)); renderer.send(renderer::ExitMsg(response_channel));
resp_ch.recv(); response_channel.recv();
} }
sender.send(()); sender.send(());
break; break;

View file

@ -114,11 +114,11 @@ fn sanity_check() {
let renderer = renderer::renderer(sink); let renderer = renderer::renderer(sink);
let dlist = []; let dlist = [];
renderer.send(renderer::render(dlist)); renderer.send(renderer::RenderMsg(dlist));
listen {|resp| listen {|resp|
renderer.send(renderer::exit(resp)); renderer.send(renderer::ExitMsg(resp));
resp.recv(); resp.recv();
} }
sink.send(exit) sink.send(exit)
} }
} }

View file

@ -7,9 +7,9 @@ import azure::*;
import azure::bindgen::*; import azure::bindgen::*;
import libc::size_t; import libc::size_t;
enum msg { enum Msg {
render(dl::display_list), RenderMsg(dl::display_list),
exit(comm::chan<()>) ExitMsg(comm::chan<()>)
} }
#[doc = " #[doc = "
@ -21,15 +21,16 @@ iface sink {
fn draw(next_dt: chan<AzDrawTargetRef>, draw_me: AzDrawTargetRef); fn draw(next_dt: chan<AzDrawTargetRef>, draw_me: AzDrawTargetRef);
} }
fn renderer<S: sink send copy>(sink: S) -> chan<msg> { fn renderer<S: sink send copy>(sink: S) -> chan<Msg> {
task::spawn_listener::<msg> {|po| task::spawn_listener::<Msg> {|po|
listen {|draw_target_ch| listen {
|draw_target_ch|
#debug("renderer: beginning rendering loop"); #debug("renderer: beginning rendering loop");
sink.begin_drawing(draw_target_ch); sink.begin_drawing(draw_target_ch);
loop { loop {
alt po.recv() { alt po.recv() {
render(display_list) { RenderMsg(display_list) {
#debug("renderer: got render request"); #debug("renderer: got render request");
let draw_target = draw_target_ch.recv(); let draw_target = draw_target_ch.recv();
#debug("renderer: rendering"); #debug("renderer: rendering");
@ -39,7 +40,7 @@ fn renderer<S: sink send copy>(sink: S) -> chan<msg> {
#debug("renderer: returning surface"); #debug("renderer: returning surface");
sink.draw(draw_target_ch, draw_target); sink.draw(draw_target_ch, draw_target);
} }
exit(response_ch) { ExitMsg(response_ch) {
response_ch.send(()); response_ch.send(());
break; break;
} }

View file

@ -21,33 +21,37 @@ import box_builder::box_builder_methods;
import dl = display_list; import dl = display_list;
import util::color::methods; import util::color::methods;
enum msg { enum Msg {
build(node, stylesheet), BuildMsg(node, stylesheet),
ping(chan<content::ping>), PingMsg(chan<content::PingMsg>),
exit ExitMsg
} }
fn layout(to_renderer: chan<renderer::msg>) -> chan<msg> { fn layout(to_renderer: chan<renderer::Msg>) -> chan<Msg> {
spawn_listener::<msg> { |po| spawn_listener::<Msg> { |po|
loop { loop {
alt po.recv() { alt po.recv() {
ping(ch) { ch.send(content::pong); } PingMsg(ping_channel) {
exit { break; } ping_channel.send(content::PongMsg);
build(node, styles) { }
#debug("layout: received layout request for:"); ExitMsg {
node.dump(); break;
}
BuildMsg(node, styles) {
#debug("layout: received layout request for:");
node.dump();
node.recompute_style_for_subtree(styles); node.recompute_style_for_subtree(styles);
let this_box = node.construct_boxes(); let this_box = node.construct_boxes();
this_box.dump(); this_box.dump();
this_box.apply_style_for_subtree(); this_box.apply_style_for_subtree();
this_box.reflow(px_to_au(800)); this_box.reflow(px_to_au(800));
let dlist = build_display_list(this_box); let dlist = build_display_list(this_box);
to_renderer.send(renderer::render(dlist)); to_renderer.send(renderer::RenderMsg(dlist));
} }
} }
} }
} }