pragma Ada_2012;
with RTIDDS.Low_Level.ndds_mig_mig_rtps_h;
with Interfaces.C;
package DDS.Ximages is
use Interfaces.C;
function Image (Item : DDS.SampleFlag) return Standard.String is (Item'Img);
function Image (Item : DDS.Boolean) return Standard.String is (Item'Img);
function Image (Item : DDS.Short) return Standard.String is (Item'Img);
function Image (Item : DDS.Unsigned_Short) return Standard.String is (Item'Img);
function Image (Item : DDS.Long) return Standard.String is (Item'Img);
function Image (Item : DDS.Long_Long) return Standard.String is (Item'Img);
function Image (Item : DDS.Unsigned_Long) return Standard.String is (Item'Img);
function Image (Item : DDS.Unsigned_Long_Long) return Standard.String is (Item'Img);
function Image (Item : DDS.Enum) return Standard.String is (Item'Img);
function Image (Item : DDS.Float) return Standard.String is (Item'Img);
function Image (Item : DDS.Double) return Standard.String is (Item'Img);
function Image (Item : DDS.String) return Standard.String is (To_Standard_String (Item));
function Image (Item : DDS.SampleLostStatusKind) return Standard.String is
(case Item is
when DDS.NOT_LOST => "NOT_LOST",
when DDS.LOST_BY_WRITER => "WRITER",
when DDS.LOST_BY_INSTANCES_LIMIT => "INSTANCES",
when DDS.LOST_BY_REMOTE_WRITERS_PER_INSTANCE_LIMIT => "REMOTE_WRITERS_PER_INSTANCE",
when DDS.LOST_BY_INCOMPLETE_COHERENT_SET => "INCOMPLETE_COHERENT_SET",
when DDS.LOST_BY_LARGE_COHERENT_SET => "LARGE_COHERENT_SET",
when DDS.LOST_BY_SAMPLES_PER_REMOTE_WRITER_LIMIT => "SAMPLES_PER_REMOTE_WRITER",
when DDS.LOST_BY_VIRTUAL_WRITERS_LIMIT => "VIRTUAL_WRITERS",
when DDS.LOST_BY_REMOTE_WRITERS_PER_SAMPLE_LIMIT => "REMOTE_WRITERS_PER_SAMPLE",
when DDS.LOST_BY_AVAILABILITY_WAITING_TIME => "AVAILABILITY_WAITING_TIME",
when DDS.LOST_BY_REMOTE_WRITER_SAMPLES_PER_VIRTUAL_QUEUE_LIMIT => "REMOTE_WRITER_SAMPLES_PER_VIRTUAL_QUEUE",
when others => "lost_by_unkown_reason");
function Image (Item : DDS.SampleLostStatus) return Standard.String is
("(Total_Count => " & Image (Item.Total_Count) &
"Total_Count_Change => " & Image (Item.Total_Count_Change) &
"Last_Reason =>" & Image (Item.Last_Reason) & ")");
type SampleInfoField is (Sample_State,
View_State,
Instance_State,
Source_Timestamp,
Instance_Handle,
Publication_Handle,
Disposed_Generation_Count,
No_Writers_Generation_Count,
Sample_Rank,
Generation_Rank,
Absolute_Generation_Rank,
Valid_Data,
Reception_Timestamp,
Publication_Sequence_Number,
Reception_Sequence_Number,
Publication_Virtual_Guid,
Publication_Virtual_Sequence_Number,
Original_Publication_Virtual_Guid,
Original_Publication_Virtual_Sequence_Number,
Related_Original_Publication_Virtual_Guid,
Related_Original_Publication_Virtual_Sequence_Number,
Flag,
Source_Guid,
Related_Source_Guid,
Related_Subscription_Guid,
Topic_Query_Guid,
Sample_Info_Hash,
Sample_Signature);
type SampleInfoFields is array (SampleInfoField) of Boolean;
function Image (Item : DDS.SampleStateKind) return Standard.String is
(case Item is
when DDS.READ_SAMPLE_STATE => "READ",
when DDS.NOT_READ_SAMPLE_STATE => "NOT_READ",
when DDS.ANY_SAMPLE_STATE => "ANY",
when others => "UNKOWMN");
function Image (Item : DDS.ViewStateKind) return Standard.String is
(case Item is
when DDS.NEW_VIEW_STATE => "NEW",
when DDS.NOT_NEW_VIEW_STATE => "NOT_NEW",
when DDS.ANY_VIEW_STATE => "ANY",
when others => "UNKOWMN_VIWE_STATE");
function Image (Item : DDS.InstanceStateKind) return Standard.String is
(case Item is
when DDS.ALIVE_INSTANCE_STATE => "ALIVE",
when DDS.NOT_ALIVE_DISPOSED_INSTANCE_STATE => "NOT_ALIVE_DISPOSED",
when DDS.NOT_ALIVE_NO_WRITERS_INSTANCE_STATE => "NOT_ALIVE_NO_WRITERS",
when DDS.NOT_ALIVE_INSTANCE_STATE => "NOT_ALIVE",
when DDS.ANY_INSTANCE_STATE => "ANY",
when others => "UNKOWMN");
function Image (Item : DDS.Time_T) return Standard.String is (Image (Item.Sec) & "." & Image (Item.Nanosec));
function Image (Item : DDS.SequenceNumber_T) return Standard.String is (Image (Item.High) & "." & Image (Item.Low));
function Image (Item : RTIDDS.Low_Level.ndds_mig_mig_rtps_h.MIGRtpsKeyHash) return Standard.String;
pragma Warnings (Off);
function Image (Item : RTIDDS.Low_Level.ndds_osapi_osapi_hash_h.RTIOsapiHash) return Standard.String is ("RTIOsapiHash<UNIMPLEMENTED>");
function Image (Item : RTIDDS.Low_Level.ndds_pres_pres_common_impl_h.PRESSampleSignature) return Standard.String is ("PRESSampleSignature<UNIMPLEMENTED>");
function Image (Item : DDS.InstanceHandle_T) return Standard.String is (if Item.isValid /= 0 then Image (Item.keyHash) else "<INVALID_HANDLE>");
function Image (Item : DDS.Guid_T) return Standard.String is ("Guid_T<UNIMPLEMENTED>");
pragma Warnings (on);
function Image (Item : DDS.SampleInfo; Fields : SampleInfoFields := (others => True)) return Standard.String is
((if Fields (Sample_State) then " Sample_State =>" & Image (Item.Sample_State) else "") &
(if Fields (View_State) then " View_State =>" & Image (Item.View_State) else "") &
(if Fields (Instance_State) then " Instance_State =>" & Image (Item.Instance_State) else "") &
(if Fields (Source_Timestamp) then " Source_Timestamp =>" & Image (Item.Source_Timestamp) else "") &
(if Fields (Instance_Handle) then " Instance_Handle =>" & Image (Item.Instance_Handle) else "") &
(if Fields (Publication_Handle) then " Publication_Handle =>" & Image (Item.Publication_Handle) else "") &
(if Fields (Disposed_Generation_Count) then " Disposed_Generation_Count =>" & Image (Item.Disposed_Generation_Count) else "") &
(if Fields (No_Writers_Generation_Count) then " No_Writers_Generation_Count =>" & Image (Item.No_Writers_Generation_Count) else "") &
(if Fields (Sample_Rank) then " Sample_Rank =>" & Image (Item.Sample_Rank) else "") &
(if Fields (Generation_Rank) then " Generation_Rank =>" & Image (Item.Generation_Rank) else "") &
(if Fields (Absolute_Generation_Rank) then " Absolute_Generation_Rank =>" & Image (Item.Absolute_Generation_Rank) else "") &
(if Fields (Valid_Data) then " Valid_Data =>" & Image (Item.Valid_Data) else "") &
(if Fields (Reception_Timestamp) then " Reception_Timestamp =>" & Image (Item.Reception_Timestamp) else "") &
(if Fields (Publication_Sequence_Number) then " Publication_Sequence_Number =>" & Image (Item.Publication_Sequence_Number) else "") &
(if Fields (Reception_Sequence_Number) then " Reception_Sequence_Number =>" & Image (Item.Reception_Sequence_Number) else "") &
(if Fields (Publication_Virtual_Guid) then (" Publication_Virtual_Guid =>" & Standard.String'(Image (Item.Publication_Virtual_Guid))) else "") &
(if Fields (Publication_Virtual_Sequence_Number) then " Publication_Virtual_Sequence_Number =>" & Image (Item.Publication_Virtual_Sequence_Number) else "") &
(if Fields (Original_Publication_Virtual_Guid) then " Original_Publication_Virtual_Guid =>" & Standard.String'(Image (Item.Original_Publication_Virtual_Guid)) else "") &
(if Fields (Original_Publication_Virtual_Sequence_Number) then " Original_Publication_Virtual_Sequence_Number =>" & Image (Item.Original_Publication_Virtual_Sequence_Number) else "") &
(if Fields (Related_Original_Publication_Virtual_Guid) then " Related_Original_Publication_Virtual_Guid =>" & Standard.String'(Image (Item.Related_Original_Publication_Virtual_Guid)) else "") &
(if Fields (Related_Original_Publication_Virtual_Sequence_Number) then " Related_Original_Publication_Virtual_Sequence_Number =>" & Image (Item.Related_Original_Publication_Virtual_Sequence_Number) else "") &
(if Fields (Flag) then " Flag =>" & Image (Item.Flag) else "") &
(if Fields (Source_Guid) then " Source_Guid =>" & Standard.String'(Image (Item.Source_Guid)) else "") &
(if Fields (Related_Source_Guid) then " Related_Source_Guid =>" & Standard.String'(Image (Item.Related_Source_Guid)) else "") &
(if Fields (Related_Subscription_Guid) then " Related_Subscription_Guid =>" & Standard.String'(Image (Item.Related_Subscription_Guid)) else "") &
(if Fields (Topic_Query_Guid) then " Topic_Query_Guid =>" & Standard.String'(Image (Item.Topic_Query_Guid)) else "") &
(if Fields (Sample_Info_Hash) then " Sample_Info_Hash =>" & Image (Item.Sample_Info_Hash) else "") &
(if Fields (Sample_Signature) then " Sample_Signature =>" & Standard.String'(Image (Item.Sample_Signature.all)) else ""));
end DDS.Ximages;