From a406a3c00b2717e9d2957c5b277f24aa8ab6956d Mon Sep 17 00:00:00 2001 From: curt Date: Thu, 28 Jun 2001 21:53:01 +0000 Subject: [PATCH] - added implementation of SGCommandState - removed commented-out convenience execute methods --- simgear/misc/commands.cxx | 169 ++++++++++++++++++++++---------------- 1 file changed, 100 insertions(+), 69 deletions(-) diff --git a/simgear/misc/commands.cxx b/simgear/misc/commands.cxx index 7818b68d..2280b664 100644 --- a/simgear/misc/commands.cxx +++ b/simgear/misc/commands.cxx @@ -7,6 +7,36 @@ #include "commands.hxx" + +//////////////////////////////////////////////////////////////////////// +// Implementation of SGCommandState class. +//////////////////////////////////////////////////////////////////////// + +SGCommandState::SGCommandState () + : _args(0) +{ +} + +SGCommandState::SGCommandState (const SGPropertyNode * args) + : _args(0) +{ + setArgs(args); +} + +SGCommandState::~SGCommandState () +{ + delete _args; +} + +void +SGCommandState::setArgs (const SGPropertyNode * args) +{ + delete _args; + _args = new SGPropertyNode(); + copyProperties(args, _args); +} + + //////////////////////////////////////////////////////////////////////// // Implementation of SGCommandMgr class. @@ -50,83 +80,84 @@ SGCommandMgr::getCommandNames () const } bool -SGCommandMgr::execute (const string &name, const SGPropertyNode * arg) const +SGCommandMgr::execute (const string &name, const SGPropertyNode * arg, + SGCommandState ** state) const { command_t command = getCommand(name); if (command == 0) return false; else - return (*command)(arg); + return (*command)(arg, state); } -bool -SGCommandMgr::execute (const string &name) const -{ - // FIXME - SGPropertyNode node; - return execute(name, &node); -} - - -bool -SGCommandMgr::execute (const string &name, bool value) const -{ - // FIXME - SGPropertyNode node; - node.setBoolValue(value); - return execute(name, &node); -} - - -bool -SGCommandMgr::execute (const string &name, int value) const -{ - // FIXME - SGPropertyNode node; - node.setIntValue(value); - return execute(name, &node); -} - - -bool -SGCommandMgr::execute (const string &name, long value) const -{ - // FIXME - SGPropertyNode node; - node.setLongValue(value); - return execute(name, &node); -} - - -bool -SGCommandMgr::execute (const string &name, float value) const -{ - // FIXME - SGPropertyNode node; - node.setFloatValue(value); - return execute(name, &node); -} - - -bool -SGCommandMgr::execute (const string &name, double value) const -{ - // FIXME - SGPropertyNode node; - node.setDoubleValue(value); - return execute(name, &node); -} - - -bool -SGCommandMgr::execute (const string &name, string value) const -{ - // FIXME - SGPropertyNode node; - node.setStringValue(value); - return execute(name, &node); -} +// bool +// SGCommandMgr::execute (const string &name) const +// { +// // FIXME +// SGPropertyNode node; +// return execute(name, &node); +// } + + +// bool +// SGCommandMgr::execute (const string &name, bool value) const +// { +// // FIXME +// SGPropertyNode node; +// node.setBoolValue(value); +// return execute(name, &node); +// } + + +// bool +// SGCommandMgr::execute (const string &name, int value) const +// { +// // FIXME +// SGPropertyNode node; +// node.setIntValue(value); +// return execute(name, &node); +// } + + +// bool +// SGCommandMgr::execute (const string &name, long value) const +// { +// // FIXME +// SGPropertyNode node; +// node.setLongValue(value); +// return execute(name, &node); +// } + + +// bool +// SGCommandMgr::execute (const string &name, float value) const +// { +// // FIXME +// SGPropertyNode node; +// node.setFloatValue(value); +// return execute(name, &node); +// } + + +// bool +// SGCommandMgr::execute (const string &name, double value) const +// { +// // FIXME +// SGPropertyNode node; +// node.setDoubleValue(value); +// return execute(name, &node); +// } + + +// bool +// SGCommandMgr::execute (const string &name, string value) const +// { +// // FIXME +// SGPropertyNode node; +// node.setStringValue(value); +// return execute(name, &node); +// } // end of commands.cxx -- 2.39.5