X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmisc%2Fcommands.hxx;h=55f193b48c6cbcd4415da46e9838ceb11e65b4ac;hb=5178f69f1847f91832a97f8b6989e826213d82b2;hp=288f82553e7443b34170d474b075c52ab19887ca;hpb=be4fd5666099c0e76183a55d43f72ed39c281484;p=simgear.git diff --git a/simgear/misc/commands.hxx b/simgear/misc/commands.hxx index 288f8255..55f193b4 100644 --- a/simgear/misc/commands.hxx +++ b/simgear/misc/commands.hxx @@ -24,58 +24,13 @@ SG_USING_STD(map); SG_USING_STD(vector); -/** - * Stored state for a command. - * - *
This class allows a command to cache parts of its state between - * invocations with the same parameters. Nearly every command that - * actually uses this will subclass it in some way. The command - * allocates the structure, but it is up to the caller to delete it - * when it is no longer necessary, unless the command deletes it - * and replaces the value with 0 or another command-state object - * first.
- * - *Note that this class is for caching only; all of the information - * in it must be recoverable by other means, since the state could - * arbitrarily disappear between invocations if the caller decides to - * delete it.
- * - *By default, the command state includes a place to keep a copy of - * the parameters.
- * - * @author David Megginson, david@megginson.com - */ -class SGCommandState -{ -public: - SGCommandState (); - SGCommandState (const SGPropertyNode * args); - virtual ~SGCommandState (); - virtual void setArgs (const SGPropertyNode * args); - virtual const SGPropertyNode * getArgs () const { return _args; } -private: - SGPropertyNode * _args; -}; - - /** * Manage commands. * *This class allows the application to register and unregister * commands, and provides shortcuts for executing them. Commands are - * simple functions that take a const pointer to an SGPropertyNode and - * a pointer to a pointer variable (which should be 0 initially) where - * the function can store compiled copies of its arguments, etc. to - * avoid expensive recalculations. If the command deletes the - * SGCommandState, it must replace it with a new pointer or 0; - * otherwise, the caller is free to delete and zero the pointer at any - * time and the command will start fresh with the next invocation. - * The command must return a bool value indicating success or failure. - * The property node may be ignored, or it may contain values that the - * command uses as parameters.
- * - *There are convenience methods for invoking a command function - * with no arguments or with a single, primitive argument.
+ * simple functions that take a const pointer to an SGPropertyNode: + * the function may use the nodes children as parameters. * * @author David Megginson, david@megginson.com */ @@ -86,8 +41,7 @@ public: /** * Type for a command function. */ - typedef bool (*command_t) (const SGPropertyNode * arg, - SGCommandState ** state); + typedef bool (*command_t) (const SGPropertyNode * arg); /** @@ -136,9 +90,6 @@ public: /** * Execute a command. * - * This is the primary method for invoking a command; the others - * are convenience methods that invoke this one indirectly. - * * @param name The name of the command. * @param arg A const pointer to an SGPropertyNode. The node * may have a value and/or children, etc., so that it is possible @@ -146,107 +97,7 @@ public: * @return true if the command is present and executes successfully, * false otherwise. */ - virtual bool execute (const string &name, - const SGPropertyNode * arg, - SGCommandState ** state) const; - - -// /** -// * Execute a command with no argument. -// * -// * The command function will receive a pointer to a property node -// * with no value and no children. -// * -// * @param name The name of the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name) const; - - -// /** -// * Execute a command with a single bool argument. -// * -// * The command function will receive a pointer to a property node -// * with a bool value and no children. -// * -// * @param name The name of the command. -// * @param arg The bool argument to the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name, bool arg) const; - - -// /** -// * Execute a command with a single int argument. -// * -// * The command function will receive a pointer to a property node -// * with a int value and no children. -// * -// * @param name The name of the command. -// * @param arg The int argument to the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name, int arg) const; - - -// /** -// * Execute a command with a single long argument. -// * -// * The command function will receive a pointer to a property node -// * with a long value and no children. -// * -// * @param name The name of the command. -// * @param arg The long argument to the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name, long arg) const; - - -// /** -// * Execute a command with a single float argument. -// * -// * The command function will receive a pointer to a property node -// * with a float value and no children. -// * -// * @param name The name of the command. -// * @param arg The float argument to the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name, float arg) const; - - -// /** -// * Execute a command with a single double argument. -// * -// * The command function will receive a pointer to a property node -// * with a double value and no children. -// * -// * @param name The name of the command. -// * @param arg The double argument to the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name, double arg) const; - - -// /** -// * Execute a command with a single string argument. -// * -// * The command function will receive a pointer to a property node -// * with a string value and no children. -// * -// * @param name The name of the command. -// * @param arg The string argument to the command. -// * @return true if the command is present and executes successfully, -// * false otherwise. -// */ -// virtual bool execute (const string &name, string arg) const; - + virtual bool execute (const string &name, const SGPropertyNode * arg) const; private: