#include "lib-error.hpp"
namespace bt2 {
-
namespace internal {
struct MessageRefFuncs final
namespace internal {
+struct MessageTypeDescr
+{
+ using Const = ConstMessage;
+ using NonConst = Message;
+};
+
+template <>
+struct TypeDescr<Message> : public MessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstMessage> : public MessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonStreamBeginningMessageSpec;
namespace internal {
+struct StreamBeginningMessageTypeDescr
+{
+ using Const = ConstStreamBeginningMessage;
+ using NonConst = StreamBeginningMessage;
+};
+
+template <>
+struct TypeDescr<StreamBeginningMessage> : public StreamBeginningMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstStreamBeginningMessage> : public StreamBeginningMessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonStreamEndMessageSpec;
namespace internal {
+struct StreamEndMessageTypeDescr
+{
+ using Const = ConstStreamEndMessage;
+ using NonConst = StreamEndMessage;
+};
+
+template <>
+struct TypeDescr<StreamEndMessage> : public StreamEndMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstStreamEndMessage> : public StreamEndMessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonPacketBeginningMessageSpec;
namespace internal {
+struct PacketBeginningMessageTypeDescr
+{
+ using Const = ConstPacketBeginningMessage;
+ using NonConst = PacketBeginningMessage;
+};
+
+template <>
+struct TypeDescr<PacketBeginningMessage> : public PacketBeginningMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstPacketBeginningMessage> : public PacketBeginningMessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonPacketEndMessageSpec;
namespace internal {
+struct PacketEndMessageTypeDescr
+{
+ using Const = ConstPacketEndMessage;
+ using NonConst = PacketEndMessage;
+};
+
+template <>
+struct TypeDescr<PacketEndMessage> : public PacketEndMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstPacketEndMessage> : public PacketEndMessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonEventMessageSpec;
namespace internal {
+struct EventMessageTypeDescr
+{
+ using Const = ConstEventMessage;
+ using NonConst = EventMessage;
+};
+
+template <>
+struct TypeDescr<EventMessage> : public EventMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstEventMessage> : public EventMessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonDiscardedEventsMessageSpec;
namespace internal {
+struct DiscardedEventsMessageTypeDescr
+{
+ using Const = ConstDiscardedEventsMessage;
+ using NonConst = DiscardedEventsMessage;
+};
+
+template <>
+struct TypeDescr<DiscardedEventsMessage> : public DiscardedEventsMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstDiscardedEventsMessage> : public DiscardedEventsMessageTypeDescr
+{
+};
+
template <typename LibObjT>
struct CommonDiscardedPacketsMessageSpec;
using DiscardedPacketsMessage = CommonDiscardedPacketsMessage<bt_message>;
using ConstDiscardedPacketsMessage = CommonDiscardedPacketsMessage<const bt_message>;
+namespace internal {
+
+struct DiscardedPacketsMessageTypeDescr
+{
+ using Const = ConstDiscardedPacketsMessage;
+ using NonConst = DiscardedPacketsMessage;
+};
+
+template <>
+struct TypeDescr<DiscardedPacketsMessage> : public DiscardedPacketsMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstDiscardedPacketsMessage> : public DiscardedPacketsMessageTypeDescr
+{
+};
+
+} /* namespace internal */
+
template <typename LibObjT>
class CommonMessageIteratorInactivityMessage final : public CommonMessage<LibObjT>
{
using ConstMessageIteratorInactivityMessage =
CommonMessageIteratorInactivityMessage<const bt_message>;
+namespace internal {
+
+struct MessageIteratorInactivityMessageTypeDescr
+{
+ using Const = ConstMessageIteratorInactivityMessage;
+ using NonConst = MessageIteratorInactivityMessage;
+};
+
+template <>
+struct TypeDescr<MessageIteratorInactivityMessage> :
+ public MessageIteratorInactivityMessageTypeDescr
+{
+};
+
+template <>
+struct TypeDescr<ConstMessageIteratorInactivityMessage> :
+ public MessageIteratorInactivityMessageTypeDescr
+{
+};
+
+} /* namespace internal */
+
template <typename LibObjT>
CommonStreamBeginningMessage<LibObjT> CommonMessage<LibObjT>::asStreamBeginning() const noexcept
{