他のアプリケーションからメッセージを受信するアプリケーションがあります。これらのメッセージは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;
};
}
アライメントとキャリブレーションは、2つの内部メッセージ構造です。
私がしようとしているのは、XML文字列を受け取ってそれをデコードし、上記の構造体のいずれかを返す「メッセージインタープリタ」を構築することです。したがって、<messageType>
が 'アライメント'の場合、メッセージインタープリタはアラインメント構造体を構築し、それを返します。
最終的には、<messageType>
から読み込んだものに基づいて、任意の構造体を返すテンプレート関数を作成しようとしています。
私の目的は明確ですか?私のアプローチは正しいものですか?
明確にすべきか、別のアプローチをとるべきかを教えてください。