summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e025278)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I1d3f307b173fe5fd8796cdaa89a8405217e251db
* C++.
*/
static_assert(__cplusplus == 201103L, "");
* C++.
*/
static_assert(__cplusplus == 201103L, "");
-template <typename T>
-constexpr T max_constexpr(T l, T r)
+template <typename NumericalType>
+constexpr NumericalType max_constexpr(NumericalType l, NumericalType r)
{
return l > r ? l : r;
}
{
return l > r ? l : r;
}
namespace lst = lttng::sessiond::trace;
namespace {
namespace lst = lttng::sessiond::trace;
namespace {
-template <class FieldTypeSet>
-bool fields_are_equal(const FieldTypeSet& a, const FieldTypeSet& b)
+template <class FieldTypeContainerType>
+bool fields_are_equal(const FieldTypeContainerType& a, const FieldTypeContainerType& b)
{
if (a.size() != b.size()) {
return false;
{
if (a.size() != b.size()) {
return false;
return std::equal(a.cbegin(),
a.cend(),
b.cbegin(),
return std::equal(a.cbegin(),
a.cend(),
b.cbegin(),
- [](typename FieldTypeSet::const_reference field_a,
- typename FieldTypeSet::const_reference field_b) {
+ [](typename FieldTypeContainerType::const_reference field_a,
+ typename FieldTypeContainerType::const_reference field_b) {
return *field_a == *field_b;
});
}
return *field_a == *field_b;
});
}
namespace fmt {
template <>
struct formatter<lttng::sessiond::trace::field_location> : formatter<std::string> {
namespace fmt {
template <>
struct formatter<lttng::sessiond::trace::field_location> : formatter<std::string> {
- template <typename FormatCtx>
- typename FormatCtx::iterator format(
- const lttng::sessiond::trace::field_location& location, FormatCtx& ctx)
+ template <typename FormatContextType>
+ typename FormatContextType::iterator format(
+ const lttng::sessiond::trace::field_location& location, FormatContextType& ctx)
{
std::string location_str{"["};
{
std::string location_str{"["};
template <>
struct formatter<typename lttng::sessiond::trace::signed_enumeration_type::mapping::range_t>
: formatter<std::string> {
template <>
struct formatter<typename lttng::sessiond::trace::signed_enumeration_type::mapping::range_t>
: formatter<std::string> {
- template <typename FormatCtx>
- typename FormatCtx::iterator
+ template <typename FormatContextType>
+ typename FormatContextType::iterator
format(typename lttng::sessiond::trace::signed_enumeration_type::mapping::range_t range,
format(typename lttng::sessiond::trace::signed_enumeration_type::mapping::range_t range,
+ FormatContextType& ctx)
{
return format_to(ctx.out(),
details::format_mapping_range<
{
return format_to(ctx.out(),
details::format_mapping_range<
template <>
struct formatter<typename lttng::sessiond::trace::unsigned_enumeration_type::mapping::range_t>
: formatter<std::string> {
template <>
struct formatter<typename lttng::sessiond::trace::unsigned_enumeration_type::mapping::range_t>
: formatter<std::string> {
- template <typename FormatCtx>
- typename FormatCtx::iterator
+ template <typename FormatContextType>
+ typename FormatContextType::iterator
format(typename lttng::sessiond::trace::unsigned_enumeration_type::mapping::range_t range,
format(typename lttng::sessiond::trace::unsigned_enumeration_type::mapping::range_t range,
+ FormatContextType& ctx)
{
return format_to(ctx.out(),
details::format_mapping_range<
{
return format_to(ctx.out(),
details::format_mapping_range<
namespace fmt {
template <>
struct formatter<ust_app> : formatter<std::string> {
namespace fmt {
template <>
struct formatter<ust_app> : formatter<std::string> {
- template <typename FormatCtx>
- typename FormatCtx::iterator format(const ust_app& app, FormatCtx& ctx)
+ template <typename FormatContextType>
+ typename FormatContextType::iterator format(const ust_app& app, FormatContextType& ctx)
{
return format_to(ctx.out(),
"{{ procname = `{}`, ppid = {}, pid = {}, uid = {}, gid = {}, version = {}.{}, registration time = {} }}",
{
return format_to(ctx.out(),
"{{ procname = `{}`, ppid = {}, pid = {}, uid = {}, gid = {}, version = {}.{}, registration time = {} }}",
namespace fmt {
template <>
struct formatter<lttng::sessiond::ust::registry_event> : formatter<std::string> {
namespace fmt {
template <>
struct formatter<lttng::sessiond::ust::registry_event> : formatter<std::string> {
- template <typename FormatCtx>
- typename FormatCtx::iterator format(
- const lttng::sessiond::ust::registry_event& event, FormatCtx& ctx)
+ template <typename FormatContextType>
+ typename FormatContextType::iterator format(
+ const lttng::sessiond::ust::registry_event& event, FormatContextType& ctx)
{
return format_to(ctx.out(),
"{{ name = `{}`, signature = `{}`, id = {}, session objd = {}, channel objd = {} }}",
{
return format_to(ctx.out(),
"{{ name = `{}`, signature = `{}`, id = {}, session objd = {}, channel objd = {} }}",
namespace fmt {
template <>
struct formatter<std::type_info> : formatter<std::string> {
namespace fmt {
template <>
struct formatter<std::type_info> : formatter<std::string> {
- template <typename FormatCtx>
- typename FormatCtx::iterator format(const std::type_info& type_info, FormatCtx& ctx)
+ template <typename FormatContextType>
+ typename FormatContextType::iterator format(const std::type_info& type_info,
+ FormatContextType& ctx)
{
int status;
auto demangled_name =
{
int status;
auto demangled_name =
return calloc(1, size);
}
return calloc(1, size);
}
-template <typename T>
-struct can_malloc
-{
+template <typename MallocableType>
+struct can_malloc {
/*
* gcc versions before 5.0 lack some type traits defined in C++11.
* Since in this instance we use the trait to prevent misuses
/*
* gcc versions before 5.0 lack some type traits defined in C++11.
* Since in this instance we use the trait to prevent misuses
#if __GNUG__ && __GNUC__ < 5
static constexpr bool value = true;
#else
#if __GNUG__ && __GNUC__ < 5
static constexpr bool value = true;
#else
- static constexpr bool value = std::is_trivially_constructible<T>::value;
+ static constexpr bool value = std::is_trivially_constructible<MallocableType>::value;
- * Malloc and zero-initialize an object of type T, asserting that T can be
+ * Malloc and zero-initialize an object of type T, asserting that MallocableType can be
* safely malloc-ed (is trivially constructible).
*/
* safely malloc-ed (is trivially constructible).
*/
-template<typename T>
-T *zmalloc()
+template <typename MallocableType>
+MallocableType *zmalloc()
- static_assert (can_malloc<T>::value, "type can be malloc'ed");
- return (T *) zmalloc_internal(sizeof(T)); /* NOLINT sizeof potentially used on a pointer. */
+ static_assert(can_malloc<MallocableType>::value, "type can be malloc'ed");
+ return (MallocableType *) zmalloc_internal(sizeof(MallocableType)); /* NOLINT sizeof
+ potentially used on a
+ pointer. */
- * Malloc and zero-initialize a buffer of size `size`, asserting that type T
+ * Malloc and zero-initialize a buffer of size `size`, asserting that type AllocatedType
* can be safely malloc-ed (is trivially constructible).
*/
* can be safely malloc-ed (is trivially constructible).
*/
-template<typename T>
-T *zmalloc(size_t size)
+template <typename AllocatedType>
+AllocatedType *zmalloc(size_t size)
- static_assert (can_malloc<T>::value, "type can be malloc'ed");
- LTTNG_ASSERT(size >= sizeof(T));
- return (T *) zmalloc_internal(size);
+ static_assert(can_malloc<AllocatedType>::value, "type can be malloc'ed");
+ LTTNG_ASSERT(size >= sizeof(AllocatedType));
+ return (AllocatedType *) zmalloc_internal(size);
- * Malloc and zero-initialize an array of `nmemb` elements of type T,
- * asserting that T can be safely malloc-ed (is trivially constructible).
+ * Malloc and zero-initialize an array of `nmemb` elements of type AllocatedType,
+ * asserting that AllocatedType can be safely malloc-ed (is trivially constructible).
-template<typename T>
-T *calloc(size_t nmemb)
+template <typename AllocatedType>
+AllocatedType *calloc(size_t nmemb)
- static_assert (can_malloc<T>::value, "type can be malloc'ed");
- return (T *) zmalloc_internal(nmemb * sizeof(T)); /* NOLINT sizeof potentially used on a pointer. */
+ static_assert(can_malloc<AllocatedType>::value, "type can be malloc'ed");
+ return (AllocatedType *) zmalloc_internal(nmemb * sizeof(AllocatedType)); /* NOLINT sizeof
+ potentially
+ used on a
+ pointer. */
- * Malloc an object of type T, asserting that T can be safely malloc-ed (is
+ * Malloc an object of type AllocatedType, asserting that AllocatedType can be safely malloc-ed (is
* trivially constructible).
*/
* trivially constructible).
*/
-template<typename T>
-T *malloc()
+template <typename AllocatedType>
+AllocatedType *malloc()
- static_assert (can_malloc<T>::value, "type can be malloc'ed");
- return (T *) malloc(sizeof(T));
+ static_assert(can_malloc<AllocatedType>::value, "type can be malloc'ed");
+ return (AllocatedType *) malloc(sizeof(AllocatedType));
- * Malloc a buffer of size `size`, asserting that type T can be safely
+ * Malloc a buffer of size `size`, asserting that AllocatedType can be safely
* malloc-ed (is trivially constructible).
*/
* malloc-ed (is trivially constructible).
*/
-template<typename T>
-T *malloc(size_t size)
+template<typename AllocatedType>
+AllocatedType *malloc(size_t size)
- static_assert (can_malloc<T>::value, "type can be malloc'ed");
- return (T *) malloc(size);
+ static_assert (can_malloc<AllocatedType>::value, "type can be malloc'ed");
+ return (AllocatedType *) malloc(size);
* pointers to void, these will not be checked.
*/
* pointers to void, these will not be checked.
*/
+template<typename FreedType>
#if __GNUG__ && __GNUC__ < 5
static constexpr bool value = true;
#else
#if __GNUG__ && __GNUC__ < 5
static constexpr bool value = true;
#else
- static constexpr bool value = std::is_trivially_destructible<T>::value || std::is_void<T>::value;
+ static constexpr bool value = std::is_trivially_destructible<FreedType>::value ||
+ std::is_void<FreedType>::value;
-template<typename T, typename = typename std::enable_if<!can_free<T>::value>::type>
-void free(T *p) = delete;
+template <typename FreedType, typename = typename std::enable_if<!can_free<FreedType>::value>::type>
+void free(FreedType *p) = delete;
-template<typename T>
-struct can_memset
-{
- static constexpr bool value = std::is_pod<T>::value || std::is_void<T>::value;
+template <typename InitializedType>
+struct can_memset {
+ static constexpr bool value = std::is_pod<InitializedType>::value ||
+ std::is_void<InitializedType>::value;
-template <typename T, typename = typename std::enable_if<!can_memset<T>::value>::type>
-void *memset(T *s, int c, size_t n) = delete;
+template <typename InitializedType,
+ typename = typename std::enable_if<!can_memset<InitializedType>::value>::type>
+void *memset(InitializedType *s, int c, size_t n) = delete;
template<typename T>
struct can_memcpy
template<typename T>
struct can_memcpy
-template <typename T, typename U,
- typename = typename std::enable_if<!can_memcpy<T>::value>::type,
- typename = typename std::enable_if<!can_memcpy<U>::value>::type>
-void *memcpy(T *d, const U *s, size_t n) = delete;
+template <typename DestinationType,
+ typename SourceType,
+ typename = typename std::enable_if<!can_memcpy<DestinationType>::value>::type,
+ typename = typename std::enable_if<!can_memcpy<SourceType>::value>::type>
+void *memcpy(DestinationType *d, const SourceType *s, size_t n) = delete;
-template<typename T>
-struct can_memmove
-{
+template <typename MovedType>
+struct can_memmove {
/*
* gcc versions before 5.0 lack some type traits defined in C++11.
* Since in this instance we use the trait to prevent misuses
/*
* gcc versions before 5.0 lack some type traits defined in C++11.
* Since in this instance we use the trait to prevent misuses
#if __GNUG__ && __GNUC__ < 5
static constexpr bool value = true;
#else
#if __GNUG__ && __GNUC__ < 5
static constexpr bool value = true;
#else
- static constexpr bool value = std::is_trivially_copyable<T>::value;
+ static constexpr bool value = std::is_trivially_copyable<MovedType>::value;
-template <typename T, typename U,
- typename = typename std::enable_if<!can_memmove<T>::value>::type,
- typename = typename std::enable_if<!can_memmove<U>::value>::type>
-void *memmove(T *d, const U *s, size_t n) = delete;
+template <typename DestinationType,
+ typename SourceType,
+ typename = typename std::enable_if<!can_memmove<DestinationType>::value>::type,
+ typename = typename std::enable_if<!can_memmove<SourceType>::value>::type>
+void *memmove(DestinationType *d, const SourceType *s, size_t n) = delete;
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(array) (sizeof(array) / (sizeof((array)[0])))
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(array) (sizeof(array) / (sizeof((array)[0])))
namespace lttng {
namespace utils {
namespace lttng {
namespace utils {
-template <class Parent, class Member>
-Parent *container_of(const Member *member, const Member Parent::*ptr_to_member)
+template <class ParentType, class MemberType>
+ParentType *container_of(const MemberType *member, const MemberType ParentType::*ptr_to_member)
- const Parent *dummy_parent = nullptr;
+ const ParentType *dummy_parent = nullptr;
auto *offset_of_member = reinterpret_cast<const char *>(&(dummy_parent->*ptr_to_member));
auto address_of_parent = reinterpret_cast<const char *>(member) - offset_of_member;
auto *offset_of_member = reinterpret_cast<const char *>(&(dummy_parent->*ptr_to_member));
auto address_of_parent = reinterpret_cast<const char *>(member) - offset_of_member;
- return reinterpret_cast<Parent *>(address_of_parent);
+ return reinterpret_cast<ParentType *>(address_of_parent);
}
} /* namespace utils */
} /* namespace lttng */
}
} /* namespace utils */
} /* namespace lttng */