[Telepathy-commits] [telepathy-doc/master] 2008-12-22 Murray Cumming <murrayc at murrayc.com>

Murray Cumming murrayc at murrayc.com
Mon Dec 22 04:41:47 PST 2008


* docs/examples/send_message/main.c: Implement code to get a text
channel and send a message on it, though (like the list_contacts example)
it does not work now due to this error from
tp_connection_get_contacts_by_id():
        Connection manager :1.171 is broken: contact #2 in the GetContactAttributes result has no contact-id
---
 ChangeLog                           |    8 +
 docs/examples/send_message/main.c   |  105 ++++++++--
 docs/examples/set_presence/Makefile |  395 -----------------------------------
 docs/examples/set_presence/example  |  Bin 14686 -> 0 bytes
 4 files changed, 98 insertions(+), 410 deletions(-)
 delete mode 100644 docs/examples/set_presence/Makefile
 delete mode 100755 docs/examples/set_presence/example

diff --git a/ChangeLog b/ChangeLog
index 8ef8a2f..fde0793 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-12-22  Murray Cumming  <murrayc at murrayc.com>
+
+	* docs/examples/send_message/main.c: Implement code to get a text 
+	channel and send a message on it, though (like the list_contacts example) 
+	it does not work now due to this error from 
+	tp_connection_get_contacts_by_id():
+        Connection manager :1.171 is broken: contact #2 in the GetContactAttributes result has no contact-id
+
 2008-12-15  Murray Cumming  <murrayc at murrayc.com>
 
 	* configure.ac:
diff --git a/docs/examples/send_message/main.c b/docs/examples/send_message/main.c
index 30cef22..562e40d 100644
--- a/docs/examples/send_message/main.c
+++ b/docs/examples/send_message/main.c
@@ -17,12 +17,16 @@
 #include <telepathy-glib/connection-manager.h>
 #include <telepathy-glib/connection.h>
 #include <telepathy-glib/contact.h>
+#include <telepathy-glib/channel.h>
 #include <telepathy-glib/util.h>
+#include <telepathy-glib/interfaces.h> /* For TP_IFACE_CHANNEL_TYPE_TEXT */
 #include <glib/gprintf.h>
 
 GMainLoop *mainloop = NULL;
 TpDBusDaemon *bus_daemon = NULL;
 TpConnection *connection = NULL;
+TpContact *contact = NULL;
+TpChannel *text_channel = NULL;
 
 /* A utility function to make our debug output easier to read. */
 const gchar* get_reason_description (TpConnectionStatusReason reason)
@@ -62,27 +66,75 @@ const gchar* get_reason_description (TpConnectionStatusReason reason)
    }
 }
 
-void on_connection_set_presence(TpConnection *proxy,
+void on_send (TpChannel *proxy,
   const GError *error,
-  gpointer user_data, 
+  gpointer user_data,
   GObject *weak_object)
 {
-  if (error != NULL)
+  if (error)
     {
-      g_printf ("tp_cli_connection_interface_simple_presence_call_set_presence() failed: %s\n", error->message);
-      g_main_loop_quit (mainloop);
+      g_printf ("tp_cli_channel_type_text_call_send () failed: %s\n", error->message);
+      return;
+    }
+
+  g_printf("DEBUG: Message sent.\n");
+}
+
+void on_text_channel_is_ready (TpChannel *channel,
+  const GError *error,
+  gpointer user_data)
+{
+  if (error)
+    {
+      g_printf ("tp_channel_call_when_ready () failed: %s\n", error->message);
+      return;
+    }
+
+  g_printf("DEBUG: Text channel is ready.\n");
+
+  //Send a message:
+
+  TpProxyPendingCall* pending = tp_cli_channel_type_text_call_send (channel, 
+    -1, /* timeout */
+    0, /* Channel_Text_Message_Type_Normal */
+    "Hello from Murray's telepathy example. Send murrayc at openismus.com an email if this arrived.",
+    &on_send,
+    NULL, NULL, NULL);
+}
+
+void on_connection_create_channel(TpConnection *proxy,
+  const gchar *object_path,
+  GHashTable *out_Properties,
+  const GError *error,
+  gpointer user_data,
+  GObject *weak_object)
+{
+  if (error)
+    {
+      g_printf ("tp_cli_connection_interface_requests_call_create_channel () failed: %s\n", error->message);
       return;
     }
 
-   g_printf ("Presence set.\n");
+  g_printf("DEBUG: Text channel created.\n");
 
+  /* Create the proxy object for the channel: */
+  GError *inner_error = NULL;
+  text_channel = tp_channel_new (connection, 
+    object_path, 
+    TP_IFACE_CHANNEL_TYPE_TEXT,
+    TP_HANDLE_TYPE_CONTACT,
+    tp_contact_get_handle (contact),
+    &inner_error);
+
+  if (inner_error)
+    {
+      g_printf ("tp_channel_new () failed: %s\n", error->message);
+      g_clear_error (&inner_error);
+      return;
+    }
 
-   /* Disconnect the connection now that our example has finished.
-      Otherwise it will be orphaned. */
-   g_printf ("DEBUG: Disconnecting.\n");
-   tp_cli_connection_call_disconnect (connection, -1, NULL, NULL,
-            NULL, NULL); /* Also destroys the connection object. */
-   connection = NULL;
+  /* Wait for the channel to be ready: */
+  tp_channel_call_when_ready (text_channel, on_text_channel_is_ready, NULL);
 }
 
 void on_get_contacts_by_id (TpConnection *connection,
@@ -107,14 +159,37 @@ void on_get_contacts_by_id (TpConnection *connection,
       return;
     }
 
-  TpContact *contact = contacts[0];
+  contact = contacts[0];
   if(!contact)
     {
       g_printf ("tp_connection_get_contacts_by_id () returned NULL contact\n");
       return;
     }
 
-  //TODO: Send a message.
+  g_printf("DEBUG: Contact found: %s.\n", tp_contact_get_identifier (contact));
+
+ 
+  //Get a text Channel for this contact:
+  GHashTable* properties = g_hash_table_new (NULL, NULL);
+
+  GValue *value = tp_g_value_slice_new (G_TYPE_STRING);
+  g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_TEXT);
+  g_hash_table_insert (properties, TP_IFACE_CHANNEL ".ChannelType", value);
+
+  value = tp_g_value_slice_new (G_TYPE_STRING);
+  g_value_set_static_string (value, tp_contact_get_identifier (contact));
+  g_hash_table_insert (properties, TP_IFACE_CHANNEL ".TargetID", value);
+
+  /* Note that this uses the new Requests interface, which is not yet 
+   * implemented by all Telepathy ConnectionManagers. 
+   * The old way (working with all ConnectionManagers), was the RequestChannel 
+   * interface, via tp_cli_connection_call_request_channel().
+   */
+  tp_cli_connection_interface_requests_call_create_channel (connection, 
+    -1, /* timeout */
+    properties,
+    &on_connection_create_channel,
+    NULL, NULL, NULL);
 }
 
 void on_connection_ready (TpConnection *connection,
@@ -267,7 +342,7 @@ main (int argc, char **argv)
   g_hash_table_insert (parameters, "account", value);
 
   value = tp_g_value_slice_new (G_TYPE_STRING);
-  g_value_set_static_string (value, "passwordTODO");
+  g_value_set_static_string (value, "luftjab");
   g_hash_table_insert (parameters, "password", value);
 
   /* This jabber-specific parameter can avoid clashes with 
diff --git a/docs/examples/set_presence/Makefile b/docs/examples/set_presence/Makefile
deleted file mode 100644
index 17b2dfb..0000000
--- a/docs/examples/set_presence/Makefile
+++ /dev/null
@@ -1,395 +0,0 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
-# docs/examples/set_presence/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-pkgdatadir = $(datadir)/telepathy-doc
-pkglibdir = $(libdir)/telepathy-doc
-pkgincludedir = $(includedir)/telepathy-doc
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/docs/examples/Makefile.am_fragment
-noinst_PROGRAMS = example$(EXEEXT)
-subdir = docs/examples/set_presence
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/telepathy_docs_check_perl.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_CLEAN_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-am_example_OBJECTS = main.$(OBJEXT)
-example_OBJECTS = $(am_example_OBJECTS)
-example_LDADD = $(LDADD)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(example_SOURCES)
-DIST_SOURCES = $(example_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /home/murrayc/svn/gnome220/telepathy-doc/missing --run aclocal-1.10
-ACLOCAL_AMFLAGS = -I m4
-AMTAR = ${SHELL} /home/murrayc/svn/gnome220/telepathy-doc/missing --run tar
-AUTOCONF = ${SHELL} /home/murrayc/svn/gnome220/telepathy-doc/missing --run autoconf
-AUTOHEADER = ${SHELL} /home/murrayc/svn/gnome220/telepathy-doc/missing --run autoheader
-AUTOMAKE = ${SHELL} /home/murrayc/svn/gnome220/telepathy-doc/missing --run automake-1.10
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -Wall -Werror
-CPPFLAGS = -Wall -Werror
-CYGPATH_W = echo
-DEFS = -DPACKAGE_NAME=\"telepathy-doc\" -DPACKAGE_TARNAME=\"telepathy-doc\" -DPACKAGE_VERSION=\"0.5.0.1\" -DPACKAGE_STRING=\"telepathy-doc\ 0.5.0.1\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"telepathy-doc\" -DVERSION=\"0.5.0.1\"
-DEPDIR = .deps
-DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper 
-DOC_USER_FORMATS = 
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EXEEXT = 
-HELP_DIR = ${datadir}/gnome/help
-INSTALL = /home/murrayc/bin/install-check
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-LDFLAGS = -L/opt/gnome220/lib 
-LIBOBJS = 
-LIBS = $(TELEPATHY_DOCS_LIBS)
-LN_S = ln -s
-LTLIBOBJS = 
-MAKEINFO = ${SHELL} /home/murrayc/svn/gnome220/telepathy-doc/missing --run makeinfo
-MKDIR_P = /bin/mkdir -p
-OBJEXT = o
-OMF_DIR = ${datadir}/omf
-PACKAGE = telepathy-doc
-PACKAGE_BUGREPORT = 
-PACKAGE_NAME = telepathy-doc
-PACKAGE_STRING = telepathy-doc 0.5.0.1
-PACKAGE_TARNAME = telepathy-doc
-PACKAGE_VERSION = 0.5.0.1
-PATH_SEPARATOR = :
-PERL_PATH = /usr/bin/perl
-PKG_CONFIG = /opt/gnome220/bin/pkg-config
-SET_MAKE = 
-SHELL = /bin/bash
-STRIP = 
-TELEPATHY_DOCS_CFLAGS = -I/opt/gnome220/include/telepathy-1.0 -I/opt/gnome220/include/dbus-1.0 -I/opt/gnome220/include/glib-2.0 -I/opt/gnome220/lib/glib-2.0/include -I/opt/gnome220/lib/dbus-1.0/include -I/opt/gnome220/include/gtk-2.0 -I/opt/gnome220/lib/gtk-2.0/include -I/opt/gnome220/include/atk-1.0 -I/opt/gnome220/include/cairo -I/opt/gnome220/include/pango-1.0 -I/opt/gnome220/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12  
-TELEPATHY_DOCS_LIBS = -L/opt/gnome220/lib -ltelepathy-glib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lz -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0  
-VERSION = 0.5.0.1
-abs_builddir = /home/murrayc/svn/gnome220/telepathy-doc/docs/examples/set_presence
-abs_srcdir = /home/murrayc/svn/gnome220/telepathy-doc/docs/examples/set_presence
-abs_top_builddir = /home/murrayc/svn/gnome220/telepathy-doc
-abs_top_srcdir = /home/murrayc/svn/gnome220/telepathy-doc
-ac_ct_CC = gcc
-am__include = include
-am__leading_dot = .
-am__quote = 
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-bindir = ${exec_prefix}/bin
-build_alias = 
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-host_alias = 
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${datarootdir}/info
-install_sh = $(SHELL) /home/murrayc/svn/gnome220/telepathy-doc/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localedir = ${datarootdir}/locale
-localstatedir = ${prefix}/var
-mandir = ${datarootdir}/man
-mkdir_p = /bin/mkdir -p
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /opt/gnome220
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = ${prefix}/etc
-target_alias = 
-top_build_prefix = ../../../
-top_builddir = ../../..
-top_srcdir = ../../..
-all_includes = $(TELEPATHY_DOCS_CFLAGS) $(TELEPATHY_DOCS_WARNING_FLAGS)
-DEFAULT_INCLUDES = 
-INCLUDES = -I. -I$(srcdir) $(strip $(all_includes))
-example_SOURCES = main.c
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/docs/examples/Makefile.am_fragment $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  docs/examples/set_presence/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  docs/examples/set_presence/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) 
-	@rm -f example$(EXEEXT)
-	$(LINK) $(example_OBJECTS) $(example_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-include ./$(DEPDIR)/main.Po
-
-.c.o:
-	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(COMPILE) -c $<
-
-.c.obj:
-	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-noinstPROGRAMS ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am
-
-
-post-html:
-	rsync $(rsync_options) $(example_dirs) $$USER@$(web_host):$(web_path)
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/docs/examples/set_presence/example b/docs/examples/set_presence/example
deleted file mode 100755
index 723291330dcd2cb9eedc9b00d20f9ca6b091eb55..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14686
zcmeHOeQ;dWb-()|d*d%;Sp-v?@a#w+PvVv2PvJl!Sz3R9v4v%W!8p&W-KTvEtKDVy
zt&tf624S!x30&JDWN>F}$fQgI#ep=1gtm6XM35;N*KKE7LOM=>sa(6QVBBDcLH+&i
zdw2Kklia~+|LXY8oW1wlbM86kp8N6c*FG3ov%=@|2^IVzAc!^h2SbYx-+8S~StK+O
z5_O_R%n=iiMcSgB-~q at 2C{%&GARs^*@I?=S4wwO)KpJHeWMEmqkt>8Cu)L_W>HS|4
zqW{l>A;Nnoa1KDdr27#a0{swZgm%yfq*DiB74TKiP0)Z76z!JxtvJvzL6u(*x?8^m
zSp=3xB<fSi&iYh*ekz$R^n~-7 at B*6#(<FW6+Ko~+?WD{QU^-wf;BvrB0IDmd0GK}w
z at J9fa{~|yGOa@#HV3-A<jLQI50>%rp?LvWmr5zIiY at 06trUDpPpE)umL^WdCJlnzH
zVsRCq%E2cgW;?1tS+q^nbGOiZ;=Sg{%wsvq{mHxgcC<$R at yzo#y?gY&2RiTjr+YTd
zes$o3X{Z1GKUwXv at M9X|1nQ)pR3JW2A&50VlLuep!pR?{VNM|au}A)9MMO;cbF7dP
zh-VannE0a}`hy<&w>|hQkG^L;_^&+puRZ0DdFYRO at L8VvWjyr59(frL{}vDb%O3tg
z5B?VF|Hu)HS%gaQ!RSwbXI=Prfgju-46!dxM{ivT`Tc!1KmB*i!~Zn$?);XbPZr;Y
zeLGMd+3+{I2gaFYq>OCTGPlo90OMe55DC3InoR4dOeU+}Q%G7u*Av~Dw4S%3IZM}t
ze&aTMy^%=fEhE>Oisti19%V9}cNsBDFQjuu7f>^rH+3u8nKJZbI&b8xGO=mn-f|vf
z=v{?W3c1$yEXzQz+YlwUWLmC}2FJE&s$l4O!=iasGKMIZOechu)nloo9?PWDFe?f3
zlWEx76^(&A*`0-5*_ at F#(!gWUR7#3aIpdUe1nE{rDk|jlm>Eqcj5v9VW~7o3*OfC2
zDWRmB^&M-G)awWyE5<1k?}V;+)L;uZSqan at xgH(e(R4In<P?*u=2FkSrjgcjMl`<t
zLYBmnd6zLB?<wh0R?fJmVB{^AciEQ`*4^`a8XM;?2sfyX6iXS=oNnZDnOu2$+s(;B
zaZe%SMIoqB3DLXI7o_-PrX(6%S-3ybWi2SN+T!$VvZu4qHI_FPP3AIX+%m`h!YF}d
zbhaeBBUzTvhWnUmWU4EZw&1O<WTKdru!lgIVho&kA!U^3p?E1Hfqsat*+ro-Tamtc
z9XeSYW3Z4%2h(+u*zGX<*#CuY#G_UegwA~4&PP@{E>^Bty}VV2|HX#Lnn-)ghE=!g
z%+njfOT&!|$ID$hUS{KXnGKvbTvMF<)|I}C0pJz*4hF!(G=u%?!&lIUTs!7B(I=h&
ziQi)lP?=2Pa~TvTY<5tC0Gp0TbiDS*pidC*IAw-r{WHiF;zI{NCh>rn2xBPosKotZ
zwqxALi^0$Y%Enwe5ha6+QIQa1<WFIYk9Z|xe8{UA<6}OPF=orzjPX&|7~>;d!x#&Q
zI>uOJe3daQY+#IObrEAMCYl(-pz9gqW8cge3z9a*n6Otd#s_~5V=NBZ8DjynfiV^;
zn;2sub0=ebthX}80wvBE3!064-tXu=6C9?GHa|4jUn at l4{_~@wqq|O66~kXg?(og1
z=I|S+!=}w|4vsE92TzRFp2siCjMma4CX=U5qS$CHJ!6t~>bS(|A(JjWbyVW?l*who
zsUs4n$4rg*A&Jv-W*zap5~l~v2I4y<PEVR#R-DR8oE|lsiEouSJ!`Ha-Y#)^*lZ`>
zEOC0;+(f)V;`F$=mAEExdfsG(PE|^rEnsGe3yHHO%pT$+pCO}`En at B@ep2FW8FM%B
z;}T~JnR|&Jl{j0<e2VxHiL=GbL&OhBoGoWQM|`iu*@ET~;yWeImNZ`>o|QOT)I3Uj
ztHjx|<{QM at fg=`;|NhNAzv+E%q<zDB^W;8INAPpYt>$ZcgQ4Lcfa&bsvf%WIoi}75
zN)(#=F1L_)<tZ%V=O4h&v2*@`O{3SnoxghE$CN*?-1jUwMyq#`Y_nhYcJ5z)UO@@I
z-q(Yhw+s$!69ccwoeJdlo(Ua32;N;stt!?<An}EvU=8y|kH0y%SMmgV?+;DA?6H2(
z`y!!ZC;fdp-#Gw=lS7g7hp-4ay#t9CnaCsYDie1hF~md^iC;6Z35ow;VjU8nFtGxO
z8IW`O1|;S&u?UG9nD`13w=ppni5 at 1dMB=+lR3h;b6BCj61rmLc^KTAHJ7 at OZKSfxz
zeUT}B&7nPQH9^#*`rB}B`qR<T!#(i9o?y-JZ!oM*-v-iFk~%;_I>Yozvh4)hP+JWb
z_yTdI6Ju_Wc*u!^?1U6|0^)`$Sc(+Kk~(S0%rZ-MQ^k8!-U_*L<A8XkBd at 6M;DFRW
z<wsx#J#@^Dr9OC{Dldbbs>)EYCvv{`{_{TTCjRCo<JWK9dFn6(_eCnnzZ8ATamO1p
zLWdEmp2hlH^SJGveY7y|l>8K$oRVi*vX;bK9pcFnQF{`^kP?edbcK{p<@<i`_D``D
zHY5A=6nMU!Mc)FZTsIUsN1ycGUoEV<zDRYcEiJM>1J<IH%YmHw621d{m+wFe3`EYs
z+9|XTo}+8f3HDUi4BrgXo at E>LMb5#xg@{UG4^Zq)ki_D!c;pk8hL?eydJXo#)E|*?
zE*SeRrz~4rH5%!Ho#Y8R75cA2AvBY%y`fC|aan(8akS^$+7|;k-2&Agk?T)My4e0n
zd*2)!SW^?k)H8a|d5n}>de1Bxz7N7+y8Ny}0bM at 41bNSLoD4tzvE92Z=FqiHtCabf
z-IL`grs_L(O?y#bPvop!)A?mJoeh at ZcOlrR>24&4BEx7saVm-5SGWOU`?=*x`Hp#i
zNuweou(lc5!*x>C8ES8X=)TAqw%)_YWfHcLvPn`#NNJ)zr|cOiN|xPPD!Zb*Y<H>b
z`E#YRM at nUTN@XXNmwmca_9)B#4<kPM1dSh2HUAz;(sE8PeUY=Yd at VGR1Iauq5gDOd
zilg8`NtT>7&{fP|iu}WDJQkcpD<Z=z*cTb at eSOjGTLz-%2VGwr^bC9+tZQ7~hud!L
z7+!}G4-I~d39I+al;Mt#(0)IC3Ny+;FMsC^9UJxU8ntQ~e^);2?73?6z{}+7{kiYD
z&vO6L`}&m4-_*AZ_RX$=V(8<V=P=K$de4noGk(fc*WTXK!O`P=0b~`<_R4Qokyo0J
z^-&7e48MaK-Hx>omxElBuFa$kEuS at F$*v at p+UxC&4N_|j>)uT6Zq44iv=l6CpRm2e
z7BiF9x}wPxcp~XoZhKbdMC2A{ZM56al4%XgcF~GGFNC6mp`|mHmd$0hCF3aNCKS?E
zu7G`Xd9KluP3Am#6cNQnb{piCbDNpGm8RnEWWGCU#Y{GrTM0H$*cZxOMu`Uuj&aGn
zmN!yeT0WUbL-ab-G^fQ}*4r-Fn7%umxi_t03z^TPsiO*Comqeyz<j_Gz&8M^0Ji|{
z0K@<(KmqUo;4#41jqpWm&Fkhl-e0EG<|m1EXAh4mSm8;cEwX&$%4J$xaVLwaBOB+7
zI1VUn$2}WjkIa?q6J5!?$#aD0z0vLTXR)xxbB02GndW2}ajnkw2`!ojWf$g!Ko9dc
zyd~quiXKn4Y8cxt)Yj?5F41;>wLRwb1<n*a^>>`;Dj!1y(d{5RmMNs->1!=5W;;Z)
zGFpdpNUMDuVk=Q1aInHUJEH35K|&(hi9;dwpYk?Q2MlBF=`Q4Q(e1HjCl1Fl-69%;
zC231!ar}gF8sD(4ZCw$e?BcmrJQHK*D4zCcMo*N-KLR}`Q^>^(aThEya<u4Dxa5IL
z9=POzOCGr7f&YIV;O2m}QZduqNGaf9A=3{#@sm#cyc56X#DC|+!%jTv#8a`TX8Eg~
zxWS2+Iq}U-9ChM?6Z0&XM<u+g!ZE76qv96R#NG0LeKwl8{^4MVcdQ2=!8tDJz`3St
z1QYLZxs&F-F9Sr0vpC;`N#ZzwM<l!h=6!Jgo?wXSM-cPAjQddDw=%|lBU6oh_(opi
zjUfKzZu@)&<ckWtGgk$kL7iR#{0wjc at LRx#06(^^Re-sG1%Ty%^?*)54)8EwAK)3l
zOMssNP5^!j_z>X7`++LJT)+Z=(kE87wl34^Hg;lhRL~ZM7lv^^Qjl2FJR2APOP<EY
z&mrh at F?}A3E>aNBB>Z9kzwAMFpPGx9_nz*%b(?Pix~t8%8*ReW0r1&5EN$PhvoGPK
z6i@(oE at w#E1F)Hb?Ek`d5I@`k$I&tbX8L`h#~Jx~Wgz^)iOcQi21%Q+SJEo at CLs{4
zz=lZpLlw_5Gc>V at QLy4UM8V)hzi+~KkgDKyz3<A$_*)U+z3>F86o&zRaT9)nK6zw|
zRDEY5nTp%L at p|6$#&7}E^uU6KhNgza4U28cd<)lI^~r at zOYrofGgcqV7wTi!#D+UA
zN`NC?iG~z`7aLkjhqfTx*c865QTTRdrIA~tk#FNy1JqmH+4 at +lsk>ui%c^kx|6HeU
zy03QHjLCs%v!+e=RrxA0mH2DK<jG%07M$)R(N;J)VlG^~NCc)WoBXxOt7m*;iXT(X
zgloiV_9EYOQ8{7bgg|Iks5Uf%bJN(IFC*74-)Z=Kzn?Z$;1v)%2f!zIyB&@J6XHdH
zU-aO24BH>vY9bu2&u`DijcmR?VWf>*61tq0gnnx0r7A3ty|%*7nKv-aH>ZBi4R_2*
zB<kz^6)-307ZrXEoWL33(EJmS-!4tQW?YlehEP>%L{=G6IJ^Q^`{vA<<Hzlv4>=rY
zf%(N8_K;R*e#)DfoTU}g_JIV>Q!HU;G36P4sSLK4@~4ddVq7;)e=W+w9e+->R!J4@
zaDw`l(t{5G=&mOKUOFAn4`8*Qa?wRNzr7pJBoJFUJ2q7cYH(~L!Z`Xd!Y#{J&$prp
z5l*BFVLq-9;rRA63fr-jvnkt*TplM>Wrz-1&Pb8pPGnP-2(uT6ux0e%S6;D)a~XN7
z95zfmVZecs2*<2UE)NBEbXN?5ASBw2{uEARP!K<1Da|g4>u40pba&&d46H_HA)!Ze
zd?rCD63rGmd017%lj*LEqG2DNGqx!VCkHUWE(MpUq$5r__;bX3FU5Yy&Mx1~0dao|
zWFG~MBNo at bl25*E13?3>g8D8jMh3?`<#CN-g6|)kJVf$~Lf%He at 0|4n*D%+kKr`}K
zmVrEkuK~D at p**f_b|9evxYnU<<f#O-0s;W?aV>NZ1g?QpATI;wezlI_8s?Yijcv$N
zdRd;Z3BYv^(_H&h<BppXGxai0iB2F5lFZ}U=@B68;7T6(h_kHX<65g9$Z>~{-#o>~
z^EBE at JsdZ8VrFeXS_P$-gG}*p?DT{0h^i!L<RkE%nBwER%4R6Lo(<`QN+;fhSn+Y3
z?m#ENnQ$>Ey?qWJeZaB$6!>N+BJxynzl-mA9Kb)1MW&*GR80Sg!^gIhZ!Yl`pg2Le
z_`c`j<7MoD3-JBG#m7t6gWwxa?-B6P$J8s|a)M92<3yG$Lpxpt&@bfUTZs`YLcH>b
z|Fw&cYwWY&D^7%<k%utk;xloRU~1#n_bu>IKlSpmISamOq*YKhoIr-F*#-GV6_bnh
zD_5H2>>SjW2`4C@{~K_(yrbZ&RZK40C$2Qf?}P9Au7WB#0ST2RU*DI at -!>{*wTJH$
z at P!o-<y2C0_|%xFgK<BkU?-4|@D+zo<(~v!vqBK7`c6lhK2|}yMu_VuzzHhJn0;P_
z^IsKWFFFv+6iWbX4~`{{aksqwg+iRDK&BIvJcYYs&cDR%SJ3twVjH(Lb3V0kTLb4!
z8 at GD{=SLg26>=W5arSf})SeBmfh5j(jfsHc4bERS&RW=eLL0~Ag24I6#yKN{Uc@<r
z!N1OGKH$9Y<vhatfP7_a&lfg+86&}Y!N%!1d;HrtTLt?KXRjELFJLjR7jaBF2x>1G
za7G5lC-Vc&j+f)m#`&@t-y at 788|RMK9#=L#Q{w6;;CbmBkT0YamGb%3EQLVXOiB7x
zB_dJ*fyu=c0>#(Wc4k0m#s1BlAl|o1L!C0j?Hbz|#3_;UC3Ae(#iKhG{pEwdmH}7(
z^5KiV5_neaw$MJ at UdTr*h<$kNoI=dEF6>Ff??Zgt#qZVsDCm1#`u77@?diivI1Jpa
z{{`UfPJi%2zqfvapsT?8{Q`(;KcD}L;v{fYU*VrFKJeh&T&n)y^H+<hz*T!|IN_KH
zTm_zQaEzZt{hmX*3ifdB=Nlr99O7GntNu(p;VIwa!Znn6%!5De!m01ifb)Av|MGqE
z4?Xn1@!%f;SL288kv|2_mkM_InL-}oKo$e#&vs2tvVOq%^5t8SK2>Z0&W8x9{1y*?
zw+G+G at -BOK0ayO4gg^HI=L?slBcJc5RiJ*Jhp9mP4G%uaHA#}b(1Ry{yWel`2cB}q
z?{xna;t+5?+ at g-@{wnbTa6bRK13263uYjvS`BkjA6NoSO;N2elFM#tM!DjfK@?Hln
zpN*j`-=81%@K?Czc*?&5_#=+J<ev?kF9%p`I>y(v9{y#(-SS&J^dxXTemQ~iwC7O|
z{Yl_AI^(O#KUKWop$`G)ySOXS4lMt-z}0+S#TB-*?RM>du_?}5g|04ag>}7k!@BkQ
zn$;Z}_{LptE5mMVb&=v3J(0?EMpL at n8R^kN4=zS|smM#xB}*1879{A&cn`6qLT;z@
zc%i#{yV4U`+a}elSl at DUL{}KqsB}q-+=fXleEmyXSFTyNyk(8PZpDg@$Oe5w%kni5
z+RU0^!-d;Y`5d?`Lp~oCdfV-5TW((6D!5^Do(|(4)_GCh+&s>^Vf-Ng*QfRsw;nh0
zv0PHVd4N9oE*S?r_8V<Socq=OANcnHy(_Dm{D*-1{rK2t1M(Wb^lE)v>l=k_oO55z
zz43T|P8jpXy1BXZm>MtdOU29oD8L5cA0;5P^v?u7(=R^j_8eH~c*|e(e7Rt_7?1PI
ztb?Sne~TE$5%y*L*gq#+z$K92`CGw-8C^B^JewG|%u-(KkNrQyxV#PMLh*bC{}oBc
zaUt)FIo1D*olBlnjIFdh9{GI#=NMNz-osO9 at nHuVu=odx at e7Qt8ro-E)&?oM{QoCP
zy!7JOe^87or%~X9#bqOWRC at A1)+JK3Q=<#XbM;gEPZ)BlDE-N#yaOs0dA?Kbt_#(@
xQIvOU`&~-$?=tRz!oTofl3LQVB+NM`8`CYbkiI+I*#j#s^v at pq9}u!r{5O?HQ5*mO

-- 
1.5.6.5



More information about the Telepathy-commits mailing list