X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=bindings%2Fcxx%2Finclude%2Flibsigrokcxx%2Flibsigrokcxx.hpp;h=a74bbfcfa5002ba665e747c17edd4f3235125710;hp=5e101fc8209b1ccef9b02b48960d7d312aa1cc1e;hb=a98729a742ebbb9df9dbb9ce8aae1cc4c3f1e00d;hpb=f17b45465500f1d1aad58479802018949004cce5 diff --git a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp index 5e101fc8..a74bbfcf 100644 --- a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp +++ b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp @@ -203,13 +203,6 @@ protected: throw Error(SR_ERR_BUG); return shared; } - - /* Deleter needed to allow shared_ptr use with protected destructor. */ - class Deleter - { - public: - void operator()(Class *object) { delete object; } - }; }; /** Type of log callback */ @@ -307,9 +300,9 @@ private: LogCallbackFunction _log_callback; Context(); ~Context(); - friend class Deleter; friend class Session; friend class Driver; + friend class std::default_delete; }; enum Capability { @@ -405,18 +398,13 @@ protected: map > _channels; private: map > _channel_groups; - /** Deleter needed to allow shared_ptr use with protected destructor. */ - class Deleter - { - public: - void operator()(Device *device) { delete device; } - }; - friend class Deleter; + friend class Session; friend class Channel; friend class ChannelGroup; friend class Output; friend class Analog; + friend class std::default_delete; }; /** A real hardware device, connected via a driver */ @@ -432,15 +420,10 @@ private: ~HardwareDevice(); shared_ptr get_shared_from_this(); shared_ptr _driver; - /** Deleter needed to allow shared_ptr use with protected destructor. */ - class Deleter - { - public: - void operator()(HardwareDevice *device) { delete device; } - }; - friend class Deleter; + friend class Driver; friend class ChannelGroup; + friend class std::default_delete; }; /** A virtual device, created by the user */ @@ -455,14 +438,9 @@ private: UserDevice(string vendor, string model, string version); ~UserDevice(); shared_ptr get_shared_from_this(); - /** Deleter needed to allow shared_ptr use with protected destructor. */ - class Deleter - { - public: - void operator()(UserDevice *device) { delete device; } - }; + friend class Context; - friend class Deleter; + friend class std::default_delete; }; /** A channel on a device */ @@ -532,9 +510,9 @@ private: struct sr_trigger *_structure; shared_ptr _context; vector > _stages; - friend class Deleter; friend class Context; friend class Session; + friend class std::default_delete; }; /** A stage in a trigger configuration */ @@ -614,13 +592,7 @@ private: explicit SessionDevice(struct sr_dev_inst *sdi); ~SessionDevice(); shared_ptr get_shared_from_this(); - /** Deleter needed to allow shared_ptr use with protected destructor. */ - class Deleter - { - public: - void operator()(SessionDevice *device) { delete device; } - }; - friend class Deleter; + friend class Session; friend class std::default_delete; }; @@ -673,10 +645,11 @@ private: SessionStoppedCallback _stopped_callback; string _filename; shared_ptr _trigger; - friend class Deleter; + friend class Context; friend class DatafeedCallbackData; friend class SessionDevice; + friend class std::default_delete; }; /** A packet on the session datafeed */ @@ -694,7 +667,7 @@ private: const struct sr_datafeed_packet *_structure; shared_ptr _device; unique_ptr _payload; - friend class Deleter; + friend class Session; friend class Output; friend class DatafeedCallbackData; @@ -703,6 +676,7 @@ private: friend class Logic; friend class Analog; friend class Context; + friend class std::default_delete; }; /** Abstract base class for datafeed packet payloads */ @@ -714,13 +688,6 @@ protected: private: virtual shared_ptr share_owned_by(shared_ptr parent) = 0; - /** Deleter needed to allow shared_ptr use with protected destructor. */ - class Deleter - { - public: - void operator()(PacketPayload *payload) { delete payload; } - }; - friend class Deleter; friend class Packet; friend class Output; friend class std::default_delete; @@ -861,9 +828,10 @@ private: const struct sr_input *_structure; shared_ptr _context; unique_ptr _device; - friend class Deleter; + friend class Context; friend class InputFormat; + friend class std::default_delete; }; /** A virtual device associated with an input */ @@ -900,9 +868,10 @@ private: ~Option(); const struct sr_option *_structure; shared_ptr _structure_array; - friend class Deleter; + friend class InputFormat; friend class OutputFormat; + friend class std::default_delete