// $Id: stageXY.h 260 2017-10-24 12:13:56Z depa $

#pragma once


// TAN
#include "config.h"
#include "Nice/App/Application.h"
#include "Nice/App/ConfigClient.h"
#include <Nice/Map/NPoint.h>
#include "Basda/Mocca/XYServiceWorkerInterface.h"
#include "Basda/Mocca/Constant.h"

// SHINS
#include "../common_sharknir.h"


class stageXYApp : public Nice::Application
{
private:
#if defined BOOST_HAS_TR1_SHARED_PTR
  std::shared_ptr<niceCallback> m_ptrCallbackObj;
#else
  boost::shared_ptr<niceCallback> m_ptrCallbackObj;
#endif
  boost::function<void(const Nice::Completion&)> m_callbackFn;
  std::string m_strCallbackName;

  void install_callback(const std::string&, const std::string&);
  void apply_callback2(std::map<std::string, Basda::MoccaXYServiceWorkerInterfacePtr>::iterator _it);
public:
  stageXYApp();
  ~stageXYApp();
  virtual int usage();
  virtual int run(int _numArgs, char* _argStrings[]);
  virtual void interruptCallback(int _sig);
  /* virtual void emergencyAbort(); */
}
