/* * CONSTRUCTEURS */ /// <summary> /// Construit un objet de traitement des commandes /// </summary> /// public AeroCalcCommandProcessor() { // Construction du container de données de performances ModelsLib = new DataModelContainer(); // Construction de l'objet d'environnement EnvContext = new EnvironmentContext(); // Construction de la pile mémoire MemStack = new MemoryStack(); // Reglage intial du flag initialized initialized = false; }
/* * CONSTRUCTEURS */ /// <summary> /// Constructeur d'objet Commande /// </summary> /// <param name="inputText">string contenant la commande en mode texte, sans traitement préalable.</param> /// <param name="DMC">DataModelContainer, Conteneur de modèles de calculs</param> /// <param name="EC">EnvironmentContext, Objet contenant toutes les données de contexte</param> /// <param name="MS">MemoryStack, Pile de mémoire</param> public AeroCalcCommand(string inputText, DataModelContainer DMC, EnvironmentContext EC, MemoryStack MS) { // Initialisation des propriétés startOfProcess = new DateTime(DateTime.Now.Ticks, DateTimeKind.Utc); action = ACTION_INITIAL_VALUE; eventCode = ECODE_INITIAL_VALUE; numericResult = Double.NaN; subs = null; Factors = new List <CommandFactor>(); Container = DMC; EnvContext = EC; MemStack = MS; if (EnvContext.verbose) { verbosed = true; } if (string.IsNullOrEmpty(inputText)) { // Cas particulier de la chaine nulle rawTxtCommand = ""; action = ACTION_UNDETERMINED; eventCode = ECODE_ERR_CMD_VOID; } else { // La chaine de texte n'est pas vide, traitement de la commande rawTxtCommand = inputText; if (!execute()) { // Un problème majeur s'est produit dans le traitement de la commande eventCode = ECODE_ERR_PROCESSOR_FAILURE; verbosed = true; } else { // Commande traitée if (EC.verbose) { verbosed = true; } } } }