#include <cdevData.h>
#include <cdevDirectoryTable.h>

class CDEV_CLASS_SPEC cdevDirectoryTool : public cdevDirectoryTable
{
public:
	cdevDirectoryTool  ( void );
	~cdevDirectoryTool ( void );
	
	static int query           ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int queryClass      ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int queryClasses    ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int queryCollection ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int queryVerbs      ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int queryAttributes ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int queryMessages   ( cdevDirectoryTable &table, cdevData *in, cdevData *out ); 
	static int service         ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int serviceData     ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int validate        ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int update          ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int writeAscii      ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	static int writeBinary     ( cdevDirectoryTable &table, cdevData *in, cdevData *out );
	
protected:
	static int queryElements   ( cdevDirectoryTable &table, cdevDirectoryTable::ElementType type, 
				     cdevData *in, cdevData *out);

};
