[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
base_graphics_backend
From: |
Ryan Rusaw |
Subject: |
base_graphics_backend |
Date: |
Mon, 8 Sep 2008 22:45:54 -0600 |
Michael,
I've implemented a implement a subclass of base_graphics_backend that
implements a simple wire protocol with JSON-based data serialization.
I've just encountered a few issues
1. A property_changed event is never fired for
base_properties::children. Is this the expected behavior? I've
resorted to keeping track of children
myself on the plotting end of the ipc socket, as I never know when the
children have been updated.
2. I seem to get spurious object deletions and incomplete handle reassignments.
octave:1> autoload("__init_octave_eclipse__",
file_in_loadpath("octave_eclipse_backend.oct"))
octave:2> backend ("octave_eclipse")
octave:3> figure
octave:4> plot(0:.1:10,cos(0:.1:10))
octave:5> exit
error: graphics_handle::free: invalid object -6.19755
error: graphics_handle::free: invalid object -7.33522
error: graphics_handle::free: invalid object -8.76823
error: graphics_handle::free: invalid object -9.27777
Printing out the serialized objects I get the following:
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":1}},{"key":"type","value":{"string_value":"figure"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-1.840187716837885}},{"key":"type","value":{"string_value":"axes"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-2.394382926917457}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-3.783099223494949}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-4.798440033198129}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-5.911647357553408}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-6.197551369575061}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-7.33522275586835}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-8.768229594562095}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-9.277774711010151}},{"key":"type","value":{"string_value":"text"}}]}}}}
{"payload":{"objectDeleted":{"object_id":-6.197551369575061}}}
{"payload":{"objectDeleted":{"object_id":-7.33522275586835}}}
{"payload":{"objectDeleted":{"object_id":-8.768229594562095}}}
{"payload":{"objectDeleted":{"object_id":-9.277774711010151}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-9.277774711010151}},{"key":"type","value":{"string_value":"hggroup"}}]}}}}
{"payload":{"objectCreated":{"object":{"properties":[{"key":"__myhandle__","value":{"double_value":-8.768229594562095}},{"key":"type","value":{"string_value":"line"}}]}}}}
It seems to create the figure and axes correctly, but then creates
extra text objects ([xyz]label + title) just to delete them again.
Could this be a byproduct of iterating through all the properties of
an object during the object_created function call?
void octave_eclipse_backend::object_created(const graphics_object& go) {
... Serialize object ...
Octave_map all_props = go.get_properties().get(true).map_value();
for (Octave_map::iterator it = all_props.begin(); it !=
all_props.end(); ++it) {
... Serialize property ...
}
}
Any feedback would be much appreciated.
Thanks.
Ryan
- base_graphics_backend,
Ryan Rusaw <=
- Re: base_graphics_backend, Michael Goffioul, 2008/09/09
- Re: base_graphics_backend, David Bateman, 2008/09/09
- Re: base_graphics_backend, Ryan Rusaw, 2008/09/09
- Re: base_graphics_backend, Michael Goffioul, 2008/09/09
- Re: base_graphics_backend, John W. Eaton, 2008/09/09
- Re: base_graphics_backend, Michael Goffioul, 2008/09/10
- Re: base_graphics_backend, Michael Goffioul, 2008/09/10
- Re: base_graphics_backend, David Bateman, 2008/09/10
- Re: base_graphics_backend, Michael Goffioul, 2008/09/10
- Re: base_graphics_backend, John W. Eaton, 2008/09/09