]> git.mxchange.org Git - simgear.git/commitdiff
Grrrr.
authorJames Turner <zakalawe@mac.com>
Sat, 9 Feb 2013 15:45:36 +0000 (15:45 +0000)
committerJames Turner <zakalawe@mac.com>
Sat, 9 Feb 2013 15:45:36 +0000 (15:45 +0000)
simgear/structure/commands.cxx~ [deleted file]
simgear/structure/commands.hxx~ [deleted file]

diff --git a/simgear/structure/commands.cxx~ b/simgear/structure/commands.cxx~
deleted file mode 100644 (file)
index 3a22132..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-// commands.cxx - encapsulated commands.
-// Started Spring 2001 by David Megginson, david@megginson.com
-// This code is released into the Public Domain.
-//
-// $Id$
-
-#ifdef HAVE_CONFIG_H
-#  include <simgear_config.h>
-#endif
-
-#include <memory>
-#include <simgear/props/props_io.hxx>
-
-#include "commands.hxx"
-
-#include <simgear/structure/exception.hxx>
-#include <simgear/threads/SGThread.hxx>
-#include <simgear/threads/SGGuard.hxx>
-#include <simgear/debug/logstream.hxx>
-
-\f
-////////////////////////////////////////////////////////////////////////
-// Implementation of SGCommandMgr class.
-////////////////////////////////////////////////////////////////////////
-
-
-SGCommandMgr::SGCommandMgr ()
-{
-  // no-op
-}
-
-SGCommandMgr::~SGCommandMgr ()
-{
-  // no-op
-}
-
-SGMutex SGCommandMgr::_instanceMutex;
-
-SGCommandMgr*
-SGCommandMgr::instance()
-{
-  static std::auto_ptr<SGCommandMgr> mgr;
-  if (mgr.get())
-    return mgr.get();
-
-  SGGuard<SGMutex> lock(_instanceMutex);
-  if (mgr.get())
-    return mgr.get();
-
-  mgr = std::auto_ptr<SGCommandMgr>(new SGCommandMgr);
-  return mgr.get();
-}
-
-void
-SGCommandMgr::addCommand (const std::string &name, Command* command)
-{
-    if (_commands.find(name) != _commands.end())
-        throw sg_exception("duplicate command name:" + name);
-    
-  _commands[name] = command;
-}
-
-SGCommandMgr::Command*
-SGCommandMgr::getCommand (const std::string &name) const
-{
-  const command_map::const_iterator it = _commands.find(name);
-  return (it != _commands.end() ? it->second : 0);
-}
-
-string_list
-SGCommandMgr::getCommandNames () const
-{
-  string_list names;
-  command_map::const_iterator it = _commands.begin();
-  command_map::const_iterator last = _commands.end();
-  while (it != last) {
-    names.push_back(it->first);
-    ++it;
-  }
-  return names;
-}
-
-bool
-SGCommandMgr::execute (const std::string &name, const SGPropertyNode * arg) const
-{
-  Command* command = getCommand(name);
-  if (command == 0)
-    return false;
-
-
-  try {
-    return (*command)(arg);
-  } catch (sg_exception& e) {
-    SG_LOG(SG_GENERAL, SG_ALERT, "command '" << name << "' failed with exception\n"
-      << "\tmessage:" << e.getMessage() << " (from " << e.getOrigin() << ")");
-    return false;
-  }
-}
-
-// end of commands.cxx
diff --git a/simgear/structure/commands.hxx~ b/simgear/structure/commands.hxx~
deleted file mode 100644 (file)
index 503bdd1..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * \file commands.hxx
- * Interface definition for encapsulated commands.
- * Started Spring 2001 by David Megginson, david@megginson.com
- * This code is released into the Public Domain.
- *
- * $Id$
- */
-
-#ifndef __COMMANDS_HXX
-#define __COMMANDS_HXX
-
-
-#include <simgear/compiler.h>
-
-#include <string>
-#include <map>
-
-#include <simgear/threads/SGThread.hxx>
-#include <simgear/math/sg_types.hxx>
-
-// forward decls
-class SGPropertyNode;
-     
-/**
- * Manage commands.
- *
- * <p>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:
- * the function may use the nodes children as parameters.</p>
- *
- * @author David Megginson, david@megginson.com
- */
-class SGCommandMgr
-{
-public:
-    /**
-     * Command functor object
-     */
-    class Command
-    {
-    public:
-        virtual ~Command() { }
-        virtual bool operator()(const SGPropertyNode * arg) = 0;
-    };
-
-    
-         typedef bool (*command_t) (const SGPropertyNode * arg);
-
-private:
-    class FunctionCommand : public Command
-    {
-    public:
-        FunctionCommand( command_t fun )
-       : f_(fun) {}
-
-        virtual bool operator()(const SGPropertyNode * arg) { return (*f_)(arg); }
-    private:
-        command_t f_;
-    };
-
-    template< class ObjPtr, typename MemFn >
-    class MethodCommand : public Command
-    {
-    public:
-        MethodCommand( const ObjPtr& pObj, MemFn pMemFn ) :
-         pObj_(pObj), pMemFn_(pMemFn) {}
-
-        virtual bool operator()(const SGPropertyNode * arg)
-        {
-            return ((*pObj_).*pMemFn_)(arg);
-        }
-    private:
-        ObjPtr pObj_;
-        MemFn pMemFn_;
-    };
-    
-   /**
-    * Helper template functions.
-    */
-
-   template< class ObjPtr, typename MemFn >
-   Command* make_functor( const ObjPtr& pObj, MemFn pMemFn )
-   {
-       return new MethodCommand<ObjPtr,MemFn>(pObj, pMemFn );
-   }
-   
-public:
-
-
-  /**
-   * Destructor.
-   */
-  virtual ~SGCommandMgr ();
-
-  /**
-   * Implement the classical singleton.
-   */
-  static SGCommandMgr* instance();
-
-  /**
-   * Register a new command with the manager.
-   *
-   * @param name The command name.  Any existing command with
-   * the same name will silently be overwritten.
-   * @param command A pointer to a one-arg function returning
-   * a bool result.  The argument is always a const pointer to
-   * an SGPropertyNode (which may contain multiple values).
-   */
-  void addCommand(const std::string& name, command_t f)
-  { addCommandObject(name, new FunctionCommand(f); }
-       
-  void addCommandObject (const std::string &name, Command* command);
-
-  template<class OBJ, typename METHOD>
-  void addCommand(const std::string& name, const OBJ& o, METHOD m)
-  { 
-    addCommandObject(name, make_functor(o,m));
-  }
-  
-  /**
-   * Look up an existing command.
-   *
-   * @param name The command name.
-   * @return A pointer to the command, or 0 if there is no registered
-   * command with the name specified.
-   */
-  virtual Command* getCommand (const std::string &name) const;
-
-
-  /**
-   * Get a list of all existing command names.
-   *
-   * @return A (possibly empty) vector of the names of all registered
-   * commands.
-   */
-  virtual string_list getCommandNames () const;
-
-
-  /**
-   * Execute a command.
-   *
-   * @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
-   * to pass an arbitrarily complex data structure to a command.
-   * @return true if the command is present and executes successfully,
-   * false otherwise.
-   */
-  virtual bool execute (const std::string &name, const SGPropertyNode * arg) const;
-
-protected:
-  /**
-   * Default constructor.
-   */
-  SGCommandMgr ();
-
-
-private:
-
-  typedef std::map<std::string,Command*> command_map;
-  command_map _commands;
-
-  static SGMutex _instanceMutex;
-
-};
-
-#endif // __COMMANDS_HXX
-
-// end of commands.hxx