#include <errno.h>
#ifdef WIN32
# include <io.h>
#endif
#include "TQueryResultManager.h"
#include "TFile.h"
#include "THashList.h"
#include "TKey.h"
#include "TProofQueryResult.h"
#include "TObjString.h"
#include "TParameter.h"
#include "TProof.h"
#include "TProofServ.h"
#include "TRegexp.h"
#include "TSortedList.h"
#include "TSystem.h"
#include "TVirtualProofPlayer.h"
TQueryResultManager::TQueryResultManager(const char *qdir, const char *stag,
const char *sdir,
TProofLockPath *lck, FILE *logfile)
{
fQueryDir = qdir;
fSessionTag = stag;
fSessionDir = sdir;
fSeqNum = 0;
fDrawQueries = 0;
fKeptQueries = 0;
fQueries = new TList;
fPreviousQueries = 0;
fLock = lck;
fLogFile = (logfile) ? logfile : stdout;
}
TQueryResultManager::~TQueryResultManager()
{
SafeDelete(fQueries);
SafeDelete(fPreviousQueries);
}
void TQueryResultManager::AddLogFile(TProofQueryResult *pq)
{
if (!pq)
return;
fflush(fLogFile);
off_t lnow = 0;
if ((lnow = lseek(fileno(fLogFile), (off_t) 0, SEEK_CUR)) < 0) {
Error("AddLogFile", "problems lseeking current position on log file (errno: %d)", errno);
return;
}
Int_t start = pq->fStartLog;
if (start > -1)
lseek(fileno(fLogFile), (off_t) start, SEEK_SET);
const Int_t kMAXBUF = 4096;
char line[kMAXBUF];
while (fgets(line, sizeof(line), fLogFile)) {
if (line[strlen(line)-1] == '\n')
line[strlen(line)-1] = 0;
pq->AddLogLine((const char *)line);
}
if (lnow >= 0) lseek(fileno(fLogFile), lnow, SEEK_SET);
}
Int_t TQueryResultManager::CleanupQueriesDir()
{
Int_t nd = 0;
if (fPreviousQueries) {
fPreviousQueries->Delete();
SafeDelete(fPreviousQueries);
}
TString queriesdir = fQueryDir;
queriesdir = queriesdir.Remove(queriesdir.Index(kPROOF_QueryDir) +
strlen(kPROOF_QueryDir));
void *dirs = gSystem->OpenDirectory(queriesdir);
if (dirs) {
char *sess = 0;
while ((sess = (char *) gSystem->GetDirEntry(dirs))) {
if (strlen(sess) < 7 || strncmp(sess,"session",7))
continue;
if (strstr(sess, fSessionTag))
continue;
TString qdir;
qdir.Form("%s/%s", queriesdir.Data(), sess);
PDB(kGlobal, 1)
Info("RemoveQuery", "removing directory: %s", qdir.Data());
gSystem->Exec(Form("%s %s", kRM, qdir.Data()));
nd++;
}
gSystem->FreeDirectory(dirs);
} else {
Warning("RemoveQuery", "cannot open queries directory: %s", queriesdir.Data());
}
return nd;
}
void TQueryResultManager::ScanPreviousQueries(const char *dir)
{
if (fPreviousQueries) {
fPreviousQueries->Delete();
SafeDelete(fPreviousQueries);
}
void *dirs = gSystem->OpenDirectory(dir);
char *sess = 0;
while ((sess = (char *) gSystem->GetDirEntry(dirs))) {
if (strlen(sess) < 7 || strncmp(sess,"session",7))
continue;
if (strstr(sess, fSessionTag))
continue;
void *dirq = gSystem->OpenDirectory(Form("%s/%s", dir, sess));
char *qry = 0;
while ((qry = (char *) gSystem->GetDirEntry(dirq))) {
if (qry[0] == '.')
continue;
TString fn = Form("%s/%s/%s/query-result.root", dir, sess, qry);
TFile *f = TFile::Open(fn);
if (f) {
f->ReadKeys();
TIter nxk(f->GetListOfKeys());
TKey *k = 0;
TProofQueryResult *pqr = 0;
while ((k = (TKey *)nxk())) {
if (!strcmp(k->GetClassName(), "TProofQueryResult")) {
pqr = (TProofQueryResult *) f->Get(k->GetName());
if (pqr) {
TQueryResult *qr = pqr->CloneInfo();
if (qr) {
if (!fPreviousQueries)
fPreviousQueries = new TList;
if (qr->GetStatus() > TQueryResult::kRunning) {
fPreviousQueries->Add(qr);
} else {
TProofLockPath *lck = 0;
if (LockSession(qr->GetTitle(), &lck) == 0) {
RemoveQuery(qr);
SafeDelete(lck);
}
}
} else {
Warning("ScanPreviousQueries", "unable to clone TProofQueryResult '%s:%s'",
pqr->GetName(), pqr->GetTitle());
}
}
}
}
f->Close();
delete f;
}
}
gSystem->FreeDirectory(dirq);
}
gSystem->FreeDirectory(dirs);
}
Int_t TQueryResultManager::ApplyMaxQueries(Int_t mxq)
{
if (mxq < 0)
return 0;
TSortedList *sl = new TSortedList;
sl->SetOwner();
THashList *hl = new THashList;
hl->SetOwner();
TList *dl = new TList;
dl->SetOwner();
TString dir = fQueryDir;
Int_t idx = dir.Index("session-");
if (idx != kNPOS)
dir.Remove(idx);
void *dirs = gSystem->OpenDirectory(dir);
char *sess = 0;
while ((sess = (char *) gSystem->GetDirEntry(dirs))) {
if (strlen(sess) < 7 || strncmp(sess,"session",7))
continue;
if (strstr(sess, fSessionTag))
continue;
Int_t nq = 0;
void *dirq = gSystem->OpenDirectory(Form("%s/%s", dir.Data(), sess));
char *qry = 0;
while ((qry = (char *) gSystem->GetDirEntry(dirq))) {
if (qry[0] == '.')
continue;
TString fn = Form("%s/%s/%s/query-result.root", dir.Data(), sess, qry);
FileStat_t st;
if (gSystem->GetPathInfo(fn, st)) {
PDB(kGlobal, 1)
Info("ApplyMaxQueries","file '%s' cannot be stated: remove it", fn.Data());
gSystem->Unlink(gSystem->DirName(fn));
continue;
}
sl->Add(new TObjString(TString::Format("%ld", st.fMtime)));
hl->Add(new TNamed((const char*)TString::Format("%ld",st.fMtime), fn.Data()));
nq++;
}
gSystem->FreeDirectory(dirq);
if (nq > 0)
dl->Add(new TParameter<Int_t>(TString::Format("%s/%s", dir.Data(), sess), nq));
else
gSystem->Exec(TString::Format("%s -fr %s/%s", kRM, dir.Data(), sess));
}
gSystem->FreeDirectory(dirs);
TIter nxq(sl, kIterBackward);
Int_t nqkept = 0;
TObjString *os = 0;
while ((os = (TObjString *)nxq())) {
if (nqkept < mxq) {
nqkept++;
} else {
TNamed *nm = dynamic_cast<TNamed *>(hl->FindObject(os->GetName()));
if (nm) {
gSystem->Unlink(nm->GetTitle());
TString tdir(gSystem->DirName(nm->GetTitle()));
tdir = gSystem->DirName(tdir.Data());
TParameter<Int_t> *nq = dynamic_cast<TParameter<Int_t>*>(dl->FindObject(tdir));
if (nq) {
Int_t val = nq->GetVal();
nq->SetVal(--val);
if (nq->GetVal() <= 0)
gSystem->Exec(Form("%s -fr %s", kRM, tdir.Data()));
}
}
}
}
delete sl;
delete hl;
delete dl;
return 0;
}
Int_t TQueryResultManager::LockSession(const char *sessiontag, TProofLockPath **lck)
{
if (strstr(sessiontag, fSessionTag))
return 0;
if (!lck) {
Error("LockSession","locker space undefined");
return -1;
}
*lck = 0;
TString stag = sessiontag;
TRegexp re("session-.*-.*-.*-.*");
Int_t i1 = stag.Index(re);
if (i1 == kNPOS) {
Error("LockSession","bad format: %s", sessiontag);
return -1;
}
stag.ReplaceAll("session-","");
Int_t i2 = stag.Index(":q");
if (i2 != kNPOS)
stag.Remove(i2);
TString parlog = fSessionDir;
parlog = parlog.Remove(parlog.Index("master-")+strlen("master-"));
parlog += stag;
if (!gSystem->AccessPathName(parlog)) {
PDB(kGlobal, 1)
Info("LockSession", "parent still running: do nothing");
return -1;
}
if (fLock) {
TString qlock = fLock->GetName();
qlock.ReplaceAll(fSessionTag, stag);
if (!gSystem->AccessPathName(qlock)) {
*lck = new TProofLockPath(qlock);
if (((*lck)->Lock()) < 0) {
Error("LockSession","problems locking query lock file");
SafeDelete(*lck);
return -1;
}
}
}
return 0;
}
Int_t TQueryResultManager::CleanupSession(const char *sessiontag)
{
if (!sessiontag) {
Error("CleanupSession","session tag undefined");
return -1;
}
TString qdir = fQueryDir;
qdir.ReplaceAll(Form("session-%s", fSessionTag.Data()), sessiontag);
Int_t idx = qdir.Index(":q");
if (idx != kNPOS)
qdir.Remove(idx);
if (gSystem->AccessPathName(qdir)) {
Info("CleanupSession","query dir %s does not exist", qdir.Data());
return -1;
}
TProofLockPath *lck = 0;
if (LockSession(sessiontag, &lck) == 0) {
gSystem->Exec(Form("%s %s", kRM, qdir.Data()));
if (lck) {
gSystem->Unlink(lck->GetName());
SafeDelete(lck);
}
return 0;
}
Info("CleanupSession", "could not lock session %s", sessiontag);
return -1;
}
void TQueryResultManager::SaveQuery(TProofQueryResult *qr, const char *fout)
{
if (!qr || qr->IsDraw())
return;
TString querydir = Form("%s/%d",fQueryDir.Data(), qr->GetSeqNum());
if (gSystem->AccessPathName(querydir))
gSystem->MakeDirectory(querydir);
TString ofn = fout ? fout : Form("%s/query-result.root", querydir.Data());
TFile *f = TFile::Open(ofn, "RECREATE");
if (f) {
f->cd();
if (!(qr->IsArchived()))
qr->SetResultFile(ofn);
qr->Write();
f->Close();
delete f;
}
}
void TQueryResultManager::RemoveQuery(const char *queryref, TList *otherlist)
{
PDB(kGlobal, 1)
Info("RemoveQuery", "Enter");
Int_t qry = -1;
TString qdir;
TProofQueryResult *pqr = LocateQuery(queryref, qry, qdir);
if (pqr) {
if (qry > -1) {
fQueries->Remove(pqr);
if (otherlist) otherlist->Add(pqr);
} else
fPreviousQueries->Remove(pqr);
delete pqr;
pqr = 0;
}
PDB(kGlobal, 1)
Info("RemoveQuery", "removing directory: %s", qdir.Data());
gSystem->Exec(Form("%s %s", kRM, qdir.Data()));
return;
}
void TQueryResultManager::RemoveQuery(TQueryResult *qr, Bool_t soft)
{
PDB(kGlobal, 1)
Info("RemoveQuery", "Enter");
if (!qr)
return;
TString qdir = fQueryDir;
qdir = qdir.Remove(qdir.Index(kPROOF_QueryDir)+strlen(kPROOF_QueryDir));
qdir = Form("%s/%s/%d", qdir.Data(), qr->GetTitle(), qr->GetSeqNum());
PDB(kGlobal, 1)
Info("RemoveQuery", "removing directory: %s", qdir.Data());
gSystem->Exec(Form("%s %s", kRM, qdir.Data()));
if (soft) {
TQueryResult *qrn = qr->CloneInfo();
Int_t idx = fQueries->IndexOf(qr);
if (idx > -1)
fQueries->AddAt(qrn, idx);
else
SafeDelete(qrn);
}
fQueries->Remove(qr);
SafeDelete(qr);
return;
}
TProofQueryResult *TQueryResultManager::LocateQuery(TString queryref, Int_t &qry, TString &qdir)
{
TProofQueryResult *pqr = 0;
qry = -1;
if (queryref.IsDigit()) {
qry = queryref.Atoi();
} else if (queryref.Contains(fSessionTag)) {
Int_t i1 = queryref.Index(":q");
if (i1 != kNPOS) {
queryref.Remove(0,i1+2);
qry = queryref.Atoi();
}
}
qdir = "";
if (qry > -1) {
PDB(kGlobal, 1)
Info("LocateQuery", "local query: %d", qry);
if (fQueries) {
TIter nxq(fQueries);
while ((pqr = (TProofQueryResult *) nxq())) {
if (pqr->GetSeqNum() == qry) {
qdir = Form("%s/%d", fQueryDir.Data(), qry);
break;
}
}
}
} else {
PDB(kGlobal, 1)
Info("LocateQuery", "previously processed query: %s", queryref.Data());
if (fPreviousQueries) {
TIter nxq(fPreviousQueries);
while ((pqr = (TProofQueryResult *) nxq())) {
if (queryref.Contains(pqr->GetTitle()) &&
queryref.Contains(pqr->GetName()))
break;
}
}
queryref.ReplaceAll(":q","/");
qdir = fQueryDir;
qdir = qdir.Remove(qdir.Index(kPROOF_QueryDir)+strlen(kPROOF_QueryDir));
qdir = Form("%s/%s", qdir.Data(), queryref.Data());
}
return pqr;
}
Bool_t TQueryResultManager::FinalizeQuery(TProofQueryResult *pq,
TProof *proof, TVirtualProofPlayer *player)
{
if (!pq || !proof || !player) {
Warning("FinalizeQuery", "bad inputs: query = %p, proof = %p, player: %p ",
pq ? pq : 0, proof ? proof : 0, player ? player : 0);
return kFALSE;
}
Int_t qn = pq->GetSeqNum();
Long64_t np = player->GetEventsProcessed();
TVirtualProofPlayer::EExitStatus est = player->GetExitStatus();
TList *out = player->GetOutputList();
Float_t cpu = proof->GetCpuTime();
Long64_t bytes = proof->GetBytesRead();
TQueryResult::EQueryStatus st = TQueryResult::kAborted;
PDB(kGlobal, 2) Info("FinalizeQuery","query #%d", qn);
PDB(kGlobal, 1)
Info("FinalizeQuery","%.1f %lld", cpu, bytes);
Bool_t save = kTRUE;
switch (est) {
case TVirtualProofPlayer::kAborted:
PDB(kGlobal, 1)
Info("FinalizeQuery", "query %d has been ABORTED <====", qn);
out = 0;
save = kFALSE;
break;
case TVirtualProofPlayer::kStopped:
PDB(kGlobal, 1)
Info("FinalizeQuery",
"query %d has been STOPPED: %lld events processed", qn, np);
st = TQueryResult::kStopped;
break;
case TVirtualProofPlayer::kFinished:
PDB(kGlobal, 1)
Info("FinalizeQuery",
"query %d has been completed: %lld events processed", qn, np);
st = TQueryResult::kCompleted;
break;
default:
Warning("FinalizeQuery",
"query %d: unknown exit status (%d)", qn, player->GetExitStatus());
}
PDB(kGlobal, 1)
Info("FinalizeQuery", "cpu: %.4f, saved: %.4f, master: %.4f",
cpu, pq->GetUsedCPU() ,GetCpuTime());
pq->SetProcessInfo(np, cpu - pq->GetUsedCPU());
pq->RecordEnd(st, out);
AddLogFile(pq);
return save;
}
void TQueryResultManager::SaveQuery(TProofQueryResult *pq, Int_t mxq)
{
if (mxq > -1) {
if (fQueries && fKeptQueries >= mxq) {
TQueryResult *fcom = 0;
TQueryResult *farc = 0;
TIter nxq(fQueries);
TQueryResult *qr = 0;
while (fKeptQueries >= mxq) {
while ((qr = (TQueryResult *) nxq())) {
if (qr->IsArchived()) {
if (qr->GetOutputList() && !farc)
farc = qr;
} else if (qr->GetStatus() > TQueryResult::kRunning && !fcom) {
fcom = qr;
}
if (farc && fcom)
break;
}
if (!farc && !fcom) {
break;
} else if (farc) {
RemoveQuery(farc, kTRUE);
fKeptQueries--;
farc = 0;
} else if (fcom) {
RemoveQuery(fcom);
fKeptQueries--;
fcom = 0;
}
}
}
if (fKeptQueries < mxq) {
SaveQuery(pq);
fKeptQueries++;
} else {
TString emsg;
emsg.Form("Too many saved queries (%d): cannot save %s:%s",
fKeptQueries, pq->GetTitle(), pq->GetName());
if (gProofServ) {
gProofServ->SendAsynMessage(emsg.Data());
} else {
Warning("SaveQuery", "%s", emsg.Data());
}
}
} else {
SaveQuery(pq);
fKeptQueries++;
}
}
TQueryResultManager.cxx:1 TQueryResultManager.cxx:2 TQueryResultManager.cxx:3 TQueryResultManager.cxx:4 TQueryResultManager.cxx:5 TQueryResultManager.cxx:6 TQueryResultManager.cxx:7 TQueryResultManager.cxx:8 TQueryResultManager.cxx:9 TQueryResultManager.cxx:10 TQueryResultManager.cxx:11 TQueryResultManager.cxx:12 TQueryResultManager.cxx:13 TQueryResultManager.cxx:14 TQueryResultManager.cxx:15 TQueryResultManager.cxx:16 TQueryResultManager.cxx:17 TQueryResultManager.cxx:18 TQueryResultManager.cxx:19 TQueryResultManager.cxx:20 TQueryResultManager.cxx:21 TQueryResultManager.cxx:22 TQueryResultManager.cxx:23 TQueryResultManager.cxx:24 TQueryResultManager.cxx:25 TQueryResultManager.cxx:26 TQueryResultManager.cxx:27 TQueryResultManager.cxx:28 TQueryResultManager.cxx:29 TQueryResultManager.cxx:30 TQueryResultManager.cxx:31 TQueryResultManager.cxx:32 TQueryResultManager.cxx:33 TQueryResultManager.cxx:34 TQueryResultManager.cxx:35 TQueryResultManager.cxx:36 TQueryResultManager.cxx:37 TQueryResultManager.cxx:38 TQueryResultManager.cxx:39 TQueryResultManager.cxx:40 TQueryResultManager.cxx:41 TQueryResultManager.cxx:42 TQueryResultManager.cxx:43 TQueryResultManager.cxx:44 TQueryResultManager.cxx:45 TQueryResultManager.cxx:46 TQueryResultManager.cxx:47 TQueryResultManager.cxx:48 TQueryResultManager.cxx:49 TQueryResultManager.cxx:50 TQueryResultManager.cxx:51 TQueryResultManager.cxx:52 TQueryResultManager.cxx:53 TQueryResultManager.cxx:54 TQueryResultManager.cxx:55 TQueryResultManager.cxx:56 TQueryResultManager.cxx:57 TQueryResultManager.cxx:58 TQueryResultManager.cxx:59 TQueryResultManager.cxx:60 TQueryResultManager.cxx:61 TQueryResultManager.cxx:62 TQueryResultManager.cxx:63 TQueryResultManager.cxx:64 TQueryResultManager.cxx:65 TQueryResultManager.cxx:66 TQueryResultManager.cxx:67 TQueryResultManager.cxx:68 TQueryResultManager.cxx:69 TQueryResultManager.cxx:70 TQueryResultManager.cxx:71 TQueryResultManager.cxx:72 TQueryResultManager.cxx:73 TQueryResultManager.cxx:74 TQueryResultManager.cxx:75 TQueryResultManager.cxx:76 TQueryResultManager.cxx:77 TQueryResultManager.cxx:78 TQueryResultManager.cxx:79 TQueryResultManager.cxx:80 TQueryResultManager.cxx:81 TQueryResultManager.cxx:82 TQueryResultManager.cxx:83 TQueryResultManager.cxx:84 TQueryResultManager.cxx:85 TQueryResultManager.cxx:86 TQueryResultManager.cxx:87 TQueryResultManager.cxx:88 TQueryResultManager.cxx:89 TQueryResultManager.cxx:90 TQueryResultManager.cxx:91 TQueryResultManager.cxx:92 TQueryResultManager.cxx:93 TQueryResultManager.cxx:94 TQueryResultManager.cxx:95 TQueryResultManager.cxx:96 TQueryResultManager.cxx:97 TQueryResultManager.cxx:98 TQueryResultManager.cxx:99 TQueryResultManager.cxx:100 TQueryResultManager.cxx:101 TQueryResultManager.cxx:102 TQueryResultManager.cxx:103 TQueryResultManager.cxx:104 TQueryResultManager.cxx:105 TQueryResultManager.cxx:106 TQueryResultManager.cxx:107 TQueryResultManager.cxx:108 TQueryResultManager.cxx:109 TQueryResultManager.cxx:110 TQueryResultManager.cxx:111 TQueryResultManager.cxx:112 TQueryResultManager.cxx:113 TQueryResultManager.cxx:114 TQueryResultManager.cxx:115 TQueryResultManager.cxx:116 TQueryResultManager.cxx:117 TQueryResultManager.cxx:118 TQueryResultManager.cxx:119 TQueryResultManager.cxx:120 TQueryResultManager.cxx:121 TQueryResultManager.cxx:122 TQueryResultManager.cxx:123 TQueryResultManager.cxx:124 TQueryResultManager.cxx:125 TQueryResultManager.cxx:126 TQueryResultManager.cxx:127 TQueryResultManager.cxx:128 TQueryResultManager.cxx:129 TQueryResultManager.cxx:130 TQueryResultManager.cxx:131 TQueryResultManager.cxx:132 TQueryResultManager.cxx:133 TQueryResultManager.cxx:134 TQueryResultManager.cxx:135 TQueryResultManager.cxx:136 TQueryResultManager.cxx:137 TQueryResultManager.cxx:138 TQueryResultManager.cxx:139 TQueryResultManager.cxx:140 TQueryResultManager.cxx:141 TQueryResultManager.cxx:142 TQueryResultManager.cxx:143 TQueryResultManager.cxx:144 TQueryResultManager.cxx:145 TQueryResultManager.cxx:146 TQueryResultManager.cxx:147 TQueryResultManager.cxx:148 TQueryResultManager.cxx:149 TQueryResultManager.cxx:150 TQueryResultManager.cxx:151 TQueryResultManager.cxx:152 TQueryResultManager.cxx:153 TQueryResultManager.cxx:154 TQueryResultManager.cxx:155 TQueryResultManager.cxx:156 TQueryResultManager.cxx:157 TQueryResultManager.cxx:158 TQueryResultManager.cxx:159 TQueryResultManager.cxx:160 TQueryResultManager.cxx:161 TQueryResultManager.cxx:162 TQueryResultManager.cxx:163 TQueryResultManager.cxx:164 TQueryResultManager.cxx:165 TQueryResultManager.cxx:166 TQueryResultManager.cxx:167 TQueryResultManager.cxx:168 TQueryResultManager.cxx:169 TQueryResultManager.cxx:170 TQueryResultManager.cxx:171 TQueryResultManager.cxx:172 TQueryResultManager.cxx:173 TQueryResultManager.cxx:174 TQueryResultManager.cxx:175 TQueryResultManager.cxx:176 TQueryResultManager.cxx:177 TQueryResultManager.cxx:178 TQueryResultManager.cxx:179 TQueryResultManager.cxx:180 TQueryResultManager.cxx:181 TQueryResultManager.cxx:182 TQueryResultManager.cxx:183 TQueryResultManager.cxx:184 TQueryResultManager.cxx:185 TQueryResultManager.cxx:186 TQueryResultManager.cxx:187 TQueryResultManager.cxx:188 TQueryResultManager.cxx:189 TQueryResultManager.cxx:190 TQueryResultManager.cxx:191 TQueryResultManager.cxx:192 TQueryResultManager.cxx:193 TQueryResultManager.cxx:194 TQueryResultManager.cxx:195 TQueryResultManager.cxx:196 TQueryResultManager.cxx:197 TQueryResultManager.cxx:198 TQueryResultManager.cxx:199 TQueryResultManager.cxx:200 TQueryResultManager.cxx:201 TQueryResultManager.cxx:202 TQueryResultManager.cxx:203 TQueryResultManager.cxx:204 TQueryResultManager.cxx:205 TQueryResultManager.cxx:206 TQueryResultManager.cxx:207 TQueryResultManager.cxx:208 TQueryResultManager.cxx:209 TQueryResultManager.cxx:210 TQueryResultManager.cxx:211 TQueryResultManager.cxx:212 TQueryResultManager.cxx:213 TQueryResultManager.cxx:214 TQueryResultManager.cxx:215 TQueryResultManager.cxx:216 TQueryResultManager.cxx:217 TQueryResultManager.cxx:218 TQueryResultManager.cxx:219 TQueryResultManager.cxx:220 TQueryResultManager.cxx:221 TQueryResultManager.cxx:222 TQueryResultManager.cxx:223 TQueryResultManager.cxx:224 TQueryResultManager.cxx:225 TQueryResultManager.cxx:226 TQueryResultManager.cxx:227 TQueryResultManager.cxx:228 TQueryResultManager.cxx:229 TQueryResultManager.cxx:230 TQueryResultManager.cxx:231 TQueryResultManager.cxx:232 TQueryResultManager.cxx:233 TQueryResultManager.cxx:234 TQueryResultManager.cxx:235 TQueryResultManager.cxx:236 TQueryResultManager.cxx:237 TQueryResultManager.cxx:238 TQueryResultManager.cxx:239 TQueryResultManager.cxx:240 TQueryResultManager.cxx:241 TQueryResultManager.cxx:242 TQueryResultManager.cxx:243 TQueryResultManager.cxx:244 TQueryResultManager.cxx:245 TQueryResultManager.cxx:246 TQueryResultManager.cxx:247 TQueryResultManager.cxx:248 TQueryResultManager.cxx:249 TQueryResultManager.cxx:250 TQueryResultManager.cxx:251 TQueryResultManager.cxx:252 TQueryResultManager.cxx:253 TQueryResultManager.cxx:254 TQueryResultManager.cxx:255 TQueryResultManager.cxx:256 TQueryResultManager.cxx:257 TQueryResultManager.cxx:258 TQueryResultManager.cxx:259 TQueryResultManager.cxx:260 TQueryResultManager.cxx:261 TQueryResultManager.cxx:262 TQueryResultManager.cxx:263 TQueryResultManager.cxx:264 TQueryResultManager.cxx:265 TQueryResultManager.cxx:266 TQueryResultManager.cxx:267 TQueryResultManager.cxx:268 TQueryResultManager.cxx:269 TQueryResultManager.cxx:270 TQueryResultManager.cxx:271 TQueryResultManager.cxx:272 TQueryResultManager.cxx:273 TQueryResultManager.cxx:274 TQueryResultManager.cxx:275 TQueryResultManager.cxx:276 TQueryResultManager.cxx:277 TQueryResultManager.cxx:278 TQueryResultManager.cxx:279 TQueryResultManager.cxx:280 TQueryResultManager.cxx:281 TQueryResultManager.cxx:282 TQueryResultManager.cxx:283 TQueryResultManager.cxx:284 TQueryResultManager.cxx:285 TQueryResultManager.cxx:286 TQueryResultManager.cxx:287 TQueryResultManager.cxx:288 TQueryResultManager.cxx:289 TQueryResultManager.cxx:290 TQueryResultManager.cxx:291 TQueryResultManager.cxx:292 TQueryResultManager.cxx:293 TQueryResultManager.cxx:294 TQueryResultManager.cxx:295 TQueryResultManager.cxx:296 TQueryResultManager.cxx:297 TQueryResultManager.cxx:298 TQueryResultManager.cxx:299 TQueryResultManager.cxx:300 TQueryResultManager.cxx:301 TQueryResultManager.cxx:302 TQueryResultManager.cxx:303 TQueryResultManager.cxx:304 TQueryResultManager.cxx:305 TQueryResultManager.cxx:306 TQueryResultManager.cxx:307 TQueryResultManager.cxx:308 TQueryResultManager.cxx:309 TQueryResultManager.cxx:310 TQueryResultManager.cxx:311 TQueryResultManager.cxx:312 TQueryResultManager.cxx:313 TQueryResultManager.cxx:314 TQueryResultManager.cxx:315 TQueryResultManager.cxx:316 TQueryResultManager.cxx:317 TQueryResultManager.cxx:318 TQueryResultManager.cxx:319 TQueryResultManager.cxx:320 TQueryResultManager.cxx:321 TQueryResultManager.cxx:322 TQueryResultManager.cxx:323 TQueryResultManager.cxx:324 TQueryResultManager.cxx:325 TQueryResultManager.cxx:326 TQueryResultManager.cxx:327 TQueryResultManager.cxx:328 TQueryResultManager.cxx:329 TQueryResultManager.cxx:330 TQueryResultManager.cxx:331 TQueryResultManager.cxx:332 TQueryResultManager.cxx:333 TQueryResultManager.cxx:334 TQueryResultManager.cxx:335 TQueryResultManager.cxx:336 TQueryResultManager.cxx:337 TQueryResultManager.cxx:338 TQueryResultManager.cxx:339 TQueryResultManager.cxx:340 TQueryResultManager.cxx:341 TQueryResultManager.cxx:342 TQueryResultManager.cxx:343 TQueryResultManager.cxx:344 TQueryResultManager.cxx:345 TQueryResultManager.cxx:346 TQueryResultManager.cxx:347 TQueryResultManager.cxx:348 TQueryResultManager.cxx:349 TQueryResultManager.cxx:350 TQueryResultManager.cxx:351 TQueryResultManager.cxx:352 TQueryResultManager.cxx:353 TQueryResultManager.cxx:354 TQueryResultManager.cxx:355 TQueryResultManager.cxx:356 TQueryResultManager.cxx:357 TQueryResultManager.cxx:358 TQueryResultManager.cxx:359 TQueryResultManager.cxx:360 TQueryResultManager.cxx:361 TQueryResultManager.cxx:362 TQueryResultManager.cxx:363 TQueryResultManager.cxx:364 TQueryResultManager.cxx:365 TQueryResultManager.cxx:366 TQueryResultManager.cxx:367 TQueryResultManager.cxx:368 TQueryResultManager.cxx:369 TQueryResultManager.cxx:370 TQueryResultManager.cxx:371 TQueryResultManager.cxx:372 TQueryResultManager.cxx:373 TQueryResultManager.cxx:374 TQueryResultManager.cxx:375 TQueryResultManager.cxx:376 TQueryResultManager.cxx:377 TQueryResultManager.cxx:378 TQueryResultManager.cxx:379 TQueryResultManager.cxx:380 TQueryResultManager.cxx:381 TQueryResultManager.cxx:382 TQueryResultManager.cxx:383 TQueryResultManager.cxx:384 TQueryResultManager.cxx:385 TQueryResultManager.cxx:386 TQueryResultManager.cxx:387 TQueryResultManager.cxx:388 TQueryResultManager.cxx:389 TQueryResultManager.cxx:390 TQueryResultManager.cxx:391 TQueryResultManager.cxx:392 TQueryResultManager.cxx:393 TQueryResultManager.cxx:394 TQueryResultManager.cxx:395 TQueryResultManager.cxx:396 TQueryResultManager.cxx:397 TQueryResultManager.cxx:398 TQueryResultManager.cxx:399 TQueryResultManager.cxx:400 TQueryResultManager.cxx:401 TQueryResultManager.cxx:402 TQueryResultManager.cxx:403 TQueryResultManager.cxx:404 TQueryResultManager.cxx:405 TQueryResultManager.cxx:406 TQueryResultManager.cxx:407 TQueryResultManager.cxx:408 TQueryResultManager.cxx:409 TQueryResultManager.cxx:410 TQueryResultManager.cxx:411 TQueryResultManager.cxx:412 TQueryResultManager.cxx:413 TQueryResultManager.cxx:414 TQueryResultManager.cxx:415 TQueryResultManager.cxx:416 TQueryResultManager.cxx:417 TQueryResultManager.cxx:418 TQueryResultManager.cxx:419 TQueryResultManager.cxx:420 TQueryResultManager.cxx:421 TQueryResultManager.cxx:422 TQueryResultManager.cxx:423 TQueryResultManager.cxx:424 TQueryResultManager.cxx:425 TQueryResultManager.cxx:426 TQueryResultManager.cxx:427 TQueryResultManager.cxx:428 TQueryResultManager.cxx:429 TQueryResultManager.cxx:430 TQueryResultManager.cxx:431 TQueryResultManager.cxx:432 TQueryResultManager.cxx:433 TQueryResultManager.cxx:434 TQueryResultManager.cxx:435 TQueryResultManager.cxx:436 TQueryResultManager.cxx:437 TQueryResultManager.cxx:438 TQueryResultManager.cxx:439 TQueryResultManager.cxx:440 TQueryResultManager.cxx:441 TQueryResultManager.cxx:442 TQueryResultManager.cxx:443 TQueryResultManager.cxx:444 TQueryResultManager.cxx:445 TQueryResultManager.cxx:446 TQueryResultManager.cxx:447 TQueryResultManager.cxx:448 TQueryResultManager.cxx:449 TQueryResultManager.cxx:450 TQueryResultManager.cxx:451 TQueryResultManager.cxx:452 TQueryResultManager.cxx:453 TQueryResultManager.cxx:454 TQueryResultManager.cxx:455 TQueryResultManager.cxx:456 TQueryResultManager.cxx:457 TQueryResultManager.cxx:458 TQueryResultManager.cxx:459 TQueryResultManager.cxx:460 TQueryResultManager.cxx:461 TQueryResultManager.cxx:462 TQueryResultManager.cxx:463 TQueryResultManager.cxx:464 TQueryResultManager.cxx:465 TQueryResultManager.cxx:466 TQueryResultManager.cxx:467 TQueryResultManager.cxx:468 TQueryResultManager.cxx:469 TQueryResultManager.cxx:470 TQueryResultManager.cxx:471 TQueryResultManager.cxx:472 TQueryResultManager.cxx:473 TQueryResultManager.cxx:474 TQueryResultManager.cxx:475 TQueryResultManager.cxx:476 TQueryResultManager.cxx:477 TQueryResultManager.cxx:478 TQueryResultManager.cxx:479 TQueryResultManager.cxx:480 TQueryResultManager.cxx:481 TQueryResultManager.cxx:482 TQueryResultManager.cxx:483 TQueryResultManager.cxx:484 TQueryResultManager.cxx:485 TQueryResultManager.cxx:486 TQueryResultManager.cxx:487 TQueryResultManager.cxx:488 TQueryResultManager.cxx:489 TQueryResultManager.cxx:490 TQueryResultManager.cxx:491 TQueryResultManager.cxx:492 TQueryResultManager.cxx:493 TQueryResultManager.cxx:494 TQueryResultManager.cxx:495 TQueryResultManager.cxx:496 TQueryResultManager.cxx:497 TQueryResultManager.cxx:498 TQueryResultManager.cxx:499 TQueryResultManager.cxx:500 TQueryResultManager.cxx:501 TQueryResultManager.cxx:502 TQueryResultManager.cxx:503 TQueryResultManager.cxx:504 TQueryResultManager.cxx:505 TQueryResultManager.cxx:506 TQueryResultManager.cxx:507 TQueryResultManager.cxx:508 TQueryResultManager.cxx:509 TQueryResultManager.cxx:510 TQueryResultManager.cxx:511 TQueryResultManager.cxx:512 TQueryResultManager.cxx:513 TQueryResultManager.cxx:514 TQueryResultManager.cxx:515 TQueryResultManager.cxx:516 TQueryResultManager.cxx:517 TQueryResultManager.cxx:518 TQueryResultManager.cxx:519 TQueryResultManager.cxx:520 TQueryResultManager.cxx:521 TQueryResultManager.cxx:522 TQueryResultManager.cxx:523 TQueryResultManager.cxx:524 TQueryResultManager.cxx:525 TQueryResultManager.cxx:526 TQueryResultManager.cxx:527 TQueryResultManager.cxx:528 TQueryResultManager.cxx:529 TQueryResultManager.cxx:530 TQueryResultManager.cxx:531 TQueryResultManager.cxx:532 TQueryResultManager.cxx:533 TQueryResultManager.cxx:534 TQueryResultManager.cxx:535 TQueryResultManager.cxx:536 TQueryResultManager.cxx:537 TQueryResultManager.cxx:538 TQueryResultManager.cxx:539 TQueryResultManager.cxx:540 TQueryResultManager.cxx:541 TQueryResultManager.cxx:542 TQueryResultManager.cxx:543 TQueryResultManager.cxx:544 TQueryResultManager.cxx:545 TQueryResultManager.cxx:546 TQueryResultManager.cxx:547 TQueryResultManager.cxx:548 TQueryResultManager.cxx:549 TQueryResultManager.cxx:550 TQueryResultManager.cxx:551 TQueryResultManager.cxx:552 TQueryResultManager.cxx:553 TQueryResultManager.cxx:554 TQueryResultManager.cxx:555 TQueryResultManager.cxx:556 TQueryResultManager.cxx:557 TQueryResultManager.cxx:558 TQueryResultManager.cxx:559 TQueryResultManager.cxx:560 TQueryResultManager.cxx:561 TQueryResultManager.cxx:562 TQueryResultManager.cxx:563 TQueryResultManager.cxx:564 TQueryResultManager.cxx:565 TQueryResultManager.cxx:566 TQueryResultManager.cxx:567 TQueryResultManager.cxx:568 TQueryResultManager.cxx:569 TQueryResultManager.cxx:570 TQueryResultManager.cxx:571 TQueryResultManager.cxx:572 TQueryResultManager.cxx:573 TQueryResultManager.cxx:574 TQueryResultManager.cxx:575 TQueryResultManager.cxx:576 TQueryResultManager.cxx:577 TQueryResultManager.cxx:578 TQueryResultManager.cxx:579 TQueryResultManager.cxx:580 TQueryResultManager.cxx:581 TQueryResultManager.cxx:582 TQueryResultManager.cxx:583 TQueryResultManager.cxx:584 TQueryResultManager.cxx:585 TQueryResultManager.cxx:586 TQueryResultManager.cxx:587 TQueryResultManager.cxx:588 TQueryResultManager.cxx:589 TQueryResultManager.cxx:590 TQueryResultManager.cxx:591 TQueryResultManager.cxx:592 TQueryResultManager.cxx:593 TQueryResultManager.cxx:594 TQueryResultManager.cxx:595 TQueryResultManager.cxx:596 TQueryResultManager.cxx:597 TQueryResultManager.cxx:598 TQueryResultManager.cxx:599 TQueryResultManager.cxx:600 TQueryResultManager.cxx:601 TQueryResultManager.cxx:602 TQueryResultManager.cxx:603 TQueryResultManager.cxx:604 TQueryResultManager.cxx:605 TQueryResultManager.cxx:606 TQueryResultManager.cxx:607 TQueryResultManager.cxx:608 TQueryResultManager.cxx:609 TQueryResultManager.cxx:610 TQueryResultManager.cxx:611 TQueryResultManager.cxx:612 TQueryResultManager.cxx:613 TQueryResultManager.cxx:614 TQueryResultManager.cxx:615 TQueryResultManager.cxx:616 TQueryResultManager.cxx:617 TQueryResultManager.cxx:618 TQueryResultManager.cxx:619 TQueryResultManager.cxx:620 TQueryResultManager.cxx:621 TQueryResultManager.cxx:622 TQueryResultManager.cxx:623 TQueryResultManager.cxx:624 TQueryResultManager.cxx:625 TQueryResultManager.cxx:626 TQueryResultManager.cxx:627 TQueryResultManager.cxx:628 TQueryResultManager.cxx:629 TQueryResultManager.cxx:630 TQueryResultManager.cxx:631 TQueryResultManager.cxx:632 TQueryResultManager.cxx:633 TQueryResultManager.cxx:634 TQueryResultManager.cxx:635 TQueryResultManager.cxx:636 TQueryResultManager.cxx:637 TQueryResultManager.cxx:638 TQueryResultManager.cxx:639 TQueryResultManager.cxx:640 TQueryResultManager.cxx:641 TQueryResultManager.cxx:642 TQueryResultManager.cxx:643 TQueryResultManager.cxx:644 TQueryResultManager.cxx:645 TQueryResultManager.cxx:646 TQueryResultManager.cxx:647 TQueryResultManager.cxx:648 TQueryResultManager.cxx:649 TQueryResultManager.cxx:650 TQueryResultManager.cxx:651 TQueryResultManager.cxx:652 TQueryResultManager.cxx:653 TQueryResultManager.cxx:654 TQueryResultManager.cxx:655 TQueryResultManager.cxx:656 TQueryResultManager.cxx:657 TQueryResultManager.cxx:658 TQueryResultManager.cxx:659 TQueryResultManager.cxx:660 TQueryResultManager.cxx:661 TQueryResultManager.cxx:662 TQueryResultManager.cxx:663 TQueryResultManager.cxx:664 TQueryResultManager.cxx:665 TQueryResultManager.cxx:666 TQueryResultManager.cxx:667 TQueryResultManager.cxx:668 TQueryResultManager.cxx:669 TQueryResultManager.cxx:670 TQueryResultManager.cxx:671 TQueryResultManager.cxx:672 TQueryResultManager.cxx:673 TQueryResultManager.cxx:674 TQueryResultManager.cxx:675 TQueryResultManager.cxx:676 TQueryResultManager.cxx:677 TQueryResultManager.cxx:678 TQueryResultManager.cxx:679 TQueryResultManager.cxx:680 TQueryResultManager.cxx:681 TQueryResultManager.cxx:682 TQueryResultManager.cxx:683 TQueryResultManager.cxx:684 TQueryResultManager.cxx:685 TQueryResultManager.cxx:686 TQueryResultManager.cxx:687 TQueryResultManager.cxx:688 TQueryResultManager.cxx:689 TQueryResultManager.cxx:690 TQueryResultManager.cxx:691 TQueryResultManager.cxx:692 TQueryResultManager.cxx:693 TQueryResultManager.cxx:694 TQueryResultManager.cxx:695 TQueryResultManager.cxx:696 TQueryResultManager.cxx:697 TQueryResultManager.cxx:698 TQueryResultManager.cxx:699 TQueryResultManager.cxx:700 TQueryResultManager.cxx:701 TQueryResultManager.cxx:702 TQueryResultManager.cxx:703 TQueryResultManager.cxx:704 TQueryResultManager.cxx:705 TQueryResultManager.cxx:706 TQueryResultManager.cxx:707 TQueryResultManager.cxx:708 TQueryResultManager.cxx:709 TQueryResultManager.cxx:710 TQueryResultManager.cxx:711 TQueryResultManager.cxx:712 TQueryResultManager.cxx:713 TQueryResultManager.cxx:714 TQueryResultManager.cxx:715 TQueryResultManager.cxx:716 TQueryResultManager.cxx:717 TQueryResultManager.cxx:718 TQueryResultManager.cxx:719 TQueryResultManager.cxx:720 TQueryResultManager.cxx:721 TQueryResultManager.cxx:722 TQueryResultManager.cxx:723 TQueryResultManager.cxx:724 TQueryResultManager.cxx:725 TQueryResultManager.cxx:726 TQueryResultManager.cxx:727 TQueryResultManager.cxx:728 TQueryResultManager.cxx:729 TQueryResultManager.cxx:730 TQueryResultManager.cxx:731 TQueryResultManager.cxx:732 TQueryResultManager.cxx:733 TQueryResultManager.cxx:734 TQueryResultManager.cxx:735