diff --git a/src/db/db/gsiDeclDbLayoutDiff.cc b/src/db/db/gsiDeclDbLayoutDiff.cc index d6e85f00a..cd9431a75 100644 --- a/src/db/db/gsiDeclDbLayoutDiff.cc +++ b/src/db/db/gsiDeclDbLayoutDiff.cc @@ -248,6 +248,26 @@ public: end_edge_differences_event (); } + virtual void begin_edge_pair_differences () + { + begin_edge_pair_differences_event (); + } + + virtual void detailed_diff (const db::PropertiesRepository & /*pr*/, const std::vector > &a, const std::vector > &b) + { + for (std::vector >::const_iterator i = a.begin (); i != a.end (); ++i) { + edge_pair_in_a_only_event (i->first, i->second); + } + for (std::vector >::const_iterator i = b.begin (); i != b.end (); ++i) { + edge_pair_in_b_only_event (i->first, i->second); + } + } + + virtual void end_edge_pair_differences () + { + end_edge_pair_differences_event (); + } + virtual void begin_text_differences () { begin_text_differences_event (); @@ -353,6 +373,10 @@ public: tl::event edge_in_a_only_event; tl::event edge_in_b_only_event; tl::Event end_edge_differences_event; + tl::Event begin_edge_pair_differences_event; + tl::event edge_pair_in_a_only_event; + tl::event edge_pair_in_b_only_event; + tl::Event end_edge_pair_differences_event; tl::Event begin_text_differences_event; tl::event text_in_a_only_event; tl::event text_in_b_only_event; @@ -671,6 +695,29 @@ gsi::Class decl_LayoutDiff ("db", "LayoutDiff", gsi::event ("on_end_edge_differences", &LayoutDiff::end_edge_differences_event, "@brief This signal indicates the end of sequence of edge differences\n" ) + + gsi::event ("on_begin_edge_pair_differences", &LayoutDiff::begin_edge_pair_differences_event, + "@brief This signal indicates differences in the edge pairs on the current layer\n" + "The current layer is indicated by the \\begin_layer_event signal or can be obtained from the diff object " + "through \\LayoutDiff#layer_info_a, \\LayoutDiff#layer_index_a, \\LayoutDiff#layer_info_b and \\LayoutDiff#layer_index_b. " + "In verbose mode (see \\Verbose flag) more signals will be emitted for edge pairs that are different between the two layouts." + "\n" + "This event has been introduced in version 0.28." + ) + + gsi::event ("on_edge_pair_in_a_only", &LayoutDiff::edge_pair_in_a_only_event, gsi::arg ("anotb"), gsi::arg ("prop_id"), + "@brief This signal indicates an edge pair that is present in the first layout only" + "\n" + "This event has been introduced in version 0.28." + ) + + gsi::event ("on_edge_pair_in_b_only", &LayoutDiff::edge_pair_in_b_only_event, gsi::arg ("bnota"), gsi::arg ("prop_id"), + "@brief This signal indicates an edge pair that is present in the second layout only" + "\n" + "This event has been introduced in version 0.28." + ) + + gsi::event ("on_end_edge_pair_differences", &LayoutDiff::end_edge_pair_differences_event, + "@brief This signal indicates the end of sequence of edge pair differences\n" + "\n" + "This event has been introduced in version 0.28." + ) + gsi::event ("on_begin_text_differences", &LayoutDiff::begin_text_differences_event, "@brief This signal indicates differences in the texts on the current layer\n" "The current layer is indicated by the \\begin_layer_event signal or can be obtained from the diff object "