summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-06-10 11:41:05 +0100
committerCarl Hetherington <cth@carlh.net>2015-06-10 11:41:05 +0100
commit1b653324caf9acf7183f053d3a0fdd29e40eb006 (patch)
tree6fee6fb298f099387738bdcc8e6945979ab6af64 /src/lib
parent3c57b431a67148e2200ed1f29f9b3fa546b7b017 (diff)
Use Image::operator== to compare RawImageProxy which should be faster.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/raw_image_proxy.cc12
-rw-r--r--src/lib/raw_image_proxy.h3
2 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/raw_image_proxy.cc b/src/lib/raw_image_proxy.cc
index e73a1543d..c9a76e85a 100644
--- a/src/lib/raw_image_proxy.cc
+++ b/src/lib/raw_image_proxy.cc
@@ -30,6 +30,7 @@ extern "C" {
using std::string;
using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
using boost::optional;
RawImageProxy::RawImageProxy (shared_ptr<Image> image)
@@ -68,3 +69,14 @@ RawImageProxy::send_binary (shared_ptr<Socket> socket) const
{
_image->write_to_socket (socket);
}
+
+bool
+RawImageProxy::same (shared_ptr<const ImageProxy> other) const
+{
+ shared_ptr<const RawImageProxy> rp = dynamic_pointer_cast<const RawImageProxy> (other);
+ if (!rp) {
+ return false;
+ }
+
+ return (*_image.get()) == (*rp->image().get());
+}
diff --git a/src/lib/raw_image_proxy.h b/src/lib/raw_image_proxy.h
index 51ffd4e98..33bf48273 100644
--- a/src/lib/raw_image_proxy.h
+++ b/src/lib/raw_image_proxy.h
@@ -27,10 +27,11 @@ class RawImageProxy : public ImageProxy
public:
RawImageProxy (boost::shared_ptr<Image>);
RawImageProxy (boost::shared_ptr<cxml::Node> xml, boost::shared_ptr<Socket> socket);
-
+
boost::shared_ptr<Image> image (boost::optional<dcp::NoteHandler> note = boost::optional<dcp::NoteHandler> ()) const;
void add_metadata (xmlpp::Node *) const;
void send_binary (boost::shared_ptr<Socket>) const;
+ bool same (boost::shared_ptr<const ImageProxy>) const;
private:
boost::shared_ptr<Image> _image;