diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-06-10 11:41:05 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-06-10 11:41:05 +0100 |
| commit | 1b653324caf9acf7183f053d3a0fdd29e40eb006 (patch) | |
| tree | 6fee6fb298f099387738bdcc8e6945979ab6af64 /src/lib | |
| parent | 3c57b431a67148e2200ed1f29f9b3fa546b7b017 (diff) | |
Use Image::operator== to compare RawImageProxy which should be faster.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/raw_image_proxy.cc | 12 | ||||
| -rw-r--r-- | src/lib/raw_image_proxy.h | 3 |
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; |
