Merged silc_1_0_branch to trunk.
[silc.git] / apps / irssi / src / silc / core / silc-cmdqueue.h
diff --git a/apps/irssi/src/silc/core/silc-cmdqueue.h b/apps/irssi/src/silc/core/silc-cmdqueue.h
new file mode 100644 (file)
index 0000000..ee18373
--- /dev/null
@@ -0,0 +1,41 @@
+#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