WSF
MessagesFactory.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing 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#ifndef L16_MESSAGESFACTORY_HPP
12#define L16_MESSAGESFACTORY_HPP
13
14#include <map>
15#include <set>
16#include <string>
17#include <vector>
18
19class UtCallback;
20class UtScriptTypes;
21class WsfScenario;
22
23namespace WsfL16
24{
25namespace Messages
26{
27class Base;
28class ContinuationBase;
29class ExtensionBase;
30class InitialBase;
31class MessageBitInput;
32class MessageScriptClass;
33
36{
37public:
40
41 static void Initialize(UtScriptTypes* aScriptTypes);
42
43 static void ResetState();
44
46 static std::vector<InitialBase*> ReadMessage(const unsigned char* aData);
47
49 static std::vector<InitialBase*> ReadMessage(MessageBitInput& aInput, int aNumJ_Words = -1);
50
52 static InitialBase* CreateInitialWord(int aLabel, int aSublabel);
53
55 static InitialBase* CreateFullMessage(int aLabel, int aSublabel);
56
58 static ContinuationBase* CreateContinuationWord(InitialBase* aParent, int continuationLabel);
59
61 static ExtensionBase* CreateExtensionWord(InitialBase* aParent, int extensionWordIndex);
62
63 static MessageScriptClass* GetMessageScriptClass(int aLabel, int aSubLabel);
64
66 {
67 Messages::InitialBase* mMessagePtr;
69 std::string mClassName;
70 };
71
72 typedef std::map<int, MessageInfo> MessageMap;
73 static const MessageMap& GetMessages() { return mMessages; }
74
75protected:
76 static void InitializeAccessors();
77 static void LoadMessageAccessors(Messages::InitialBase* aMessage);
78 static void LoadWordAccessors(Messages::Base* aWord);
79 static InitialBase* NewMessage(int aLabel, int aSubLabel);
80
81 static void RegisterScriptClasses(UtScriptTypes& aTypes);
82
83
84 static void AddMessage(Messages::InitialBase* aMessage);
85
87
88 static std::set<int> mUnhandledJMessages;
89 // static UtCallback* mCallbackPtr;
90};
91} // namespace Messages
92} // namespace WsfL16
93
94#endif
The base class for J-Message ContinuationBase words.
Definition Messages.hpp:168
Definition Messages.hpp:183
static InitialBase * CreateInitialWord(int aLabel, int aSublabel)
Create a new JMessageI with the specified label and sub-label.
Definition MessagesFactory.cpp:282
std::map< int, MessageInfo > MessageMap
Definition MessagesFactory.hpp:72
static InitialBase * CreateFullMessage(int aLabel, int aSublabel)
Create a new Initial message with all implemented sub-words.
Definition MessagesFactory.cpp:288
static void Initialize(UtScriptTypes *aScriptTypes)
Definition MessagesFactory.cpp:31
static std::set< int > mUnhandledJMessages
Definition MessagesFactory.hpp:88
static std::vector< InitialBase * > ReadMessage(const unsigned char *aData)
Read a JMessage from a short *.
Definition MessagesFactory.cpp:137
static ExtensionBase * CreateExtensionWord(InitialBase *aParent, int extensionWordIndex)
Create a new extension word, and put it in the initial word aParent.
Definition MessagesFactory.cpp:310
static const MessageMap & GetMessages()
Definition MessagesFactory.hpp:73
static void ResetState()
Definition MessagesFactory.cpp:77
static ContinuationBase * CreateContinuationWord(InitialBase *aParent, int continuationLabel)
Create a new continuation word, and put it in the initial word aParent.
Definition MessagesFactory.cpp:305
static MessageMap mMessages
Definition MessagesFactory.hpp:86
static MessageScriptClass * GetMessageScriptClass(int aLabel, int aSubLabel)
Definition MessagesFactory.cpp:315
Definition Messages.hpp:85
Definition FieldTypes.hpp:42
Definition ScriptMessage.hpp:30
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition ComputerPart.hpp:45
This file should be included prior to defining a message. Currently there is a limit of 32 fields per...
Definition AllMessages.hpp:55
Definition MessagesFactory.hpp:66
std::string mClassName
Definition MessagesFactory.hpp:69
Messages::InitialBase * mMessagePtr
Definition MessagesFactory.hpp:67
MessageScriptClass * mScriptClass
Definition MessagesFactory.hpp:68
Copyrights Multiple, All Rights Reserved