|
|
/***************************************************************************
|
|
|
smb4kshare - This is a container that holds information about
|
|
|
a mounted remote share.
|
|
|
-------------------
|
|
|
begin : Do M<> 4 2004
|
|
|
copyright : (C) 2004 by Franck Babin
|
|
|
(C) 2005-2007 by Alexander Reinholdt
|
|
|
email : babinfranck@yahoo.ca
|
|
|
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 SMB4KSHARE_H
|
|
|
#define SMB4KSHARE_H
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
#include <config.h>
|
|
|
#endif
|
|
|
|
|
|
// TQt includes
|
|
|
#include <tqstring.h>
|
|
|
#include <tqcstring.h>
|
|
|
|
|
|
// KDE includes
|
|
|
#include <kuser.h>
|
|
|
|
|
|
|
|
|
/**
|
|
|
* This class is a container that holds information about a remote share
|
|
|
* that was mounted on the system. It belongs to the core classes of
|
|
|
* Smb4K.
|
|
|
*
|
|
|
* @author Franck Babin,
|
|
|
* @author Alexander Reinholdt <dustpuppy@users.berlios.de>
|
|
|
*/
|
|
|
|
|
|
class Smb4KShare
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* The default constructor.
|
|
|
*
|
|
|
* @param name The name of the share: //HOST/SHARE or //USER\@HOST/SHARE (FreeBSD).
|
|
|
*
|
|
|
* @param path The path where the share is mounted to.
|
|
|
*
|
|
|
* @param filesystem The filesystem that was used. If you use this constructor it should be "smbfs".
|
|
|
*
|
|
|
* @param uid The UID of the user.
|
|
|
*
|
|
|
* @param gid The GID of the user.
|
|
|
*
|
|
|
* @param broken Determines whether the share is broken. "Broken" means that the share is unaccessible.
|
|
|
*/
|
|
|
Smb4KShare( const TQString &name, const TQString &path, const TQString &filesystem, const int uid = 0, const int gid = 0, bool broken = false );
|
|
|
|
|
|
/**
|
|
|
* The constructor for CIFS shares. It does not take the UID and GID, but the
|
|
|
* user name with which the login was done.
|
|
|
*
|
|
|
* @param name The name of the share: //HOST/SHARE or //USER@HOST/SHARE (FreeBSD).
|
|
|
*
|
|
|
* @param path The path where the share is mounted to.
|
|
|
*
|
|
|
* @param filesystem The filesystem that was used. If you use this constructor it should be "cifs".
|
|
|
*
|
|
|
* @param username The the user name that had to be used for authentication. It can be different from the local user name.
|
|
|
*
|
|
|
* @param foreign Determines whether the share was mounted by another user (i.e. is a foreign share).
|
|
|
*
|
|
|
* @param broken Determines whether the share is broken. "Broken" means that the share is unaccessible.
|
|
|
*/
|
|
|
Smb4KShare( const TQString &name, const TQString &path, const TQString &filesystem, const TQString &username, bool foreign = false, bool broken = false );
|
|
|
|
|
|
/**
|
|
|
* Empty constructor.
|
|
|
*/
|
|
|
Smb4KShare() {}
|
|
|
|
|
|
/**
|
|
|
* Copy constructor.
|
|
|
*
|
|
|
* @param share The share that is to be copied.
|
|
|
*/
|
|
|
Smb4KShare( const Smb4KShare &share );
|
|
|
|
|
|
/**
|
|
|
* The destructor
|
|
|
*/
|
|
|
~Smb4KShare();
|
|
|
|
|
|
/**
|
|
|
* Returns the name of the share as it has been gathered by the mounter.
|
|
|
*
|
|
|
* @returns The name of the share.
|
|
|
*/
|
|
|
const TQString &name() const;
|
|
|
|
|
|
/**
|
|
|
* Returns the mount point aka path of the share as it has been gathered
|
|
|
* by the mounter. This is a C-type string.
|
|
|
*
|
|
|
* @returns The path of the share.
|
|
|
*/
|
|
|
const TQCString &path() const;
|
|
|
|
|
|
/**
|
|
|
* This function returns the canonical path of the share. In contrast to
|
|
|
* Smb4KShare::path(), it will return the absolute path without symlinks. However,
|
|
|
* should the share be broken (i.e. Smb4KShare::isBroken() returns TRUE),
|
|
|
* only Smb4KShare::path() is returned.
|
|
|
*
|
|
|
* @returns Returns the canonical path of the share.
|
|
|
*/
|
|
|
const TQCString canonicalPath() const;
|
|
|
|
|
|
/**
|
|
|
* Returns the UID of the mounted share.
|
|
|
*/
|
|
|
int uid() const;
|
|
|
|
|
|
/**
|
|
|
* Set the UID of the mounted share.
|
|
|
*
|
|
|
* @param uid The UID of the share
|
|
|
*/
|
|
|
void setUID( int uid );
|
|
|
|
|
|
/**
|
|
|
* Returns the GID of the mounted share.
|
|
|
*/
|
|
|
int gid() const;
|
|
|
|
|
|
/**
|
|
|
* Set the GID of the mounted share.
|
|
|
*
|
|
|
* @param gid The GID of the share
|
|
|
*/
|
|
|
void setGID( int gid );
|
|
|
|
|
|
/**
|
|
|
* Returns the name of the user of the share.
|
|
|
*/
|
|
|
const TQString user() const;
|
|
|
|
|
|
/**
|
|
|
* Returns the name of the group of the share.
|
|
|
*/
|
|
|
const TQString group() const;
|
|
|
|
|
|
/**
|
|
|
* Returns the file system of the share.
|
|
|
*/
|
|
|
const TQString &filesystem() const;
|
|
|
|
|
|
/**
|
|
|
* Returns the CIFS login (user name).
|
|
|
*/
|
|
|
const TQString &cifsLogin() const;
|
|
|
|
|
|
/**
|
|
|
* Is TRUE if the share is/seems to be mounted by another
|
|
|
* user.
|
|
|
*
|
|
|
* @returns TRUE if another user mounted the share and FALSE otherwise.
|
|
|
*/
|
|
|
bool isForeign() const;
|
|
|
|
|
|
/**
|
|
|
* This function sets the share to be foreign.
|
|
|
*
|
|
|
* @param foreign TRUE if share is foreign and FALSE otherwise.
|
|
|
*/
|
|
|
void setForeign( bool foreign );
|
|
|
|
|
|
/**
|
|
|
* Returns TRUE if the share is broken and FALSE otherwise.
|
|
|
*/
|
|
|
bool isBroken() const;
|
|
|
|
|
|
/**
|
|
|
* Sets the share to be broken.
|
|
|
*
|
|
|
* @param broken TRUE if the share is broken and FALSE otherwise.
|
|
|
*/
|
|
|
void setBroken( bool broken );
|
|
|
|
|
|
/**
|
|
|
* This function sets the value of the total disk usage. The value has to
|
|
|
* be provided in kilobytes. If the disk usage could not be determined,
|
|
|
* total has to be set to -1.
|
|
|
*
|
|
|
* @param total The total disk usage in kB.
|
|
|
*/
|
|
|
void setTotalDiskSpace( double total );
|
|
|
|
|
|
/**
|
|
|
* This function sets the value of the free space on the share. The value
|
|
|
* has to be provided in kilobytes. If the free space could not be determined,
|
|
|
* free has to be set to -1.
|
|
|
*
|
|
|
* @param free The free disk space in kB.
|
|
|
*/
|
|
|
void setFreeDiskSpace( double free );
|
|
|
|
|
|
/**
|
|
|
* This function returns the total disk space of the share.
|
|
|
*
|
|
|
* @returns The total disk space in kB.
|
|
|
*/
|
|
|
double totalDiskSpace() const;
|
|
|
|
|
|
/**
|
|
|
* This function returns the free disk space available on the share in kB.
|
|
|
*
|
|
|
* @returns the free disk space in kB.
|
|
|
*/
|
|
|
double freeDiskSpace() const;
|
|
|
|
|
|
/**
|
|
|
* This function returns the percentage of used disk space on the
|
|
|
* share.
|
|
|
*
|
|
|
* @returns the percentage of disk space used on the share.
|
|
|
*/
|
|
|
double percentage() const;
|
|
|
|
|
|
/**
|
|
|
* Compare another Smb4KShare object with this one and return TRUE if both
|
|
|
* carry the same data.
|
|
|
*
|
|
|
* @param share The Smb4KShare object that is compared to this one
|
|
|
*
|
|
|
* @returns TRUE if the values match.
|
|
|
*/
|
|
|
bool equals( const Smb4KShare &share );
|
|
|
|
|
|
|
|
|
private:
|
|
|
/**
|
|
|
* The name of the share.
|
|
|
*/
|
|
|
TQString m_name;
|
|
|
|
|
|
/**
|
|
|
* The mount point / path of the share
|
|
|
*/
|
|
|
TQCString m_path;
|
|
|
|
|
|
/**
|
|
|
* The filesystem string
|
|
|
*/
|
|
|
TQString m_filesystem;
|
|
|
|
|
|
/**
|
|
|
* The user ID of the share.
|
|
|
*/
|
|
|
KUser m_user;
|
|
|
|
|
|
/**
|
|
|
* The group ID of the share.
|
|
|
*/
|
|
|
KUserGroup m_group;
|
|
|
|
|
|
/**
|
|
|
* The CIFS login name
|
|
|
*/
|
|
|
TQString m_cifs_login;
|
|
|
bool m_foreign_mount;
|
|
|
bool m_broken;
|
|
|
double m_total;
|
|
|
double m_free;
|
|
|
};
|
|
|
|
|
|
#endif
|