⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sflrequest.cpp

📁 sip 开源代码 源于novell sip 开源代码 源于novell
💻 CPP
字号:
/** *  Copyright (C) 2004-2005 Savoir-Faire Linux inc. *  Author: Jean-Philippe Barrette-LaPierre *             <jean-philippe.barrette-lapierre@savoirfairelinux.com> *                                                                               *  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., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <iostream>#include <memory> // for std::auto_ptr#include <sstream>#include <string>#include <qstring.h>#include "globals.h"#include "CallManager.hpp"#include "CallStatus.hpp"#include "CallStatusFactory.hpp"#include "EventAccount.hpp"#include "ConfigurationManager.hpp"#include "PhoneLine.hpp"#include "PhoneLineLocker.hpp"#include "PhoneLineManager.hpp"#include "SFLRequest.hpp"#include "EventAccount.hpp"EventRequest::EventRequest(const QString &sequenceId,			   const QString &command,			   const std::list< QString > &args)  : Request(sequenceId, command, args){}voidEventRequest::onError(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("EventRequest error: (%1) %1\n")    .arg(code)    .arg(message);  PhoneLineManager::instance().errorOnGetEvents(message);}voidEventRequest::onEntry(const QString &code, const QString &message){  std::auto_ptr< Event >     e(EventFactory::instance().create(code, Request::parseArgs(message)));  e->execute();}voidEventRequest::onSuccess(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("EventRequest success: (%1) %1\n")    .arg(code)    .arg(message);  PhoneLineManager::instance().connect();}CallStatusRequest::CallStatusRequest(const QString &sequenceId,				     const QString &command,				     const std::list< QString > &args)  : Request(sequenceId, command, args){}voidCallStatusRequest::onError(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("CallStatusRequest error: (%1) %1\n")    .arg(code)    .arg(message);  PhoneLineManager::instance().errorOnCallStatus(message);}voidCallStatusRequest::onEntry(const QString &code, const QString &message){  std::auto_ptr< Event >     e(EventFactory::instance().create(code, Request::parseArgs(message)));  e->execute();}voidCallStatusRequest::onSuccess(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("CallStatusRequest success: (%1) %1\n")    .arg(code)    .arg(message);  if(code == "206") {    std::list< QString > args = Request::parseArgs(message);    if(args.size() >= 2) {      PhoneLineManager::instance().selectLine(*args.begin(), true);    }    else {      DebugOutput::instance() << QObject::tr("CallStatusRequest Error: cannot get current line.\n");    }  }  PhoneLineManager::instance().emitReadyToShow();}AccountStatusRequest::AccountStatusRequest(const QString &sequenceId,				     const QString &command,				     const std::list< QString > &args)  : Request(sequenceId, command, args){}voidAccountStatusRequest::onError(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("AccountStatusRequest error: (%1) %1\n")    .arg(code)    .arg(message);  PhoneLineManager::instance().slotHasEnabledAccount(false);}voidAccountStatusRequest::onEntry(const QString &code, const QString &message){  DebugOutput::instance() << "AccountStatusRequest: " << code << " : " << message << "\n";  std::auto_ptr< Event >     e(EventFactory::instance().create(code, Request::parseArgs(message)));  e->execute();}voidAccountStatusRequest::onSuccess(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("AccountStatusRequest success: (%1) %1\n").arg(code).arg(message);  PhoneLineManager::instance().slotHasEnabledAccount(true);}PermanentRequest::PermanentRequest(const QString &sequenceId,			 const QString &command,			 const std::list< QString > &args)  : CallRelatedRequest(sequenceId, command, args){}voidPermanentRequest::onError(Call call, 		     const QString &, 		     const QString &message){  DebugOutput::instance() << QObject::tr("PermanentRequest: Error: %1").arg(toString());  PhoneLine *line = PhoneLineManager::instance().getLine(call);  if(line) {    PhoneLineLocker guard(line, false);    line->error(message);    line->setAction("");  }  else {    DebugOutput::instance() <<       QObject::tr("We received an error on a call "		  "that doesn't have a phone line (%1).\n")      .arg(call.id());  }}voidPermanentRequest::onEntry(Call call, 			    const QString &, 			    const QString &message){  PhoneLine *line = PhoneLineManager::instance().getLine(call);  if(line) {    PhoneLineLocker guard(line, false);    line->setLineStatus(message);    line->setAction("");  }  else {    DebugOutput::instance() <<       QObject::tr("We received a status on a call related request "		  "that doesn't have a phone line (%1).\n")      .arg(call.id());  }}voidPermanentRequest::onSuccess(Call call, 			    const QString &, 			    const QString &message){  PhoneLine *line = PhoneLineManager::instance().getLine(call);  if(line) {    PhoneLineLocker guard(line, false);    line->setLineStatus(message);    line->setAction("");  }  else {    DebugOutput::instance() <<       QObject::tr("We received a success on a call related request "		  "that doesn't have a phone line (%1).\n")      .arg(call.id());  }}TemporaryRequest::TemporaryRequest(const QString &sequenceId,				   const QString &command,				   const std::list< QString > &args)  : CallRelatedRequest(sequenceId, command, args){}voidTemporaryRequest::onError(Call call, 			  const QString &code, 			  const QString &message){  onSuccess(call, code, message);}voidTemporaryRequest::onEntry(Call call, 			  const QString &code,			  const QString &message){  onSuccess(call, code, message);}voidTemporaryRequest::onSuccess(Call call, 			    const QString &, 			    const QString &message){  PhoneLine *line = PhoneLineManager::instance().getLine(call);  if(line) {    PhoneLineLocker guard(line, false);    line->setTempAction(message);  }  else {    DebugOutput::instance() <<       QObject::tr("We received an answer on a temporary call "		  "related request that doesn't have a phone "		  "line (%1).\n")      .arg(call.id());  }}CallRequest::CallRequest(const QString &sequenceId,			 const QString &command,			 const std::list< QString > &args)  : AccountRequest(sequenceId, command, args){    std::list< QString >::const_iterator pos = args.begin();  pos++;  mCallId = *pos;}voidCallRequest::onError(Account, 		     const QString &, 		     const QString &message){  if(CallManager::instance().exist(mCallId)) {    PhoneLine *line =       PhoneLineManager::instance().getLine(CallManager::instance().getCall(mCallId));    if(line) {      PhoneLineLocker guard(line, false);      line->error(message);    }    else {      DebugOutput::instance() << 	QObject::tr("We received an error on a call "		    "that doesn't have a phone line (%1).\n")	.arg(mCallId);    }  }  else {    DebugOutput::instance() << QObject::tr("CallRequest: Trying to retreive an unregistred call (%1)\n").arg(mCallId);  }}voidCallRequest::onEntry(Account, 		     const QString &, 		     const QString &message){  if(CallManager::instance().exist(mCallId)) {    PhoneLine *line =       PhoneLineManager::instance().getLine(CallManager::instance().getCall(mCallId));    if(line) {      PhoneLineLocker guard(line, false);      line->setLineStatus(message);    }    else {      DebugOutput::instance() << 	QObject::tr("We received a status on a call related request "		    "that doesn't have a phone line (%1).\n")	.arg(mCallId);    }  }  else {    DebugOutput::instance() << QObject::tr("CallRequest: Trying to retreive an unregistred call (%1)\n").arg(mCallId);  }}voidCallRequest::onSuccess(Account, 		       const QString &, 		       const QString &message){  if(CallManager::instance().exist(mCallId)) {    PhoneLine *line =       PhoneLineManager::instance().getLine(CallManager::instance().getCall(mCallId));    if(line) {      PhoneLineLocker guard(line, false);      line->setLineStatus(message);    }    else {      DebugOutput::instance() <<	QObject::tr("We received a success on a call related request "		    "that doesn't have a phone line (%1).\n")	.arg(mCallId);    }  }  else {    DebugOutput::instance() << QObject::tr("CallRequest: Trying to retreive an unregistred call (%1)\n").arg(mCallId);  }}ConfigGetAllRequest::ConfigGetAllRequest(const QString &sequenceId,					 const QString &command,					 const std::list< QString > &args)  : Request(sequenceId, command, args){}voidConfigGetAllRequest::onError(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("ConfigGetAllRequest error: (%1) %1\n")    .arg(code)    .arg(message);}voidConfigGetAllRequest::onEntry(const QString &, const QString &message){  std::list< QString > args = Request::parseArgs(message);  if(args.size() >= 3) {    QString section, variable, type, def, val;    section = *args.begin();    args.pop_front();    variable = *args.begin();    args.pop_front();    type = *args.begin();    args.pop_front();    if(args.size() >= 1) {      val = *args.begin();      args.pop_front();    }    if(args.size() >= 1) {      def = *args.begin();      args.pop_front();    }    ConfigurationManager::instance().add(ConfigEntry(section, variable, type, def, val));  }}voidConfigGetAllRequest::onSuccess(const QString &, const QString &){  ConfigurationManager::instance().complete();}ConfigSaveRequest::ConfigSaveRequest(const QString &sequenceId,				     const QString &command,				     const std::list< QString > &args)  : Request(sequenceId, command, args){}voidConfigSaveRequest::onError(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("ConfigSaveRequest error: (%1) %1\n")    .arg(code)    .arg(message);}voidConfigSaveRequest::onSuccess(const QString &, const QString &){  ConfigurationManager::instance().finishSave();}StopRequest::StopRequest(const QString &sequenceId,			 const QString &command,			 const std::list< QString > &args)  : Request(sequenceId, command, args){}voidStopRequest::onError(const QString &code, const QString &message){  DebugOutput::instance() << QObject::tr("StopRequest error: (%1) %1\n")    .arg(code)    .arg(message);}voidStopRequest::onSuccess(const QString &, const QString &){  PhoneLineManager::instance().finishStop();}SignalizedRequest::SignalizedRequest(const QString &sequenceId,				     const QString &command,				     const std::list< QString > &args)  : Request(sequenceId, command, args){}voidSignalizedRequest::onError(const QString &code, 			   const QString &message){  emit error(message, code);}voidSignalizedRequest::onEntry(const QString &code,			   const QString &message){  emit entry(message, code);}voidSignalizedRequest::onSuccess(const QString &code, 			     const QString &message){  emit success(message, code);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -