#ifndef CLUSTER_SERVER_HH
# define CLUSTER_SERVER_HH

# include "ClusterIF_SK.h"

# include "utils/KeyMap.hh"
# include "classifiers/ClusterOutput.hh"

# define ClusterServerName "cluster"

class ClusterServer :public ClusterIF_SK {
public:
  ClusterServer(ClusterIF::Name name);
  ~ClusterServer();
  
  ClusterIF::Status getCluster(ClusterIF::Name cluster,
				  unsigned short *best,
				  double *distance);
private:
  KeyMap<ClusterOutput *> m_results;
  Symbol m_driver;
  
  ClusterOutput &get(Symbol const &out);
  int   spawnAuxTasks();

}; // ClusterServer


#endif // CLUSTER_SERVER_HH
