00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#include "config.h"
00026
00027
#include <assert.h>
00028
00029
#include <qcstring.h>
00030
#include <qstring.h>
00031
00032
#include "kresolver.h"
00033
#include "kresolver_p.h"
00034
#include "kresolverworkerbase.h"
00035
00036
using namespace KNetwork;
00037
using namespace KNetwork::Internal;
00038
00039 KResolverWorkerBase::KResolverWorkerBase()
00040 : th(0L), input(0L), m_finished(0), m_reserved(0)
00041 {
00042 }
00043
00044 KResolverWorkerBase::~KResolverWorkerBase()
00045 {
00046 }
00047
00048
QString KResolverWorkerBase::nodeName()
const
00049
{
00050
if (input)
00051
return input->node;
00052
return QString::null;
00053 }
00054
00055
QString KResolverWorkerBase::serviceName()
const
00056
{
00057
if (input)
00058
return input->service;
00059
return QString::null;
00060 }
00061
00062
int KResolverWorkerBase::flags()
const
00063
{
00064
if (input)
00065
return input->flags;
00066
return 0;
00067 }
00068
00069
int KResolverWorkerBase::familyMask()
const
00070
{
00071
if (input)
00072
return input->familyMask;
00073
return 0;
00074 }
00075
00076
int KResolverWorkerBase::socketType()
const
00077
{
00078
if (input)
00079
return input->socktype;
00080
return 0;
00081 }
00082
00083
int KResolverWorkerBase::protocol()
const
00084
{
00085
if (input)
00086
return input->protocol;
00087
return 0;
00088 }
00089
00090
QCString KResolverWorkerBase::protocolName()
const
00091
{
00092
QCString res;
00093
if (input)
00094 res = input->protocolName;
00095
return res;
00096 }
00097
00098
void KResolverWorkerBase::finished()
00099 {
00100 m_finished =
true;
00101 }
00102
00103
bool KResolverWorkerBase::postprocess()
00104 {
00105
return true;
00106 }
00107
00108
bool KResolverWorkerBase::enqueue(KResolverWorkerBase* worker)
00109 {
00110 RequestData *myself = th->data;
00111 RequestData *newrequest =
new RequestData;
00112 newrequest->obj = 0;
00113 newrequest->input = input;
00114 newrequest->requestor = myself;
00115 newrequest->nRequests = 0;
00116 newrequest->worker = worker;
00117 myself->nRequests++;
00118 KResolverManager::manager()->dispatch(newrequest);
00119
return true;
00120 }
00121
00122
bool KResolverWorkerBase::checkResolver()
00123 {
00124 assert(th != 0L);
00125
return th->checkResolver();
00126 }
00127
00128
void KResolverWorkerBase::acquireResolver()
00129 {
00130 assert(th != 0L);
00131 th->acquireResolver();
00132 }
00133
00134
void KResolverWorkerBase::releaseResolver()
00135 {
00136 assert(th != 0L);
00137 th->releaseResolver();
00138 }
00139
00140
void KResolverWorkerFactoryBase::registerNewWorker(KResolverWorkerFactoryBase* factory)
00141 {
00142 KResolverManager::manager()->registerNewWorker(factory);
00143 }
00144