c++-gtk-utils
Namespaces | Classes | Typedefs | Functions
Cgu Namespace Reference

Namespaces

 Callback
 This namespace provides classes for type erasure.
 
 DoIf
 This namespace provides utility functions for conditional compilation.
 
 Extension
 This namespace provides functions to execute scheme code on the guile VM.
 
 MemFun
 This namespace contains an adaptor to create a functor from a class member function to pass to C++ standard algorithms.
 
 SharedHandleAllocFail
 
 SharedPtrAllocFail
 
 Thread
 
 Utf8
 This namespace contains utilities relevant to the use of UTF-8 in programs.
 

Classes

class  Application
 This is a class for constructing and managing GtkApplication objects. More...
 
class  ApplicationNameError
 This class is thrown when the program id name passed to the constructor of Cgu::Application is invalid. More...
 
class  AsyncChannel
 A thread-safe "channel" class for inter-thread communication. More...
 
class  AsyncQueue
 A thread-safe asynchronous queue. More...
 
class  AsyncQueueDispatch
 A thread-safe asynchronous queue with a blocking pop() method. More...
 
class  AsyncQueuePopError
 An exception thrown if calling pop() on a AsyncQueue or AsyncQueueDispatch object fails because the queue is empty. More...
 
class  AsyncResult
 A thread-safe asynchronous result class. More...
 
class  basic_fdinbuf
 Input stream buffer for unix file descriptors. More...
 
class  basic_fdistream
 Input stream for unix file descriptors. More...
 
class  basic_fdostream
 Output stream for unix file descriptors. More...
 
class  basic_fdoutbuf
 Output stream buffer for unix file descriptors. More...
 
class  basic_giostream
 C++ input-output stream for GIO streams. More...
 
class  basic_gistream
 C++ input stream for GIO streams. More...
 
class  basic_gostream
 C++ output stream for GIO streams. More...
 
class  basic_gstreambuf
 C++ stream buffer for GIO streams. More...
 
class  CFree
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls std::free. More...
 
class  EmitterArg
 A class to execute callbacks connected to it, with provision for automatic disconnection. More...
 
class  FilePrintDialog
 A print dialog class for FilePrintManager. More...
 
class  FilePrintManager
 A class to print a file using the GTK+ print system. More...
 
class  GerrorFree
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls glib's g_error_free(). More...
 
class  GFree
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls glib's g_free(). More...
 
class  GobjHandle
 This is a handle for managing the reference count of GObjects. More...
 
class  GobjWeakHandle
 This is a handle for managing weak references to GObjects. More...
 
struct  GobjWeakHandleError
 
class  GSliceDestroy
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls glib's g_slice_free1(), but before doing so also explicitly calls the destructor of a C++ object constructed in the memory. More...
 
class  GSliceFree
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls glib's g_slice_free1(). More...
 
class  GSliceFreeSize
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls glib's g_slice_free1(). More...
 
class  GvarHandle
 This is a handle for managing the reference count of GVariant objects. More...
 
class  IntIter
 An iterator class providing a lazy integer range over a virtual container. More...
 
class  IntrusiveCounter
 This is a counter class providing the ref() and unref() functions required by IntrusivePtr. More...
 
class  IntrusiveLockCounter
 This is a counter class providing the ref() and unref() functions required by IntrusivePtr, with a thread safe reference count.. More...
 
class  IntrusivePtr
 This is a smart pointer for managing objects allocated on freestore which maintain their own reference count. More...
 
class  MainWidgetBase
 This is a class to manage the lifetime of widgets which are not top-level widgets (ie which are not derived from GtkWindow). More...
 
class  Notifier
 Provides thread-safe signalling between a worker thread and the main program thread. More...
 
class  Param
 Struct for automatic typing of function parameter arguments. More...
 
struct  Param< T & >
 
struct  Param< T * >
 
struct  PipeError
 
class  PipeFifo
 A wrapper for unix anonymous pipes. More...
 
class  Releaser
 A class used for tracking EmitterArg and SafeEmitterArg connections. More...
 
class  RemoveRefCond
 Struct which will conditionally convert a reference type to a value type. More...
 
struct  RemoveRefCond< T &, false >
 
struct  RemoveRefCond< T &, true >
 
struct  RemoveRefCond< T, false >
 
struct  RemoveRefCond< T, true >
 
class  SafeEmitterArg
 A thread-safe class to execute callbacks connected to it, with provision for automatic disconnection. More...
 
class  ScopedHandle
 This is a generic scoped class for managing the lifetime of objects allocated on freestore. More...
 
class  SharedHandle
 This is a generic class for managing the lifetime of objects allocated on freestore. More...
 
class  SharedHandleError
 This is an exception struct thrown as an alternative to deleting a managed object when internal memory allocation for SharedHandle or SharedLockHandle fails in their reset() method or in their constructor which takes a pointer. More...
 
class  SharedLockHandle
 This is a generic class for managing the lifetime of objects allocated on freestore, with a thread safe reference count.. More...
 
class  SharedLockPtr
 This is a smart pointer for managing the lifetime of objects allocated on freestore, with a thread safe reference count. More...
 
class  SharedPtr
 This is a smart pointer for managing the lifetime of objects allocated on freestore. More...
 
class  SharedPtrError
 This is an exception struct thrown as an alternative to deleting a managed object when internal memory allocation for SharedPtr or SharedLockPtr fails in their reset() method or in their constructor which takes a pointer. More...
 
class  StandardArrayDelete
 A deleter functor for use as the second (Dealloc) template parameter of the SharedHandle, SharedLockHandle or ScopedHandle template classes, which calls the C++ delete[] expression. More...
 
class  SyncPipe
 A class which uses an anonymous pipe to synchronise between processes. More...
 
class  TextPrintManager
 A class to print plain text using the GTK+ print system. More...
 
class  WinBase
 This is a class for managing the lifetime of top level widgets. More...
 

Typedefs

typedef EmitterArg Emitter
 
typedef SafeEmitterArg SafeEmitter
 
typedef basic_fdinbuf< char > fdinbuf
 Input stream buffer for file descriptors for char type. More...
 
typedef basic_fdoutbuf< char > fdoutbuf
 Output stream buffer for file descriptors for char type. More...
 
typedef basic_fdistream< char > fdistream
 Input stream for file descriptors for char type. More...
 
typedef basic_fdostream< char > fdostream
 Output stream for file descriptors for char type. More...
 
typedef basic_fdinbuf< wchar_t > wfdinbuf
 Input stream buffer for file descriptors for wchar_t type. More...
 
typedef basic_fdoutbuf< wchar_t > wfdoutbuf
 Output stream buffer for file descriptors for wchar_t type. More...
 
typedef basic_fdistream< wchar_t > wfdistream
 Input stream for file descriptors for wchar_t type. More...
 
typedef basic_fdostream< wchar_t > wfdostream
 Output stream for file descriptors for wchar_t type. More...
 
typedef basic_fdinbuf< char16_t > u16fdinbuf
 Input stream buffer for file descriptors for char16_t type. More...
 
typedef basic_fdoutbuf< char16_t > u16fdoutbuf
 Output stream buffer for file descriptors for char16_t type. More...
 
typedef basic_fdistream< char16_t > u16fdistream
 Input stream for file descriptors for char16_t type. More...
 
typedef basic_fdostream< char16_t > u16fdostream
 Output stream for file descriptors for char16_t type. More...
 
typedef basic_fdinbuf< char32_t > u32fdinbuf
 Input stream buffer for file descriptors for char32_t type. More...
 
typedef basic_fdoutbuf< char32_t > u32fdoutbuf
 Output stream buffer for file descriptors for char32_t type. More...
 
typedef basic_fdistream< char32_t > u32fdistream
 Input stream for file descriptors for char32_t type. More...
 
typedef basic_fdostream< char32_t > u32fdostream
 Output stream for file descriptors for char32_t type. More...
 
typedef ScopedHandle< GError *, GerrorFreeGerrorScopedHandle
 A handle comprising a typed instance of the ScopedHandle class for managing GError objects. More...
 
typedef SharedHandle< GError *, GerrorFreeGerrorSharedHandle
 A handle comprising a typed instance of the SharedHandle class for managing GError objects. More...
 
typedef basic_gstreambuf< char > gstreambuf
 C++ stream buffer for GIO streams for char type. More...
 
typedef basic_gistream< char > gistream
 C++ input stream for GIO streams for char type. More...
 
typedef basic_gostream< char > gostream
 C++ output stream for GIO streams for char type. More...
 
typedef basic_giostream< char > giostream
 C++ input/output stream for GIO streams for char type. More...
 
typedef basic_gstreambuf< wchar_t > wgstreambuf
 C++ stream buffer for GIO streams for wchar_t type. More...
 
typedef basic_gistream< wchar_t > wgistream
 C++ input stream for GIO streams for wchar_t type. More...
 
typedef basic_gostream< wchar_t > wgostream
 C++ output stream for GIO streams for wchar_t type. More...
 
typedef basic_giostream< wchar_t > wgiostream
 C++ input/output stream for GIO streams for wchar_t type. More...
 
typedef basic_gstreambuf< char16_t > u16gstreambuf
 C++ stream buffer for GIO streams for char16_t type. More...
 
typedef basic_gistream< char16_t > u16gistream
 C++ input stream for GIO streams for char16_t type. More...
 
typedef basic_gostream< char16_t > u16gostream
 C++ output stream for GIO streams for char16_t type. More...
 
typedef basic_giostream< char16_t > u16giostream
 C++ input/output stream for GIO streams for char16_t type. More...
 
typedef basic_gstreambuf< char32_t > u32gstreambuf
 C++ stream buffer for GIO streams for char32_t type. More...
 
typedef basic_gistream< char32_t > u32gistream
 C++ input stream for GIO streams for char32_t type. More...
 
typedef basic_gostream< char32_t > u32gostream
 C++ output stream for GIO streams for char32_t type. More...
 
typedef basic_giostream< char32_t > u32giostream
 C++ input/output stream for GIO streams for char32_t type. More...
 
typedef gboolean(* PresentFunc) (void *object_data, const char **instance_args)
 
typedef SharedHandle< gchar *, GFreeGcharSharedHandle
 A handle comprising a typed instance of the SharedHandle class for gchar* arrays and strings. More...
 
typedef ScopedHandle< gchar *, GFreeGcharScopedHandle
 A handle comprising a typed instance of the ScopedHandle class for gchar* arrays and strings. More...
 

Functions

void cgu_async_channel_waiters_dec (void *arg)
 
template<class T , class Container >
void swap (Cgu::AsyncQueue< T, Container > &q1, Cgu::AsyncQueue< T, Container > &q2)
 
template<class T , class Container >
void swap (Cgu::AsyncQueueDispatch< T, Container > &q1, Cgu::AsyncQueueDispatch< T, Container > &q2)
 
template<class T >
bool operator== (const GobjHandle< T > &h1, const GobjHandle< T > &h2)
 
template<class T >
bool operator!= (const GobjHandle< T > &h1, const GobjHandle< T > &h2)
 
template<class T >
bool operator< (const GobjHandle< T > &h1, const GobjHandle< T > &h2)
 
bool operator== (const GvarHandle &h1, const GvarHandle &h2)
 
bool operator!= (const GvarHandle &h1, const GvarHandle &h2)
 
bool operator< (const GvarHandle &h1, const GvarHandle &h2)
 
template<class T >
bool operator== (const IntrusivePtr< T > &s1, const IntrusivePtr< T > &s2)
 
template<class T >
bool operator!= (const IntrusivePtr< T > &s1, const IntrusivePtr< T > &s2)
 
template<class T >
bool operator< (const IntrusivePtr< T > &s1, const IntrusivePtr< T > &s2)
 
guint start_iowatch (int fd, const Callback::CallbackArg< bool & > *cb, GIOCondition io_condition, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
guint start_iowatch (int fd, const Callback::CallbackArg< bool & > *cb, Releaser &r, GIOCondition io_condition, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
guint start_iowatch (int fd, const Callback::CallbackArg< GIOCondition, bool & > *cb, GIOCondition io_condition, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
guint start_iowatch (int fd, const Callback::CallbackArg< GIOCondition, bool & > *cb, Releaser &r, GIOCondition io_condition, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
bool operator== (IntIter iter1, IntIter iter2)
 
bool operator!= (IntIter iter1, IntIter iter2)
 
bool operator< (IntIter iter1, IntIter iter2)
 
bool operator> (IntIter iter1, IntIter iter2)
 
bool operator<= (IntIter iter1, IntIter iter2)
 
bool operator>= (IntIter iter1, IntIter iter2)
 
IntIter::difference_type operator- (IntIter iter1, IntIter iter2)
 
IntIter operator+ (IntIter iter, IntIter::difference_type n)
 
IntIter operator- (IntIter iter, IntIter::difference_type n)
 
IntIter operator+ (IntIter::difference_type n, IntIter iter)
 
bool register_prog (const char *prog_name, PresentFunc func, void *object_data=0)
 
int present_instance (const char **instance_args=0)
 
template<class T , class Dealloc >
bool operator== (const SharedHandle< T, Dealloc > &s1, const SharedHandle< T, Dealloc > &s2)
 
template<class T , class Dealloc >
bool operator!= (const SharedHandle< T, Dealloc > &s1, const SharedHandle< T, Dealloc > &s2)
 
template<class T , class Dealloc >
bool operator< (const SharedHandle< T, Dealloc > &s1, const SharedHandle< T, Dealloc > &s2)
 
template<class T , class Dealloc >
bool operator== (const SharedLockHandle< T, Dealloc > &s1, const SharedLockHandle< T, Dealloc > &s2)
 
template<class T , class Dealloc >
bool operator!= (const SharedLockHandle< T, Dealloc > &s1, const SharedLockHandle< T, Dealloc > &s2)
 
template<class T , class Dealloc >
bool operator< (const SharedLockHandle< T, Dealloc > &s1, const SharedLockHandle< T, Dealloc > &s2)
 
template<class T >
bool operator== (const SharedPtr< T > &s1, const SharedPtr< T > &s2)
 
template<class T >
bool operator!= (const SharedPtr< T > &s1, const SharedPtr< T > &s2)
 
template<class T >
bool operator< (const SharedPtr< T > &s1, const SharedPtr< T > &s2)
 
template<class T >
bool operator== (const SharedLockPtr< T > &s1, const SharedLockPtr< T > &s2)
 
template<class T >
bool operator!= (const SharedLockPtr< T > &s1, const SharedLockPtr< T > &s2)
 
template<class T >
bool operator< (const SharedLockPtr< T > &s1, const SharedLockPtr< T > &s2)
 
guint start_timeout (guint millisec, const Callback::CallbackArg< bool & > *cb, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
guint start_timeout (guint millisec, const Callback::CallbackArg< bool & > *cb, Releaser &r, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
guint start_timeout_seconds (guint sec, const Callback::CallbackArg< bool & > *cb, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 
guint start_timeout_seconds (guint sec, const Callback::CallbackArg< bool & > *cb, Releaser &r, gint priority=G_PRIORITY_DEFAULT, GMainContext *context=0)
 

Typedef Documentation

◆ Emitter

◆ SafeEmitter

Function Documentation

◆ cgu_async_channel_waiters_dec()

void Cgu::cgu_async_channel_waiters_dec ( void *  arg)
inline

◆ swap() [1/2]

template<class T , class Container >
void Cgu::swap ( Cgu::AsyncQueue< T, Container > &  q1,
Cgu::AsyncQueue< T, Container > &  q2 
)

Swaps the contents of two AsyncQueue objects. It will not throw assuming that the swap method of the container type does not throw (which the C++11/13 standard requires not to happen with the standard sequence containers). It is thread safe and the swap is thread-wise atomic.

Parameters
q1An object to be swapped with the other.
q2An object to be swapped with the other.
Note
Calling std::swap on AsyncQueue objects is thread safe but does not provide a thread-wise atomic swap (the swapped objects may not be mirror images if during the execution of std::swap's default algorithm one of them has been modified), although in many cases that doesn't matter. If swap() is called without a namespace qualifier, argument dependent look-up will pick this one correctly.

Since 2.0.8

◆ swap() [2/2]

template<class T , class Container >
void Cgu::swap ( Cgu::AsyncQueueDispatch< T, Container > &  q1,
Cgu::AsyncQueueDispatch< T, Container > &  q2 
)

Swaps the contents of two AsyncQueueDispatch objects. It will not throw assuming that the swap method of the container type does not throw (which the C++11/13 standard requires not to happen with the standard sequence containers). It is thread safe and the swap is thread-wise atomic.

Parameters
q1An object to be swapped with the other.
q2An object to be swapped with the other.
Note
1. An object swapped does not, by virtue of the swap, inherit any threads waiting on the other one. However if threads were waiting on a swapped object prior to the swap, and it acquires items by virtue of the swap, the waiting threads will unblock and extract those items.
2. Calling std::swap on AsyncQueueDispatch objects is thread safe but does not provide a thread-wise atomic swap (the swapped objects may not be mirror images if during the execution of std::swap's default algorithm one of them has been modified), although in many cases that doesn't matter. If swap() is called without a namespace qualifier, argument dependent look-up will pick this one correctly.

Since 2.0.8