// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace GLib {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;

#region Autogenerated code
	public partial class Cond : GLib.Opaque {

		[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
		static extern void g_cond_broadcast(IntPtr raw);

		public void Broadcast() {
			g_cond_broadcast(Handle);
		}

		[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
		static extern void g_cond_clear(IntPtr raw);

		public void Clear() {
			g_cond_clear(Handle);
		}

		[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
		static extern void g_cond_init(IntPtr raw);

		public void Init() {
			g_cond_init(Handle);
		}

		[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
		static extern void g_cond_signal(IntPtr raw);

		public void Signal() {
			g_cond_signal(Handle);
		}

		[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
		static extern void g_cond_wait(IntPtr raw, IntPtr mutex);

		public void Wait(GLib.Mutex mutex) {
			g_cond_wait(Handle, mutex == null ? IntPtr.Zero : mutex.Handle);
		}

		[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
		static extern bool g_cond_wait_until(IntPtr raw, IntPtr mutex, long end_time);

		public bool WaitUntil(GLib.Mutex mutex, long end_time) {
			bool raw_ret = g_cond_wait_until(Handle, mutex == null ? IntPtr.Zero : mutex.Handle, end_time);
			bool ret = raw_ret;
			return ret;
		}

		public Cond(IntPtr raw) : base(raw) {}

#endregion
	}
}
