cpp-common/bt2: use bt2c::CStringView in parameters and return values throughout
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 16 Jan 2024 18:31:06 +0000 (13:31 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Mon, 29 Jan 2024 16:38:19 +0000 (11:38 -0500)
From what I saw, at -O2 with gcc, passing and returning CStringViews
generates the same code as passing and returning `const char *`.  Change
the `cpp-common/bt2` code to take a return C strings using CStringViews
when possible, which is more convenient than `const char *`.

Since std::string is implicitly convertible to CStringView, there is
generaly no need to have separate overloads that take std::strings.

I left the `CommonStringField::append(const std::string &)` overload,
because this one has an advantage over the `CStringView` overload: it
uses the size of the `std::string`, which is cheaper than calling
`std::strlen`.

There are some cases where leaving the `const char *` overload is
necessary.  For instance, when there is also a `bool` overload.  In that
case, passing a `const char *` to the function would prefer the `bool`
overload over the `CStringView` overload, which is not what we want.

Change-Id: I4c995c995da3edd2f0e9f7034053d52cb1541bb0
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/11690
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
src/cpp-common/bt2/clock-class.hpp
src/cpp-common/bt2/component-port.hpp
src/cpp-common/bt2/field-class.hpp
src/cpp-common/bt2/field.hpp
src/cpp-common/bt2/plugin-dev.hpp
src/cpp-common/bt2/raw-value-proxy.hpp
src/cpp-common/bt2/self-component-port.hpp
src/cpp-common/bt2/trace-ir.hpp
src/cpp-common/bt2/value.hpp

index 6c8c66380588cff939459947c95cec9895ba1259..9e66cbf4290720b561fd2507183fd0aac173a88d 100644 (file)
@@ -173,7 +173,7 @@ public:
         return static_cast<bool>(bt_clock_class_origin_is_unix_epoch(this->libObjPtr()));
     }
 
-    void name(const char * const name) const
+    void name(const bt2c::CStringView name) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstClockClass`.");
 
@@ -184,17 +184,12 @@ public:
         }
     }
 
-    void name(const std::string& name) const
-    {
-        this->name(name.data());
-    }
-
     bt2c::CStringView name() const noexcept
     {
         return bt_clock_class_get_name(this->libObjPtr());
     }
 
-    void description(const char * const description) const
+    void description(const bt2c::CStringView description) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstClockClass`.");
 
@@ -205,11 +200,6 @@ public:
         }
     }
 
-    void description(const std::string& description) const
-    {
-        this->description(description.data());
-    }
-
     bt2c::CStringView description() const noexcept
     {
         return bt_clock_class_get_description(this->libObjPtr());
index 1ab7a850af271a84440387fb11c63e34f1a04be6..110c9b62a3787be4a83cbf084024278f19c344c1 100644 (file)
@@ -262,8 +262,7 @@ public:
     }
 
     Port operator[](std::uint64_t index) const noexcept;
-    Port operator[](const char *name) const noexcept;
-    Port operator[](const std::string& name) const noexcept;
+    Port operator[](bt2c::CStringView name) const noexcept;
     Iterator begin() const noexcept;
     Iterator end() const noexcept;
 };
@@ -505,18 +504,11 @@ ConstComponentPorts<LibCompT, LibPortT>::operator[](const std::uint64_t index) c
 
 template <typename LibCompT, typename LibPortT>
 typename ConstComponentPorts<LibCompT, LibPortT>::Port
-ConstComponentPorts<LibCompT, LibPortT>::operator[](const char * const name) const noexcept
+ConstComponentPorts<LibCompT, LibPortT>::operator[](const bt2c::CStringView name) const noexcept
 {
     return Port {_Spec::portByName(this->libObjPtr(), name)};
 }
 
-template <typename LibCompT, typename LibPortT>
-typename ConstComponentPorts<LibCompT, LibPortT>::Port
-ConstComponentPorts<LibCompT, LibPortT>::operator[](const std::string& name) const noexcept
-{
-    return (*this)[name.data()];
-}
-
 template <typename LibCompT, typename LibPortT>
 typename ConstComponentPorts<LibCompT, LibPortT>::Iterator
 ConstComponentPorts<LibCompT, LibPortT>::begin() const noexcept
index 435cf46ccb3100e29372057a91540b4c9f3c5379..b0420c4f61d7a41d00ce9d797ecbe6e3cdcc84a3 100644 (file)
@@ -853,18 +853,13 @@ public:
             this->libObjPtr(), index)};
     }
 
-    OptionalBorrowedObject<Mapping> operator[](const char * const label) const noexcept
+    OptionalBorrowedObject<Mapping> operator[](const bt2c::CStringView label) const noexcept
     {
         return internal::CommonEnumerationFieldClassSpec<MappingT>::mappingByLabel(
             this->libObjPtr(), label);
     }
 
-    OptionalBorrowedObject<Mapping> operator[](const std::string& label) const noexcept
-    {
-        return (*this)[label.data()];
-    }
-
-    void addMapping(const char * const label, const typename Mapping::RangeSet ranges) const
+    void addMapping(const bt2c::CStringView label, const typename Mapping::RangeSet ranges) const
     {
         const auto status = internal::CommonEnumerationFieldClassSpec<MappingT>::addMapping(
             this->libObjPtr(), label, ranges.libObjPtr());
@@ -874,11 +869,6 @@ public:
         }
     }
 
-    void addMapping(const std::string& label, const typename Mapping::RangeSet ranges) const
-    {
-        this->addMapping(label.data(), ranges);
-    }
-
     Iterator begin() const noexcept
     {
         return Iterator {*this, 0};
@@ -1146,7 +1136,7 @@ public:
         return CommonStructureFieldClass<const bt_field_class> {*this};
     }
 
-    void appendMember(const char * const name, const FieldClass fc) const
+    void appendMember(const bt2c::CStringView name, const FieldClass fc) const
     {
         static_assert(!std::is_const<LibObjT>::value,
                       "Not available with `bt2::ConstStructureFieldClass`.");
@@ -1159,11 +1149,6 @@ public:
         }
     }
 
-    void appendMember(const std::string& name, const FieldClass fc) const
-    {
-        this->appendMember(name.data(), fc);
-    }
-
     std::uint64_t length() const noexcept
     {
         return bt_field_class_structure_get_member_count(this->libObjPtr());
@@ -1185,17 +1170,12 @@ public:
             this->libObjPtr(), index)};
     }
 
-    OptionalBorrowedObject<Member> operator[](const char * const name) const noexcept
+    OptionalBorrowedObject<Member> operator[](const bt2c::CStringView name) const noexcept
     {
         return internal::CommonStructureFieldClassSpec<LibObjT>::memberByName(this->libObjPtr(),
                                                                               name);
     }
 
-    OptionalBorrowedObject<Member> operator[](const std::string& name) const noexcept
-    {
-        return (*this)[name.data()];
-    }
-
     Shared shared() const noexcept
     {
         return Shared::createWithRef(*this);
@@ -2176,17 +2156,12 @@ public:
             this->libObjPtr(), index)};
     }
 
-    OptionalBorrowedObject<Option> operator[](const char * const name) const noexcept
+    OptionalBorrowedObject<Option> operator[](const bt2c::CStringView name) const noexcept
     {
         return internal::CommonVariantFieldClassSpec<LibObjT>::optionByName(this->libObjPtr(),
                                                                             name);
     }
 
-    OptionalBorrowedObject<Option> operator[](const std::string& name) const noexcept
-    {
-        return (*this)[name.data()];
-    }
-
     Shared shared() const noexcept
     {
         return Shared::createWithRef(*this);
@@ -2266,6 +2241,11 @@ public:
         }
     }
 
+    void appendOption(const bt2c::CStringView name, const FieldClass fc) const
+    {
+        return this->appendOption(name.data(), fc);
+    }
+
     void appendOption(const bt2s::optional<std::string>& name, const FieldClass fc) const
     {
         this->appendOption(name ? name->data() : nullptr, fc);
@@ -2466,16 +2446,11 @@ public:
         return Option {_Spec::optionByIndex(this->libObjPtr(), index)};
     }
 
-    OptionalBorrowedObject<Option> operator[](const char * const name) const noexcept
+    OptionalBorrowedObject<Option> operator[](const bt2c::CStringView name) const noexcept
     {
         return _Spec::optionByName(this->libObjPtr(), name);
     }
 
-    OptionalBorrowedObject<Option> operator[](const std::string& name) const noexcept
-    {
-        return (*this)[name.data()];
-    }
-
     void appendOption(const char * const name, const FieldClass fc,
                       const typename Option::RangeSet ranges) const
     {
@@ -2492,6 +2467,12 @@ public:
         }
     }
 
+    void appendOption(const bt2c::CStringView name, const FieldClass fc,
+                      const typename Option::RangeSet ranges) const
+    {
+        return this->appendOption(name.data(), fc, ranges);
+    }
+
     void appendOption(const bt2s::optional<std::string>& name, const FieldClass fc,
                       const typename Option::RangeSet ranges) const
     {
index 40fe3f02f400080ed7d3ab9303ac305fee8ef1ef..0efd7e74659caf0b821e08a2f2b16b62dda1e8b1 100644 (file)
@@ -957,12 +957,12 @@ public:
         return CommonStringField<const bt_field> {*this};
     }
 
-    RawStringValueProxy<CommonStringField> operator*() const noexcept
+    RawValueProxy<CommonStringField> operator*() const noexcept
     {
-        return RawStringValueProxy<CommonStringField> {*this};
+        return RawValueProxy<CommonStringField> {*this};
     }
 
-    void value(const Value& val) const
+    void value(const Value val) const
     {
         static_assert(!std::is_const<LibObjT>::value,
                       "Not available with `bt2::ConstStringField`.");
@@ -974,17 +974,7 @@ public:
         }
     }
 
-    void value(const char * const val) const
-    {
-        this->value(bt2c::CStringView {val});
-    }
-
-    void value(const std::string& val) const
-    {
-        this->value(bt2c::CStringView {val.data()});
-    }
-
-    void append(const char * const begin, const std::uint64_t len) const
+    void append(const bt2c::CStringView begin, const std::uint64_t len) const
     {
         static_assert(!std::is_const<LibObjT>::value,
                       "Not available with `bt2::ConstStringField`.");
@@ -996,7 +986,7 @@ public:
         }
     }
 
-    void append(const char * const val) const
+    void append(const bt2c::CStringView val) const
     {
         this->append(val, std::strlen(val));
     }
@@ -1128,15 +1118,11 @@ public:
         return CommonField<LibObjT> {_Spec::memberFieldByIndex(this->libObjPtr(), index)};
     }
 
-    OptionalBorrowedObject<CommonField<LibObjT>> operator[](const char * const name) const noexcept
+    OptionalBorrowedObject<CommonField<LibObjT>>
+    operator[](const bt2c::CStringView name) const noexcept
     {
         return _Spec::memberFieldByName(this->libObjPtr(), name);
     }
-
-    OptionalBorrowedObject<CommonField<LibObjT>> operator[](const std::string& name) const noexcept
-    {
-        return (*this)[name.data()];
-    }
 };
 
 using StructureField = CommonStructureField<bt_field>;
index 2f6e2fff526e3ba05028f25673ca09b11491828b..3bc20e7fcf025d9a918e17c2e8a5440e91305fb9 100644 (file)
 namespace bt2 {
 namespace internal {
 
-constexpr const char *unhandledExcLogStr() noexcept
+constexpr bt2c::CStringView unhandledExcLogStr() noexcept
 {
     return "Unhandled exception.";
 }
 
-constexpr const char *unhandledExcLogTag() noexcept
+constexpr bt2c::CStringView unhandledExcLogTag() noexcept
 {
     return "PLUGIN-DEV-HPP";
 }
@@ -519,8 +519,8 @@ protected:
 
 public:
     static Value::Shared query(const SelfComponentClass selfCompCls,
-                               const PrivateQueryExecutor privQueryExec, const char * const obj,
-                               const ConstValue params)
+                               const PrivateQueryExecutor privQueryExec,
+                               const bt2c::CStringView obj, const ConstValue params)
     {
         return UserComponentT::_query(selfCompCls, privQueryExec, obj, params);
     }
@@ -540,7 +540,8 @@ public:
 
 protected:
     /* Overloadable */
-    static Value::Shared _query(SelfComponentClass, PrivateQueryExecutor, const char *, ConstValue)
+    static Value::Shared _query(SelfComponentClass, PrivateQueryExecutor, bt2c::CStringView,
+                                ConstValue)
     {
         throw UnknownObject {};
     }
@@ -558,23 +559,12 @@ protected:
     }
 
     template <typename DataT>
-    _OutputPorts::Port _addOutputPort(const char * const name, DataT * const data)
+    _OutputPorts::Port _addOutputPort(const bt2c::CStringView name, DataT * const data)
     {
         return this->_selfComp().addOutputPort(name, data);
     }
 
-    _OutputPorts::Port _addOutputPort(const char *name)
-    {
-        return this->_selfComp().addOutputPort(name);
-    }
-
-    template <typename DataT>
-    _OutputPorts::Port _addOutputPort(const std::string& name, DataT * const data)
-    {
-        return this->_selfComp().addOutputPort(name, data);
-    }
-
-    _OutputPorts::Port _addOutputPort(const std::string& name)
+    _OutputPorts::Port _addOutputPort(const bt2c::CStringView name)
     {
         return this->_selfComp().addOutputPort(name);
     }
@@ -607,8 +597,8 @@ protected:
 
 public:
     static Value::Shared query(const SelfComponentClass selfCompCls,
-                               const PrivateQueryExecutor privQueryExec, const char * const obj,
-                               const ConstValue params)
+                               const PrivateQueryExecutor privQueryExec,
+                               const bt2c::CStringView obj, const ConstValue params)
     {
         return UserComponentT::_query(selfCompCls, privQueryExec, obj, params);
     }
@@ -634,7 +624,8 @@ public:
 
 protected:
     /* Overloadable */
-    static Value::Shared _query(SelfComponentClass, PrivateQueryExecutor, const char *, ConstValue)
+    static Value::Shared _query(SelfComponentClass, PrivateQueryExecutor, bt2c::CStringView,
+                                ConstValue)
     {
         throw UnknownObject {};
     }
@@ -657,23 +648,12 @@ protected:
     }
 
     template <typename DataT>
-    _OutputPorts::Port _addInputPort(const char * const name, DataT * const data)
-    {
-        return this->_selfComp().addInputPort(name, data);
-    }
-
-    _InputPorts::Port _addInputPort(const char *name)
-    {
-        return this->_selfComp().addInputPort(name);
-    }
-
-    template <typename DataT>
-    _InputPorts::Port _addInputPort(const std::string& name, DataT * const data)
+    _OutputPorts::Port _addInputPort(const bt2c::CStringView name, DataT * const data)
     {
         return this->_selfComp().addInputPort(name, data);
     }
 
-    _InputPorts::Port _addInputPort(const std::string& name)
+    _InputPorts::Port _addInputPort(const bt2c::CStringView name)
     {
         return this->_selfComp().addInputPort(name);
     }
@@ -684,23 +664,12 @@ protected:
     }
 
     template <typename DataT>
-    _OutputPorts::Port _addOutputPort(const char * const name, DataT * const data)
+    _OutputPorts::Port _addOutputPort(const bt2c::CStringView name, DataT * const data)
     {
         return this->_selfComp().addOutputPort(name, data);
     }
 
-    _OutputPorts::Port _addOutputPort(const char *name)
-    {
-        return this->_selfComp().addOutputPort(name);
-    }
-
-    template <typename DataT>
-    _OutputPorts::Port _addOutputPort(const std::string& name, DataT * const data)
-    {
-        return this->_selfComp().addOutputPort(name, data);
-    }
-
-    _OutputPorts::Port _addOutputPort(const std::string& name)
+    _OutputPorts::Port _addOutputPort(const bt2c::CStringView name)
     {
         return this->_selfComp().addOutputPort(name);
     }
@@ -739,8 +708,8 @@ protected:
 
 public:
     static Value::Shared query(const SelfComponentClass selfCompCls,
-                               const PrivateQueryExecutor privQueryExec, const char * const obj,
-                               const ConstValue params)
+                               const PrivateQueryExecutor privQueryExec,
+                               const bt2c::CStringView obj, const ConstValue params)
     {
         return UserComponentT::_query(selfCompCls, privQueryExec, obj, params);
     }
@@ -770,7 +739,8 @@ public:
 
 protected:
     /* Overloadable */
-    static Value::Shared _query(SelfComponentClass, PrivateQueryExecutor, const char *, ConstValue)
+    static Value::Shared _query(SelfComponentClass, PrivateQueryExecutor, bt2c::CStringView,
+                                ConstValue)
     {
         throw UnknownObject {};
     }
@@ -798,23 +768,12 @@ protected:
     }
 
     template <typename DataT>
-    _InputPorts::Port _addInputPort(const char * const name, DataT * const data)
-    {
-        return this->_selfComp().addInputPort(name, data);
-    }
-
-    _InputPorts::Port _addInputPort(const char *name)
-    {
-        return this->_selfComp().addInputPort(name);
-    }
-
-    template <typename DataT>
-    _InputPorts::Port _addInputPort(const std::string& name, DataT * const data)
+    _InputPorts::Port _addInputPort(const bt2c::CStringView name, DataT * const data)
     {
         return this->_selfComp().addInputPort(name, data);
     }
 
-    _InputPorts::Port _addInputPort(const std::string& name)
+    _InputPorts::Port _addInputPort(const bt2c::CStringView name)
     {
         return this->_selfComp().addInputPort(name);
     }
index 2bb5ba8553284bb4027fc23877f279bca346791b..0c2543bdf9ed423c5d5c316c3b39d5a97eca8c71 100644 (file)
@@ -39,27 +39,6 @@ private:
     ObjT _mObj;
 };
 
-template <typename ObjT>
-class RawStringValueProxy final : public RawValueProxy<ObjT>
-{
-public:
-    explicit RawStringValueProxy(const ObjT obj) : RawValueProxy<ObjT> {obj}
-    {
-    }
-
-    RawStringValueProxy& operator=(const char * const rawVal)
-    {
-        RawValueProxy<ObjT>::operator=(bt2c::CStringView {rawVal});
-        return *this;
-    }
-
-    RawStringValueProxy& operator=(const std::string& rawVal)
-    {
-        RawValueProxy<ObjT>::operator=(bt2c::CStringView {rawVal.data()});
-        return *this;
-    }
-};
-
 } /* namespace bt2 */
 
 #endif /* BABELTRACE_CPP_COMMON_BT2_RAW_VALUE_PROXY_HPP */
index fff4aea76a37c7eaeacd871b4d1aef055e4c7379..0f5a2ec8913f5298a8688e709ea1f24be3d2bf64 100644 (file)
@@ -297,8 +297,7 @@ public:
     }
 
     Port operator[](std::uint64_t index) const noexcept;
-    Port operator[](const char *name) const noexcept;
-    Port operator[](const std::string& name) const noexcept;
+    Port operator[](bt2c::CStringView name) const noexcept;
     Iterator begin() const noexcept;
     Iterator end() const noexcept;
     Port front() const noexcept;
@@ -323,14 +322,10 @@ public:
     }
 
     template <typename DataT>
-    OutputPorts::Port addOutputPort(const char *name, DataT& data) const;
+    OutputPorts::Port addOutputPort(bt2c::CStringView name, DataT& data) const;
 
-    OutputPorts::Port addOutputPort(const char *name) const;
+    OutputPorts::Port addOutputPort(bt2c::CStringView name) const;
 
-    template <typename DataT>
-    OutputPorts::Port addOutputPort(const std::string& name, DataT& data) const;
-
-    OutputPorts::Port addOutputPort(const std::string& name) const;
     OutputPorts outputPorts() const noexcept;
 
 private:
@@ -358,25 +353,17 @@ public:
     }
 
     template <typename DataT>
-    InputPorts::Port addInputPort(const char *name, DataT& data) const;
-
-    InputPorts::Port addInputPort(const char *name) const;
+    InputPorts::Port addInputPort(bt2c::CStringView name, DataT& data) const;
 
-    template <typename DataT>
-    InputPorts::Port addInputPort(const std::string& name, DataT& data) const;
+    InputPorts::Port addInputPort(bt2c::CStringView name) const;
 
-    InputPorts::Port addInputPort(const std::string& name) const;
     InputPorts inputPorts() const noexcept;
 
     template <typename DataT>
-    OutputPorts::Port addOutputPort(const char *name, DataT& data) const;
-
-    OutputPorts::Port addOutputPort(const char *name) const;
+    OutputPorts::Port addOutputPort(bt2c::CStringView name, DataT& data) const;
 
-    template <typename DataT>
-    OutputPorts::Port addOutputPort(const std::string& name, DataT& data) const;
+    OutputPorts::Port addOutputPort(bt2c::CStringView name) const;
 
-    OutputPorts::Port addOutputPort(const std::string& name) const;
     OutputPorts outputPorts() const noexcept;
 
 private:
@@ -411,14 +398,10 @@ public:
     }
 
     template <typename DataT>
-    InputPorts::Port addInputPort(const char *name, DataT& data) const;
+    InputPorts::Port addInputPort(bt2c::CStringView name, DataT& data) const;
 
-    InputPorts::Port addInputPort(const char *name) const;
+    InputPorts::Port addInputPort(bt2c::CStringView name) const;
 
-    template <typename DataT>
-    InputPorts::Port addInputPort(const std::string& name, DataT& data) const;
-
-    InputPorts::Port addInputPort(const std::string& name) const;
     InputPorts inputPorts() const noexcept;
 
 private:
@@ -556,19 +539,11 @@ SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::operator[](
 template <typename LibSelfCompT, typename LibSelfCompPortT, typename LibPortT>
 typename SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::Port
 SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::operator[](
-    const char * const name) const noexcept
+    const bt2c::CStringView name) const noexcept
 {
     return Port {_Spec::portByName(this->libObjPtr(), name)};
 }
 
-template <typename LibSelfCompT, typename LibSelfCompPortT, typename LibPortT>
-typename SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::Port
-SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::operator[](
-    const std::string& name) const noexcept
-{
-    return (*this)[name.data()];
-}
-
 template <typename LibSelfCompT, typename LibSelfCompPortT, typename LibPortT>
 typename SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::Iterator
 SelfComponentPorts<LibSelfCompT, LibSelfCompPortT, LibPortT>::begin() const noexcept
@@ -611,31 +586,18 @@ SelfSourceComponent::OutputPorts::Port SelfSourceComponent::_addOutputPort(const
 }
 
 template <typename DataT>
-SelfSourceComponent::OutputPorts::Port SelfSourceComponent::addOutputPort(const char * const name,
-                                                                          DataT& data) const
+SelfSourceComponent::OutputPorts::Port
+SelfSourceComponent::addOutputPort(const bt2c::CStringView name, DataT& data) const
 {
     return this->_addOutputPort(name, &data);
 }
 
 inline SelfSourceComponent::OutputPorts::Port
-SelfSourceComponent::addOutputPort(const char * const name) const
+SelfSourceComponent::addOutputPort(const bt2c::CStringView name) const
 {
     return this->_addOutputPort<void>(name, nullptr);
 }
 
-template <typename DataT>
-SelfSourceComponent::OutputPorts::Port SelfSourceComponent::addOutputPort(const std::string& name,
-                                                                          DataT& data) const
-{
-    return this->_addOutputPort(name.data(), &data);
-}
-
-inline SelfSourceComponent::OutputPorts::Port
-SelfSourceComponent::addOutputPort(const std::string& name) const
-{
-    return this->_addOutputPort<void>(name.data(), nullptr);
-}
-
 inline SelfSourceComponent::OutputPorts SelfSourceComponent::outputPorts() const noexcept
 {
     return OutputPorts {this->libObjPtr()};
@@ -650,31 +612,18 @@ SelfFilterComponent::OutputPorts::Port SelfFilterComponent::_addOutputPort(const
 }
 
 template <typename DataT>
-SelfFilterComponent::OutputPorts::Port SelfFilterComponent::addOutputPort(const char * const name,
-                                                                          DataT& data) const
+SelfFilterComponent::OutputPorts::Port
+SelfFilterComponent::addOutputPort(const bt2c::CStringView name, DataT& data) const
 {
     return this->_addOutputPort(name, &data);
 }
 
 inline SelfFilterComponent::OutputPorts::Port
-SelfFilterComponent::addOutputPort(const char * const name) const
+SelfFilterComponent::addOutputPort(const bt2c::CStringView name) const
 {
     return this->_addOutputPort<void>(name, nullptr);
 }
 
-template <typename DataT>
-SelfFilterComponent::OutputPorts::Port SelfFilterComponent::addOutputPort(const std::string& name,
-                                                                          DataT& data) const
-{
-    return this->_addOutputPort(name.data(), &data);
-}
-
-inline SelfFilterComponent::OutputPorts::Port
-SelfFilterComponent::addOutputPort(const std::string& name) const
-{
-    return this->_addOutputPort<void>(name.data(), nullptr);
-}
-
 inline SelfFilterComponent::OutputPorts SelfFilterComponent::outputPorts() const noexcept
 {
     return OutputPorts {this->libObjPtr()};
@@ -689,31 +638,18 @@ SelfFilterComponent::InputPorts::Port SelfFilterComponent::_addInputPort(const c
 }
 
 template <typename DataT>
-SelfFilterComponent::InputPorts::Port SelfFilterComponent::addInputPort(const char * const name,
-                                                                        DataT& data) const
+SelfFilterComponent::InputPorts::Port
+SelfFilterComponent::addInputPort(const bt2c::CStringView name, DataT& data) const
 {
     return this->_addInputPort(name, &data);
 }
 
 inline SelfFilterComponent::InputPorts::Port
-SelfFilterComponent::addInputPort(const char * const name) const
+SelfFilterComponent::addInputPort(const bt2c::CStringView name) const
 {
     return this->_addInputPort<void>(name, nullptr);
 }
 
-template <typename DataT>
-SelfFilterComponent::InputPorts::Port SelfFilterComponent::addInputPort(const std::string& name,
-                                                                        DataT& data) const
-{
-    return this->_addInputPort(name.data(), &data);
-}
-
-inline SelfFilterComponent::InputPorts::Port
-SelfFilterComponent::addInputPort(const std::string& name) const
-{
-    return this->_addInputPort<void>(name.data(), nullptr);
-}
-
 inline SelfFilterComponent::InputPorts SelfFilterComponent::inputPorts() const noexcept
 {
     return InputPorts {this->libObjPtr()};
@@ -749,31 +685,18 @@ SelfSinkComponent::InputPorts::Port SelfSinkComponent::_addInputPort(const char
 }
 
 template <typename DataT>
-SelfSinkComponent::InputPorts::Port SelfSinkComponent::addInputPort(const char * const name,
+SelfSinkComponent::InputPorts::Port SelfSinkComponent::addInputPort(const bt2c::CStringView name,
                                                                     DataT& data) const
 {
     return this->_addInputPort(name, &data);
 }
 
 inline SelfSinkComponent::InputPorts::Port
-SelfSinkComponent::addInputPort(const char * const name) const
+SelfSinkComponent::addInputPort(const bt2c::CStringView name) const
 {
     return this->_addInputPort<void>(name, nullptr);
 }
 
-template <typename DataT>
-SelfSinkComponent::InputPorts::Port SelfSinkComponent::addInputPort(const std::string& name,
-                                                                    DataT& data) const
-{
-    return this->_addInputPort(name.data(), &data);
-}
-
-inline SelfSinkComponent::InputPorts::Port
-SelfSinkComponent::addInputPort(const std::string& name) const
-{
-    return this->_addInputPort<void>(name.data(), nullptr);
-}
-
 inline SelfSinkComponent::InputPorts SelfSinkComponent::inputPorts() const noexcept
 {
     return InputPorts {this->libObjPtr()};
index 74ad36790ae93ce05741c62d71262b1260f2729b..7171138d340ca309ab900c53198dbc954f6a604b 100644 (file)
@@ -445,7 +445,7 @@ public:
         return bt_stream_get_id(this->libObjPtr());
     }
 
-    void name(const char * const name) const
+    void name(const bt2c::CStringView name) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstStream`.");
 
@@ -456,11 +456,6 @@ public:
         }
     }
 
-    void name(const std::string& name) const
-    {
-        this->name(name.data());
-    }
-
     bt2c::CStringView name() const noexcept
     {
         return bt_stream_get_name(this->libObjPtr());
@@ -637,7 +632,7 @@ public:
 
     Class cls() const noexcept;
 
-    void name(const char * const name) const
+    void name(const bt2c::CStringView name) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstTrace`.");
 
@@ -648,11 +643,6 @@ public:
         }
     }
 
-    void name(const std::string& name) const
-    {
-        this->name(name.data());
-    }
-
     bt2c::CStringView name() const noexcept
     {
         return bt_trace_get_name(this->libObjPtr());
@@ -689,7 +679,7 @@ public:
         return _Spec::streamById(this->libObjPtr(), id);
     }
 
-    void environmentEntry(const char * const name, const std::int64_t val) const
+    void environmentEntry(const bt2c::CStringView name, const std::int64_t val) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstTrace`.");
 
@@ -700,12 +690,7 @@ public:
         }
     }
 
-    void environmentEntry(const std::string& name, const std::int64_t val) const
-    {
-        this->environmentEntry(name.data(), val);
-    }
-
-    void environmentEntry(const char * const name, const char * const val) const
+    void environmentEntry(const bt2c::CStringView name, const bt2c::CStringView val) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstTrace`.");
 
@@ -716,21 +701,6 @@ public:
         }
     }
 
-    void environmentEntry(const std::string& name, const char * const val) const
-    {
-        this->environmentEntry(name.data(), val);
-    }
-
-    void environmentEntry(const char * const name, const std::string& val) const
-    {
-        this->environmentEntry(name, val.data());
-    }
-
-    void environmentEntry(const std::string& name, const std::string& val) const
-    {
-        this->environmentEntry(name.data(), val.data());
-    }
-
     std::uint64_t environmentSize() const noexcept
     {
         return bt_trace_get_environment_entry_count(this->libObjPtr());
@@ -746,16 +716,11 @@ public:
         return ConstEnvironmentEntry {name, ConstValue {libObjPtr}};
     }
 
-    OptionalBorrowedObject<ConstValue> environmentEntry(const char * const name) const noexcept
+    OptionalBorrowedObject<ConstValue> environmentEntry(const bt2c::CStringView name) const noexcept
     {
         return bt_trace_borrow_environment_entry_value_by_name_const(this->libObjPtr(), name);
     }
 
-    OptionalBorrowedObject<ConstValue> environmentEntry(const std::string& name) const noexcept
-    {
-        return this->environmentEntry(name.data());
-    }
-
     template <typename LibValT>
     void userAttributes(const CommonMapValue<LibValT> userAttrs) const noexcept
     {
@@ -942,7 +907,7 @@ public:
         return bt_event_class_get_id(this->libObjPtr());
     }
 
-    void name(const char * const name) const
+    void name(const bt2c::CStringView name) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstEventClass`.");
 
@@ -953,11 +918,6 @@ public:
         }
     }
 
-    void name(const std::string& name) const
-    {
-        this->name(name.data());
-    }
-
     bt2c::CStringView name() const noexcept
     {
         return bt_event_class_get_name(this->libObjPtr());
@@ -982,7 +942,7 @@ public:
         return bt2s::nullopt;
     }
 
-    void emfUri(const char * const emfUri) const
+    void emfUri(const bt2c::CStringView emfUri) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstEventClass`.");
 
@@ -993,11 +953,6 @@ public:
         }
     }
 
-    void emfUri(const std::string& emfUri) const
-    {
-        this->emfUri(emfUri.data());
-    }
-
     bt2c::CStringView emfUri() const noexcept
     {
         return bt_event_class_get_emf_uri(this->libObjPtr());
@@ -1285,7 +1240,7 @@ public:
         return bt_stream_class_get_id(this->libObjPtr());
     }
 
-    void name(const char * const name) const
+    void name(const bt2c::CStringView name) const
     {
         static_assert(!std::is_const<LibObjT>::value,
                       "Not available with `bt2::ConstStreamClass`.");
@@ -1297,11 +1252,6 @@ public:
         }
     }
 
-    void name(const std::string& name) const
-    {
-        this->name(name.data());
-    }
-
     bt2c::CStringView name() const noexcept
     {
         return bt_stream_class_get_name(this->libObjPtr());
index 81c033673f8b70d72c056e7dc5c0c4ed2094d54e..6c3c58ca5a4bd9f0f5d0b03caa261aef71133683 100644 (file)
@@ -95,12 +95,11 @@ public:
     CommonValueRawValueProxy& operator=(std::uint64_t rawVal) noexcept;
     CommonValueRawValueProxy& operator=(double rawVal) noexcept;
     CommonValueRawValueProxy& operator=(const char *rawVal);
-    CommonValueRawValueProxy& operator=(const std::string& rawVal);
+    CommonValueRawValueProxy& operator=(bt2c::CStringView rawVal);
     operator bool() const noexcept;
     operator std::int64_t() const noexcept;
     operator std::uint64_t() const noexcept;
     operator double() const noexcept;
-    operator const char *() const noexcept;
     operator bt2c::CStringView() const noexcept;
 
 private:
@@ -260,10 +259,8 @@ public:
         this->asMap().insert(std::forward<KeyT>(key), std::forward<ValT>(val));
     }
 
-    CommonArrayValue<bt_value> insertEmptyArray(const char *key) const;
-    CommonArrayValue<bt_value> insertEmptyArray(const std::string& key) const;
-    CommonMapValue<bt_value> insertEmptyMap(const char *key) const;
-    CommonMapValue<bt_value> insertEmptyMap(const std::string& key) const;
+    CommonArrayValue<bt_value> insertEmptyArray(bt2c::CStringView key) const;
+    CommonMapValue<bt_value> insertEmptyMap(bt2c::CStringView key) const;
 
     Shared shared() const noexcept
     {
@@ -337,7 +334,7 @@ CommonValueRawValueProxy<ValueObjT>::operator=(const char * const rawVal)
 
 template <typename ValueObjT>
 CommonValueRawValueProxy<ValueObjT>&
-CommonValueRawValueProxy<ValueObjT>::operator=(const std::string& rawVal)
+CommonValueRawValueProxy<ValueObjT>::operator=(const bt2c::CStringView rawVal)
 {
     _mObj.asString().value(rawVal);
     return *this;
@@ -367,12 +364,6 @@ CommonValueRawValueProxy<ValueObjT>::operator double() const noexcept
     return _mObj.asReal().value();
 }
 
-template <typename ValueObjT>
-CommonValueRawValueProxy<ValueObjT>::operator const char *() const noexcept
-{
-    return _mObj.asString().value();
-}
-
 template <typename ValueObjT>
 CommonValueRawValueProxy<ValueObjT>::operator bt2c::CStringView() const noexcept
 {
@@ -830,7 +821,7 @@ public:
         BT_ASSERT_DBG(this->isString());
     }
 
-    static Shared create(const char * const rawVal = "")
+    static Shared create(const bt2c::CStringView rawVal = "")
     {
         const auto libObjPtr = bt_value_string_create_init(rawVal);
 
@@ -838,11 +829,6 @@ public:
         return CommonStringValue::Shared::createWithoutRef(libObjPtr);
     }
 
-    static Shared create(const std::string& rawVal)
-    {
-        return CommonStringValue::create(rawVal.data());
-    }
-
     template <typename OtherLibObjT>
     CommonStringValue(const CommonStringValue<OtherLibObjT> val) noexcept : _ThisCommonValue {val}
     {
@@ -860,9 +846,9 @@ public:
         return CommonStringValue<const bt_value> {*this};
     }
 
-    RawStringValueProxy<CommonStringValue> operator*() const noexcept
+    RawValueProxy<CommonStringValue> operator*() const noexcept
     {
-        return RawStringValueProxy<CommonStringValue> {*this};
+        return RawValueProxy<CommonStringValue> {*this};
     }
 
     void value(const Value val) const
@@ -877,16 +863,6 @@ public:
         }
     }
 
-    void value(const char * const val) const
-    {
-        this->value(bt2c::CStringView {val});
-    }
-
-    void value(const std::string& val) const
-    {
-        this->value(bt2c::CStringView {val.data()});
-    }
-
     Value value() const noexcept
     {
         return bt_value_string_get(this->libObjPtr());
@@ -1068,7 +1044,7 @@ public:
         this->_handleAppendLibStatus(status);
     }
 
-    void append(const std::string& rawVal) const
+    void append(const bt2c::CStringView rawVal) const
     {
         this->append(rawVal.data());
     }
@@ -1106,7 +1082,7 @@ public:
         this->append(rawVal);
     }
 
-    void operator+=(const std::string& rawVal) const
+    void operator+=(const bt2c::CStringView rawVal) const
     {
         this->append(rawVal);
     }
@@ -1299,27 +1275,18 @@ public:
         return this->length() == 0;
     }
 
-    OptionalBorrowedObject<CommonValue<LibObjT>> operator[](const char * const key) const noexcept
+    OptionalBorrowedObject<CommonValue<LibObjT>>
+    operator[](const bt2c::CStringView key) const noexcept
     {
         return internal::CommonMapValueSpec<LibObjT>::entryByKey(this->libObjPtr(), key);
     }
 
-    OptionalBorrowedObject<CommonValue<LibObjT>> operator[](const std::string& key) const noexcept
-    {
-        return (*this)[key.data()];
-    }
-
-    bool hasEntry(const char * const key) const noexcept
+    bool hasEntry(const bt2c::CStringView key) const noexcept
     {
         return static_cast<bool>(bt_value_map_has_entry(this->libObjPtr(), key));
     }
 
-    bool hasEntry(const std::string& key) const noexcept
-    {
-        return this->hasEntry(key.data());
-    }
-
-    void insert(const char * const key, const Value val) const
+    void insert(const bt2c::CStringView key, const Value val) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1328,12 +1295,7 @@ public:
         this->_handleInsertLibStatus(status);
     }
 
-    void insert(const std::string& key, const Value val) const
-    {
-        this->insert(key.data(), val);
-    }
-
-    void insert(const char * const key, const bool rawVal) const
+    void insert(const bt2c::CStringView key, const bool rawVal) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1343,12 +1305,7 @@ public:
         this->_handleInsertLibStatus(status);
     }
 
-    void insert(const std::string& key, const bool rawVal) const
-    {
-        this->insert(key.data(), rawVal);
-    }
-
-    void insert(const char * const key, const std::uint64_t rawVal) const
+    void insert(const bt2c::CStringView key, const std::uint64_t rawVal) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1357,13 +1314,7 @@ public:
 
         this->_handleInsertLibStatus(status);
     }
-
-    void insert(const std::string& key, const std::uint64_t rawVal) const
-    {
-        this->insert(key.data(), rawVal);
-    }
-
-    void insert(const char * const key, const std::int64_t rawVal) const
+    void insert(const bt2c::CStringView key, const std::int64_t rawVal) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1373,12 +1324,7 @@ public:
         this->_handleInsertLibStatus(status);
     }
 
-    void insert(const std::string& key, const std::int64_t rawVal) const
-    {
-        this->insert(key.data(), rawVal);
-    }
-
-    void insert(const char * const key, const double rawVal) const
+    void insert(const bt2c::CStringView key, const double rawVal) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1387,12 +1333,7 @@ public:
         this->_handleInsertLibStatus(status);
     }
 
-    void insert(const std::string& key, const double rawVal) const
-    {
-        this->insert(key.data(), rawVal);
-    }
-
-    void insert(const char * const key, const char * const rawVal) const
+    void insert(const bt2c::CStringView key, const char *rawVal) const
     {
         static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1401,25 +1342,13 @@ public:
         this->_handleInsertLibStatus(status);
     }
 
-    void insert(const char * const key, const std::string& rawVal) const
+    void insert(const bt2c::CStringView key, const bt2c::CStringView rawVal) const
     {
-        this->insert(key, rawVal.data());
+        return this->insert(key, rawVal.data());
     }
 
-    void insert(const std::string& key, const char * const rawVal) const
-    {
-        this->insert(key.data(), rawVal);
-    }
-
-    void insert(const std::string& key, const std::string& rawVal) const
-    {
-        this->insert(key.data(), rawVal.data());
-    }
-
-    CommonArrayValue<bt_value> insertEmptyArray(const char *key) const;
-    CommonArrayValue<bt_value> insertEmptyArray(const std::string& key) const;
-    CommonMapValue<bt_value> insertEmptyMap(const char *key) const;
-    CommonMapValue<bt_value> insertEmptyMap(const std::string& key) const;
+    CommonArrayValue<bt_value> insertEmptyArray(bt2c::CStringView key) const;
+    CommonMapValue<bt_value> insertEmptyMap(bt2c::CStringView key) const;
 
     void forEach(const internal::CommonMapValueForEachUserFunc<CommonValue<LibObjT>>& func) const
     {
@@ -1476,25 +1405,13 @@ MapValue CommonValue<LibObjT>::appendEmptyMap() const
 }
 
 template <typename LibObjT>
-ArrayValue CommonValue<LibObjT>::insertEmptyArray(const char * const key) const
-{
-    return this->asMap().insertEmptyArray(key);
-}
-
-template <typename LibObjT>
-ArrayValue CommonValue<LibObjT>::insertEmptyArray(const std::string& key) const
+ArrayValue CommonValue<LibObjT>::insertEmptyArray(const bt2c::CStringView key) const
 {
     return this->asMap().insertEmptyArray(key);
 }
 
 template <typename LibObjT>
-MapValue CommonValue<LibObjT>::insertEmptyMap(const char * const key) const
-{
-    return this->asMap().insertEmptyMap(key);
-}
-
-template <typename LibObjT>
-MapValue CommonValue<LibObjT>::insertEmptyMap(const std::string& key) const
+MapValue CommonValue<LibObjT>::insertEmptyMap(const bt2c::CStringView key) const
 {
     return this->asMap().insertEmptyMap(key);
 }
@@ -1580,7 +1497,7 @@ MapValue CommonArrayValue<LibObjT>::appendEmptyMap() const
 }
 
 template <typename LibObjT>
-ArrayValue CommonMapValue<LibObjT>::insertEmptyArray(const char * const key) const
+ArrayValue CommonMapValue<LibObjT>::insertEmptyArray(const bt2c::CStringView key) const
 {
     static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1592,13 +1509,7 @@ ArrayValue CommonMapValue<LibObjT>::insertEmptyArray(const char * const key) con
 }
 
 template <typename LibObjT>
-ArrayValue CommonMapValue<LibObjT>::insertEmptyArray(const std::string& key) const
-{
-    return this->insertEmptyArray(key.data());
-}
-
-template <typename LibObjT>
-MapValue CommonMapValue<LibObjT>::insertEmptyMap(const char * const key) const
+MapValue CommonMapValue<LibObjT>::insertEmptyMap(const bt2c::CStringView key) const
 {
     static_assert(!std::is_const<LibObjT>::value, "Not available with `bt2::ConstMapValue`.");
 
@@ -1609,12 +1520,6 @@ MapValue CommonMapValue<LibObjT>::insertEmptyMap(const char * const key) const
     return MapValue {libEntryPtr};
 }
 
-template <typename LibObjT>
-MapValue CommonMapValue<LibObjT>::insertEmptyMap(const std::string& key) const
-{
-    return this->insertEmptyMap(key.data());
-}
-
 inline BoolValue::Shared createValue(const bool rawVal)
 {
     return BoolValue::create(rawVal);
@@ -1640,7 +1545,7 @@ inline StringValue::Shared createValue(const char * const rawVal)
     return StringValue::create(rawVal);
 }
 
-inline StringValue::Shared createValue(const std::string& rawVal)
+inline StringValue::Shared createValue(const bt2c::CStringView rawVal)
 {
     return StringValue::create(rawVal);
 }
This page took 0.042647 seconds and 4 git commands to generate.