我有一個應用程序將從另一個應用程序接收消息。這些消息將是XML格式化的字符串,它們將包含一個<messageType>
標籤。消息類型將將此消息標識爲內部消息的一種類型。以下代碼顯示了我的內部消息結構。模板類C++/Qt
namespace
Application1{
enum ApplicationAttributes{
ApplicationName = 1000,
Start,
Stop,
Pause,
Save,
Discard,
SelectRunway,
DoAlignment,
RedoAlignment,
AlignmentOK,
DoCalibrationStage1,
SetCalibrationStage1,
SetCalibrationStage2,
SetCalibrationStage3,
CancelCalibration,
CalibrationOK
};
struct Alignment{
int x;
int y;
int error;
};
struct Calibration{
int x;
int y;
int error;
};
}
校準和校準是兩個內部消息結構。
我想要做的是構建一個'消息解釋器',它將接收一個XML字符串,解碼並返回上面顯示的任何一個結構;所以如果<messageType>
是「對齊」,則消息解釋器將構建對齊結構,並返回該對齊結構。
因此,最終,我試圖做一個模板函數,它可以返回一個任意的結構,基於我從<messageType>
中讀取的內容。
我的目標是否清晰?我的方法是正確的嗎?
讓我知道我是否應該澄清,或者如果我應該採取不同的方法。