/* 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 . */
#include "csession.h"
#include "cuser.h"
#include "cmodule.h"
#include
namespace synapse
{
Csession::Csession(const CuserPtr &user, const CmodulePtr &module, int cookie)
{
this->user=user;
this->module=module;
this->cookie=cookie;
id=SESSION_DISABLED;
maxThreads=1;
currentThreads=0;
statCalls=0;
statSends=0;
}
Csession::~Csession()
{
}
/*!
\fn Csession::isEnabled()
*/
bool Csession::isEnabled()
{
return (id!=SESSION_DISABLED);
}
/*!
\fn Csession::startThread()
*/
bool Csession::startThread()
{
if (currentThreadsstartThread())
{
currentThreads++;
statCalls++;
return true;
}
}
return false;
}
/*!
\fn Csession::endThread()
*/
void Csession::endThread()
{
module->endThread();
currentThreads--;
assert(currentThreads>=0);
}
}