32#include <tdeio/scheduler.h>
37QuotaJobs::GetQuotarootJob* QuotaJobs::getQuotaroot(
38 TDEIO::Slave* slave,
const KURL& url )
40 TQByteArray packedArgs;
41 TQDataStream stream( packedArgs, IO_WriteOnly );
42 stream << (int)
'Q' << (
int)
'R' << url;
44 GetQuotarootJob* job =
new GetQuotarootJob( url, packedArgs,
false );
45 TDEIO::Scheduler::assignJobToSlave( slave, job );
49QuotaJobs::GetQuotarootJob::GetQuotarootJob(
const KURL& url,
50 const TQByteArray &packedArgs,
51 bool showProgressInfo )
52 : TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
54 connect(
this, TQ_SIGNAL(infoMessage(TDEIO::Job*,
const TQString&)),
55 TQ_SLOT(slotInfoMessage(TDEIO::Job*,
const TQString&)) );
58void QuotaJobs::GetQuotarootJob::slotInfoMessage( TDEIO::Job*,
const TQString& str )
61 TQStringList results = TQStringList::split(
"\r", str);
64 if ( results.size() > 0 ) {
66 roots = TQStringList::split(
" ", results.front() );
69 while ( results.size() > 0 ) {
70 TQString root = results.front(); results.pop_front();
72 if ( results.size() > 0 ) {
73 TQStringList triplets = TQStringList::split(
" ", results.front() );
75 while ( triplets.size() > 0 ) {
77 TQString name = triplets.front(); triplets.pop_front();
78 TQString current = triplets.front(); triplets.pop_front();
79 TQString max = triplets.front(); triplets.pop_front();
80 QuotaInfo info( name, root, current, max );
81 quotas.append( info );
86 if ( !quotas.isEmpty() ) {
87 emit quotaInfoReceived( quotas );
89 emit quotaRootResult( roots );
92QuotaJobs::GetStorageQuotaJob* QuotaJobs::getStorageQuota(
93 TDEIO::Slave* slave,
const KURL& url )
95 GetStorageQuotaJob* job =
new GetStorageQuotaJob( slave, url );
100QuotaJobs::GetStorageQuotaJob::GetStorageQuotaJob( TDEIO::Slave* slave,
const KURL& url )
101 : TDEIO::Job( false )
103 TQByteArray packedArgs;
104 TQDataStream stream( packedArgs, IO_WriteOnly );
105 stream << (int)
'Q' << (
int)
'R' << url;
107 QuotaJobs::GetQuotarootJob *job =
108 new QuotaJobs::GetQuotarootJob( url, packedArgs,
false );
109 connect(job, TQ_SIGNAL(quotaInfoReceived(
const QuotaInfoList&)),
110 TQ_SLOT(slotQuotaInfoReceived(
const QuotaInfoList&)));
111 connect(job, TQ_SIGNAL(quotaRootResult(
const TQStringList&)),
112 TQ_SLOT(slotQuotarootResult(
const TQStringList&)));
113 TDEIO::Scheduler::assignJobToSlave( slave, job );
117void QuotaJobs::GetStorageQuotaJob::slotQuotarootResult(
const TQStringList& roots )
120 if ( !mStorageQuotaInfo.isValid() && !error() ) {
124 mStorageQuotaInfo.setName(
"STORAGE" );
126 if ( mStorageQuotaInfo.isValid() )
127 emit storageQuotaResult( mStorageQuotaInfo );
130void QuotaJobs::GetStorageQuotaJob::slotQuotaInfoReceived(
const QuotaInfoList& infos )
132 QuotaInfoList::ConstIterator it( infos.begin() );
133 while ( it != infos.end() ) {
135 if ( it->name() ==
"STORAGE" && !mStorageQuotaInfo.isValid() ) {
136 mStorageQuotaInfo = *it;
142QuotaInfo QuotaJobs::GetStorageQuotaJob::storageQuotaInfo()
const
144 return mStorageQuotaInfo;
147#include "quotajobs.moc"