/* Copyright 2008,2009,2010 Edwin Eefting (edwin@datux.nl)
This file is part of Synapse.
Synapse 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 3 of the License, or
(at your option) any later version.
Synapse 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 Synapse. If not, see . */
#ifndef CCALLMAN_H
#define CCALLMAN_H
#include "cmsg.h"
#include "csession.h"
#include "ccall.h"
/**
@author
*/
namespace synapse
{
typedef list CcallList;
class CcallMan{
public:
CcallMan();
~CcallMan();
void addCall(const CmsgPtr & msg, const CsessionPtr & dst, FsoHandler soHandler);
CcallList::iterator startCall(const CthreadPtr & threadPtr);
void endCall(CcallList::iterator callI);
bool interruptCall(string event, int src, int dst);
bool interruptAll();
void getStatus(Cvar & var);
int statCallsTotal; //total calls processed
int statCallsQueued;//current length of queued calls
int statCallsQueuedMax; //maximum length of queued calls
CcallList callList;
};
}
#endif