diff options
author | Jonas Bonn <jonas@southpole.se> | 2010-03-05 23:42:05 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-05-27 22:32:35 +0800 |
commit | 2cf16f8c3b783ac09ed638633b34dffc50279106 (patch) | |
tree | 2695fcb9d2896ca1d2cade03d9727eb2e962bbef /libempathy/empathy-chatroom-manager.c | |
parent | 09969c342e7b887bdfc92ff52a6862ae0fe8fa3b (diff) | |
download | gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.tar gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.tar.gz gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.tar.bz2 gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.tar.lz gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.tar.xz gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.tar.zst gsoc2013-empathy-2cf16f8c3b783ac09ed638633b34dffc50279106.zip |
Add function ensure_chatroom to chatroom manager
This function tries to find an existing chatroom, but if it fails
to do so it creates a new room and returns that instead.
Diffstat (limited to 'libempathy/empathy-chatroom-manager.c')
-rw-r--r-- | libempathy/empathy-chatroom-manager.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libempathy/empathy-chatroom-manager.c b/libempathy/empathy-chatroom-manager.c index d5513caf1..cf3b75331 100644 --- a/libempathy/empathy-chatroom-manager.c +++ b/libempathy/empathy-chatroom-manager.c @@ -632,6 +632,28 @@ empathy_chatroom_manager_find (EmpathyChatroomManager *manager, return NULL; } +EmpathyChatroom * +empathy_chatroom_manager_ensure_chatroom (EmpathyChatroomManager *manager, + TpAccount *account, + const gchar *room, + const gchar *name) +{ + EmpathyChatroom *chatroom; + + chatroom = empathy_chatroom_manager_find (manager, account, room); + + if (chatroom) { + return g_object_ref(chatroom); + } else { + chatroom = empathy_chatroom_new_full (account, + room, + name, + FALSE); + empathy_chatroom_manager_add (manager, chatroom); + return chatroom; + } +} + GList * empathy_chatroom_manager_get_chatrooms (EmpathyChatroomManager *manager, TpAccount *account) |