/** * XMPP - libpurple transport * * Copyright (C) 2009, Jan Kaluza <hanzz@soc.pidgin.im> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */#include"transport/localbuddy.h"#include"transport/user.h"namespaceTransport{LocalBuddy::LocalBuddy(RosterManager*rosterManager,longid,conststd::string&name,conststd::string&alias,conststd::vector<std::string>&groups,BuddyFlagflags):Buddy(rosterManager,id,flags){m_status=Swift::StatusShow::None;m_alias=alias;m_name=name;m_groups=groups;try{generateJID();}catch(...){}}LocalBuddy::~LocalBuddy(){}boolLocalBuddy::setName(conststd::string&name){if(name==m_name){returntrue;}std::stringoldName=name;m_name=name;try{generateJID();returnm_jid.isValid();}catch(...){m_name=oldName;returnfalse;}}voidLocalBuddy::setAlias(conststd::string&alias){boolchanged=m_alias!=alias;m_alias=alias;if(changed){if(getRosterManager()->getUser()->getComponent()->inServerMode()||getRosterManager()->isRemoteRosterSupported()){getRosterManager()->sendBuddyRosterPush(this);}getRosterManager()->storeBuddy(this);}}voidLocalBuddy::setGroups(conststd::vector<std::string>&groups){boolchanged=m_groups.size()!=groups.size();if(!changed){for(inti=0;i!=m_groups.size();i++){if(m_groups[i]!=groups[i]){changed=true;break;}}}m_groups=groups;if(changed){if(getRosterManager()->getUser()->getComponent()->inServerMode()||getRosterManager()->isRemoteRosterSupported()){getRosterManager()->sendBuddyRosterPush(this);}getRosterManager()->storeBuddy(this);}}}