WSF
WsfCommMediumMessageStatus.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2019 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFCOMMMEDIUMMESSAGESTATUS_HPP
13#define WSFCOMMMEDIUMMESSAGESTATUS_HPP
14
15#include "wsf_export.h"
16
17#include "UtScriptAccessible.hpp"
18#include "UtScriptClassDefine.hpp"
19#include "WsfAuxDataEnabled.hpp"
20#include "WsfCommLayer.hpp"
21#include "WsfCommMessage.hpp"
23
24namespace wsf
25{
26namespace comm
27{
28namespace medium
29{
30
34class WSF_EXPORT MessageStatus : public UtScriptAccessible, public WsfAuxDataEnabled
35{
36public:
37 MessageStatus(double aSimTime, Message& aMessage, size_t aMode)
38 : mMessage(aMessage)
39 , mMode(aMode)
40 , mTimeStart(aSimTime)
41 , mTimeTransmissionEnd(aSimTime)
42 {
43 }
44
45 ~MessageStatus() override = default;
46 MessageStatus(const MessageStatus& aSrc) = default;
47
48 const char* GetScriptClassName() const override { return "WsfCommMediumMessageStatus"; }
49
50 void SetMessage(const Message& aMessage) { mMessage = aMessage; }
51 void SetMode(size_t aMode) { mMode = aMode; }
52 void SetLayer(Layer* aLayerPtr) { mLayerPtr = aLayerPtr; }
53 void SetIsTransmitting(bool aIsTransmitting) { mTransmitting = aIsTransmitting; }
54 void SetIsScheduledDelivery(bool aIsScheduledDelivery) { mScheduledDelivery = aIsScheduledDelivery; }
55 void SetTimeStart(double aSimTime) { mTimeStart = aSimTime; }
56 void SetTimeTransmissionEnd(double aSimTime) { mTimeTransmissionEnd = aSimTime; }
57 void SetTimeDelivery(double aSimTime) { mTimeDelivery = aSimTime; }
58 void SetAbortDelivery(bool aAbort) { mAbortDelivery = aAbort; }
59 void SetTimeLastXmtrStatusChange(double aSimTime) { mXmtrLastStatusChange = aSimTime; }
60 void SetStatusIssued(bool aIssued) { mStatusIssued = aIssued; }
61
62 const Message& GetMessage() const { return mMessage; }
63 Message& GetMessage() { return mMessage; }
64 size_t GetMode() const { return mMode; }
65 Layer* GetLayer() const { return mLayerPtr; }
66 bool IsTransmitting() const { return mTransmitting; }
67 bool IsScheduledDelivery() const { return mScheduledDelivery; }
68 double GetTimeStart() const { return mTimeStart; }
69 double GetTimeTransmissionEnd() const { return mTimeTransmissionEnd; }
70 double GetTimeDelivery() const { return mTimeDelivery; }
71 bool AbortDelivery() const { return mAbortDelivery; }
72 double GetTimeLastXmtrStatusChange() const { return mXmtrLastStatusChange; }
73 bool IsStatusIssued() const { return mStatusIssued; }
74
75private:
77 Message mMessage;
78
80 size_t mMode;
81
84 Layer* mLayerPtr{nullptr};
85
89 bool mTransmitting{true};
90
94 bool mScheduledDelivery{false};
95
97 double mTimeStart;
98
102 double mTimeTransmissionEnd;
103
106 double mTimeDelivery{0.0};
107
112 bool mAbortDelivery{false};
113
118 double mXmtrLastStatusChange{0.0};
119
127 bool mStatusIssued{false};
128};
129
130class WSF_EXPORT ScriptMediumMessageStatusClass : public UtScriptClass
131{
132public:
133 ScriptMediumMessageStatusClass(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
134
136
140 UT_DECLARE_SCRIPT_METHOD(GetTimeTransmissionEnd);
141 UT_DECLARE_SCRIPT_METHOD(GetTimeDelivery);
142 UT_DECLARE_SCRIPT_METHOD(GetDeliveryFailure);
143
144 UT_DECLARE_SCRIPT_METHOD(SetDeliveryFailure);
145
147};
148
149} // namespace medium
150} // namespace comm
151} // namespace wsf
152
153#endif
#define UT_DECLARE_AUX_DATA_SCRIPT_METHODS()
Definition WsfScriptAuxDataUtil.hpp:194
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfAuxDataEnabled()=default
Definition WsfCommLayer.hpp:40
Definition WsfCommMessage.hpp:51
void SetTimeDelivery(double aSimTime)
Definition WsfCommMediumMessageStatus.hpp:57
void SetTimeStart(double aSimTime)
Definition WsfCommMediumMessageStatus.hpp:55
size_t GetMode() const
Definition WsfCommMediumMessageStatus.hpp:64
void SetTimeTransmissionEnd(double aSimTime)
Definition WsfCommMediumMessageStatus.hpp:56
double GetTimeTransmissionEnd() const
Definition WsfCommMediumMessageStatus.hpp:69
double GetTimeLastXmtrStatusChange() const
Definition WsfCommMediumMessageStatus.hpp:72
const char * GetScriptClassName() const override
Definition WsfCommMediumMessageStatus.hpp:48
bool IsStatusIssued() const
Definition WsfCommMediumMessageStatus.hpp:73
MessageStatus(const MessageStatus &aSrc)=default
bool AbortDelivery() const
Definition WsfCommMediumMessageStatus.hpp:71
double GetTimeDelivery() const
Definition WsfCommMediumMessageStatus.hpp:70
void SetIsTransmitting(bool aIsTransmitting)
Definition WsfCommMediumMessageStatus.hpp:53
Message & GetMessage()
Definition WsfCommMediumMessageStatus.hpp:63
void SetMode(size_t aMode)
Definition WsfCommMediumMessageStatus.hpp:51
const Message & GetMessage() const
Definition WsfCommMediumMessageStatus.hpp:62
double GetTimeStart() const
Definition WsfCommMediumMessageStatus.hpp:68
void SetAbortDelivery(bool aAbort)
Definition WsfCommMediumMessageStatus.hpp:58
void SetIsScheduledDelivery(bool aIsScheduledDelivery)
Definition WsfCommMediumMessageStatus.hpp:54
MessageStatus(double aSimTime, Message &aMessage, size_t aMode)
Definition WsfCommMediumMessageStatus.hpp:37
void SetTimeLastXmtrStatusChange(double aSimTime)
Definition WsfCommMediumMessageStatus.hpp:59
void SetLayer(Layer *aLayerPtr)
Definition WsfCommMediumMessageStatus.hpp:52
void SetMessage(const Message &aMessage)
Definition WsfCommMediumMessageStatus.hpp:50
void SetStatusIssued(bool aIssued)
Definition WsfCommMediumMessageStatus.hpp:60
bool IsScheduledDelivery() const
Definition WsfCommMediumMessageStatus.hpp:67
bool IsTransmitting() const
Definition WsfCommMediumMessageStatus.hpp:66
Layer * GetLayer() const
Definition WsfCommMediumMessageStatus.hpp:65
~MessageStatus() override=default
ScriptMediumMessageStatusClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfCommMediumMessageStatus.cpp:22
Definition WsfCommMedium.cpp:31
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved