Use Image::operator== to compare RawImageProxy which should be faster.
authorCarl Hetherington <cth@carlh.net>
Wed, 10 Jun 2015 10:41:05 +0000 (11:41 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 10 Jun 2015 10:41:05 +0000 (11:41 +0100)
src/lib/raw_image_proxy.cc
src/lib/raw_image_proxy.h

index e73a1543d34faabe40467f284065e00784bb09ca..c9a76e85a2d6da0e06fa198edef22bba40a14974 100644 (file)
@@ -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());
+}
index 51ffd4e9865eeafe4c9e9bd3742b37970c51d3eb..33bf4827380e30f64a86c0fc0c694562d61556b6 100644 (file)
@@ -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;