degate 0.1.1
Todo List

Member degate::BackgroundClassifier< ImageType, HistogramType >::recognize (coord_type &v)
Cache data

Class degate::DegateLogicException
Check for std::logic_error exceptions in the code and replace it with a GenericDegateException.

Class degate::DegateRuntimeException
Check for std::runtime_error exceptions in the code and replace it with a DegateRuntimeException.

Class degate::Gate
The template type id makes only sense, if ports have the same thing with remplate ports. Maybe removing this is an option, because there are easier ways to relaod the gate library.

Class degate::GateLibrary
There is no way to deal with gate libraries, which have different image sizes for the gate templates then the current project. There should be a way to scale the template images, but it is unknown how to derive the scaling factor without pain.

Class degate::GatePort
Dispatch get_fill/frame_color() calls to GateTemplatePort::get_xxx_color(). Make sure, that colors are updated when changes are made in the PortColorManager.

Member degate::GateTemplate::add_template_port (GateTemplatePort_shptr template_port)
In order to make the API hard to misuse, this method might be made private.

Member degate::GateTemplate::remove_template_port (GateTemplatePort_shptr template_port)
In order to make the API hard to misuse, this method might be made private.

Member degate::GateTemplate::set_image (Layer::LAYER_TYPE layer_type, GateTemplateImage_shptr img)
: Here we might need a hook for storing different image types, e.g. a template image that is an average image or sth. like that.
Exceptions:
InvalidPointerExceptionThrows this excpetion, if img is NULL.

Member degate::Image< PixelPolicy, StoragePolicy_PersistentFile >::Image (unsigned int _width, unsigned int _height, std::string const &filename)
The third parameter must be optional.

Member degate::Importer::check_file (std::string const &filename) const
Change the return type tool bool.

Member degate::is_directory (std::string const &path)
Instead of writing own wrapper functions, it would be better to use the boost filesystem abstraction.

Class degate::is_pointer< std::tr1::shared_ptr< T > >
use boost version instead.

Class degate::is_pointer< T * >
use boost version instead.

Class degate::is_pointer< T >
use boost version instead.

Class degate::LogicModel
implement a move_object

Member degate::LogicModel::add_gate_template (GateTemplate_shptr tmpl)

Implement update.

should call add_object() for the port

Member degate::LogicModel::add_template_port_to_gate_template (GateTemplate_shptr gate_template, GateTemplatePort_shptr template_port)
should call add_object() for the port

Member degate::LogicModel::remove_gate_template (GateTemplate_shptr tmpl)

should call remove_object() for the port

The method name does not express, that the gates are removed as well. The method should be named remove_template_and_gates() and remove_gate_template() should only unreference and destroy the template.

Member degate::LogicModel::remove_layer (Layer_shptr layer)
Implement this.

Member degate::LogicModel::remove_object (PlacedLogicModelObject_shptr o)
fix it

Member degate::LogicModel::remove_template_port_from_gate_template (GateTemplate_shptr gate_template, GateTemplatePort_shptr template_port)
should call add_object() for the port.

Member degate::LogicModel::remove_template_references (GateTemplate_shptr tmpl)
should call remove_object() for the port

Member degate::LogicModel::set_gate_library (GateLibrary_shptr new_gate_lib)
: Implement updates on the logic model.

Member degate::MemoryMap< T >::raw_copy (void *buf) const

Remove this method.

Remove this method.

Member degate::save_image (std::string const &path, std::tr1::shared_ptr< ImageType > img)
We should use a factory for writer objects.
Exceptions:
DegateRuntimeExceptionThis exception is thrown, if the writer failed to save the image.
InvalidPointerExceptionThis exception is thrown, if parameter img represents an invalid pointer.

Member degate::ScalingManager< ImageType >::create_scalings ()
If the image was already scaled, do not do it again. Maybe we need a force option.