Issue 18628: API correction required to src/hpp/dds/core/status/State.hpp (dds-psm-cxx-rtf) Source: Micro Focus (Mr. Simon McQueen, simon.mcqueen(at)microfocus.com) Nature: Uncategorized Issue Severity: Summary: Vestigial implementation code (and comments) need removing for consistency and to fix compilation. Header include missing. Required inline operation missing. Windows export macros required. _Suggested resolution_: diff --git a/src/hpp/dds/core/status/State.hpp b/src/hpp/dds/core/status/State.hpp index 8ac4475..ab8d1cf 100644 --- a/src/hpp/dds/core/status/State.hpp +++ b/src/hpp/dds/core/status/State.hpp @@ -21,19 +21,20 @@ #include <bitset> #include <dds/core/macros.hpp> +#include <dds/core/types.hpp> namespace dds { namespace core { namespace status { - class SampleRejectedState : public std::bitset<OMG_DDS_STATE_BIT_COUNT> { + class OMG_DDS_API SampleRejectedState : public std::bitset<OMG_DDS_STATE_BIT_COUNT> { public: typedef std::bitset<OMG_DDS_STATE_BIT_COUNT> MaskType; public: - SampleRejectedState() : MaskType() { } - SampleRejectedState(const SampleRejectedState& src) : MaskType(static_cast<int>(src.to_ulong())) { } - SampleRejectedState(const MaskType& src) : MaskType(static_cast<int>(src.to_ulong())) { } + SampleRejectedState(); + SampleRejectedState(const SampleRejectedState& src); + SampleRejectedState(const MaskType& src); public: inline static const SampleRejectedState not_rejected() { @@ -50,29 +51,29 @@ namespace dds { namespace core { namespace status { } private: - // @TODO - // -- This Ctor should be fixed as currently there is this - // -- cast only to avoid an error when compiling with the MS vC++ compiler - SampleRejectedState(uint32_t s) - : MaskType((uint64_t)s) - { } - + SampleRejectedState(uint32_t s); }; // StatusMask create_status_mask(uint64_t); - class StatusMask : public std::bitset<OMG_DDS_STATUS_COUNT> { + class OMG_DDS_API StatusMask : public std::bitset<OMG_DDS_STATUS_COUNT> { public: typedef std::bitset<OMG_DDS_STATUS_COUNT> MaskType; public: - StatusMask() { } - explicit StatusMask(uint64_t mask) : std::bitset<OMG_DDS_STATUS_COUNT>(mask) { } - StatusMask(const StatusMask& other) : MaskType(static_cast<int>(other.to_ulong())) { } - ~StatusMask() { } + StatusMask(); + explicit StatusMask(uint32_t mask); + StatusMask(const StatusMask& other); + ~StatusMask(); public: + inline StatusMask& operator << (const dds::core::status::StatusMask& mask) + { + *this |= mask; + return *this; + } + inline static const StatusMask all() { return StatusMask(0x7fe7u); } Resolution: Revised Text: Actions taken: April 9, 2013: received issue Discussion: End of Annotations:===== ogle-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding:x-gm-message-state; bh=4R7j2RFSwfn/4ITVPVhNr33zn/hlW/qzGYfHz4bYBwY=; b=Qmq9QpcKbA8kxiZ6XCWgbJGax/AT7vAZAbQh69h7+XnhVCcOmDtdLIwywaJGhCMbVv SLxYs3SvN3FsJ19llTvKwjHwn5p1YhvMr/PHhdHpQxczJV1iRgUB14zd6v+S7fJPDHEt YJJL4C1I/Irz6heB12/AM0yYLKOnJNUevf+AHKozo016xM6W25MKeL8W8XpK3ryRcVAk DzAG9BiCT6L/hiJSdkkms8/zsSpo/LZvcmw5eSr7DYX9vlK3NQ0jllvwkVG6J+u4XL01 CjnAcUFNvn8eanCo3S/NLPSoMfOa3emy93EXSShycvkUZLaHFY7g0FN1lx5iPo53baYj Fqiw== X-Received: by 10.180.82.68 with SMTP id g4mr19498969wiy.26.1365513607095; Tue, 09 Apr 2013 06:20:07 -0700 (PDT) Date: Tue, 09 Apr 2013 14:19:55 +0100 From: Simon McQueen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4 To: issues@omg.org Subject: API correction required to src/hpp/dds/core/status/State.hpp X-Gm-Message-State: ALoCoQksWcY0ocGMbFWCjDVwLBwMZ1sFmJO46nJSK9h5WuWmGreglpATrI9LeGgPSrq8qfQl85Vt X-Virus-Scanned: amavisd-new at omg.org X-Brightmail-Tracker: AAAAAA== X-Brightmail-Tracker: AAAAAA== Name: Simon McQueen Employer: PrismTech Specification: DDS CXX PSM RTF FormalNumber: ptc/12-10-03 Nature: Revision _Issues_: Vestigial implementation code (and comments) need removing for consistency and to fix compilation. Header include missing. Required inline operation missing. Windows export macros required. _Suggested resolution_: diff --git a/src/hpp/dds/core/status/State.hpp b/src/hpp/dds/core/status/State.hpp index 8ac4475..ab8d1cf 100644 --- a/src/hpp/dds/core/status/State.hpp +++ b/src/hpp/dds/core/status/State.hpp @@ -21,19 +21,20 @@ #include #include +#include namespace dds { namespace core { namespace status { - class SampleRejectedState : public std::bitset { + class OMG_DDS_API SampleRejectedState : public std::bitset { public: typedef std::bitset MaskType; public: - SampleRejectedState() : MaskType() { } - SampleRejectedState(const SampleRejectedState& src) : MaskType(static_cast(src.to_ulong())) { } - SampleRejectedState(const MaskType& src) : MaskType(static_cast(src.to_ulong())) { } + SampleRejectedState(); + SampleRejectedState(const SampleRejectedState& src); + SampleRejectedState(const MaskType& src); public: inline static const SampleRejectedState not_rejected() { @@ -50,29 +51,29 @@ namespace dds { namespace core { namespace status { } private: - // @TODO - // -- This Ctor should be fixed as currently there is this - // -- cast only to avoid an error when compiling with the MS vC++ compiler - SampleRejectedState(uint32_t s) - : MaskType((uint64_t)s) - { } - + SampleRejectedState(uint32_t s); }; // StatusMask create_status_mask(uint64_t); - class StatusMask : public std::bitset { + class OMG_DDS_API StatusMask : public std::bitset { public: typedef std::bitset MaskType; public: - StatusMask() { } - explicit StatusMask(uint64_t mask) : std::bitset(mask) { } - StatusMask(const StatusMask& other) : MaskType(static_cast(other.to_ulong())) { } - ~StatusMask() { } + StatusMask(); + explicit StatusMask(uint32_t mask); + StatusMask(const StatusMask& other); + ~StatusMask(); public: + inline StatusMask& operator << (const dds::core::status::StatusMask& mask) + { + *this |= mask; + return *this; + } + inline static const StatusMask all() { return StatusMask(0x7fe7u); }