#ifndef CDUTILS_X_H
#define CDUTILS_X_H

#include "cdutils_interface.h"


namespace CDUtils {


class XInterface: public Interface
{
	PIOBJECT_SUBCLASS(XInterface, Interface)
public:
	XInterface();

	EVENT1(keepNamesRequest, bool*, xn)
	EVENT1(receivedX, PIVector<PIDeque<int> >, pathes)

	void enable(const CDType & x) {setEnabled(x, true);}
	void disable(const CDType & x) {setEnabled(x, false);}
	void setEnabled(const CDType & x, bool en);
	void setDisabled(const CDType & x, bool dis) {setEnabled(x, !dis);}
	PIVector<PIDeque<int> > enabledList() const;
	void setEnabledList(const PIVector<PIDeque<int> > & l);
	void lock();
	void unlock();

	void start(double freq = 20.);
	void stop();

};

}

extern CDUtils::XInterface X;

#endif // CDUTILS_X_H
