--- /dev/null
+#ifndef __SILC_CMDQUEUE_H
+#define __SILC_CMDQUEUE_H
+
+/* wrappers for queuing commands:
+
+ basically the same as the correspondening silc_client_* functions
+ with one additional parameter:
+
+ bool sync - command must be executed in sync (i.e. no
+ other command may be send before completion)
+ */
+
+bool silc_queue_command_call(SilcClient client,
+ SilcClientConnection conn,
+ const char *command_line, ...);
+
+#define silc_queue_command_pending silc_client_command_pending
+
+/*
+ enable and/or disable command queueing. If command queueing is
+ disabled, all silc_queue_* calls will immedially call silc_client_*
+ functions. If queueing is enabled, all silc_queue_* calls don't have
+ any effect until queueing is disabled again.
+
+ queueing is enabled and disabled for each SilcClientConnection
+ seperatly.
+
+ If queueing is enabled, silc_queue_flush will send all currently
+ queued commands but won't disable queueing.
+ */
+void silc_queue_enable(SilcClientConnection conn);
+void silc_queue_disable(SilcClientConnection conn);
+void silc_queue_flush(SilcClientConnection conn);
+
+/* returns true if queueing is enabled */
+bool silc_queue_get_state(SilcClientConnection conn);
+
+void silc_queue_init(void);
+void silc_queue_deinit(void);
+
+#endif