#ifndef CLIENT_H
#define CLIENT_H

struct fio_client;
struct fio_net_cmd;

typedef void (*client_text_op_func)(struct fio_client *client,
		FILE *f, __u16 pdu_len, const char *buf);

typedef void (*client_disk_util_op_func)(struct fio_client *client, struct fio_net_cmd *cmd);

typedef void (*client_thread_status_op)(struct fio_net_cmd *cmd);

typedef void (*client_group_stats_op)(struct fio_net_cmd *cmd);

typedef void (*client_eta_op)(struct fio_client *client, struct fio_net_cmd *cmd);

typedef void (*client_probe_op)(struct fio_client *client, struct fio_net_cmd *cmd);

typedef void (*client_thread_status_display_op)(char *status_message);

struct client_ops {
	client_text_op_func text_op;
	client_disk_util_op_func disk_util;
	client_thread_status_op thread_status;
	client_group_stats_op group_stats;
	client_eta_op eta; 
	client_probe_op probe;
	client_thread_status_display_op thread_status_display;
};

extern struct client_ops fio_client_ops;

#endif

