blob: 334ffa3119e69836b354378d4d160bcf4c0842f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/***************************************************************************
smb4kmounter_p - This is a private helper class for Smb4KMounter.
-------------------
begin : Do Jul 19 2007
copyright : (C) 2007 by Alexander Reinholdt
email : dustpuppy@users.berlios.de
***************************************************************************/
/***************************************************************************
* This program 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 2 of the License, or *
* (at your option) any later version. *
* *
* This program 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 this program; if not, write to the *
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, *
* MA 02110-1301 USA *
***************************************************************************/
#ifndef SMB4KMOUNTER_P_H
#define SMB4KMOUNTER_P_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
// Qt includes
#include <qthread.h>
#include <qstring.h>
// KDE includes
#include <kdebug.h>
// system includes
#include <sys/statvfs.h>
class Smb4KMounterPrivate
{
public:
Smb4KMounterPrivate();
~Smb4KMounterPrivate();
int timerTicks;
class Thread : public QThread
{
public:
Thread() : QThread(), m_mountpoint( QString::null ), m_broken( true ) {}
~Thread() {}
void setMountpoint( const QString &mp ) { m_mountpoint = mp; }
virtual void run()
{
if ( m_mountpoint.isEmpty() )
{
kdFatal() << "Smb4KMounterPrivate::Thread: No mountpoint specified" << endl;
}
struct statvfs fs;
if ( statvfs( m_mountpoint.local8Bit(), &fs ) == -1 )
{
m_broken = true;
m_total = -1;
m_free = -1;
}
else
{
m_broken = false;
double kB_block = (double)(fs.f_bsize / 1024);
double total = (double)(fs.f_blocks*kB_block);
double free = (double)(fs.f_bfree*kB_block);
m_total = total;
m_free = free;
}
m_mountpoint = QString::null;
}
bool isBroken() { return m_broken; }
double totalDiskSpace() { return m_total; }
double freeDiskSpace() { return m_free; }
private:
QString m_mountpoint;
bool m_broken;
double m_total;
double m_free;
};
Thread thread;
void clearData();
const QString &workgroup();
const QString &host();
const QString &share();
const QString &ip();
const QString &path();
const QString &filesystem();
const QString &cifsLogin();
void setWorkgroup ( const QString &wg );
void setHost( const QString &h );
void setShare( const QString &s );
void setIP( const QString &i );
void setPath( const QString &p );
void setFileSystem( const QString &f );
void setCIFSLogin( const QString &l );
private:
QString m_workgroup;
QString m_host;
QString m_share;
QString m_ip;
QString m_path;
QString m_filesystem;
QString m_cifsLogin;
};
#endif
|