You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
smb4k/smb4k/core/smb4ksambaoptionsinfo.h

292 lines
8.2 KiB

/***************************************************************************
smb4ksambaoptionsinfo - This is a container class that carries
various information of extra options for a specific host.
-------------------
begin : Mi Okt 18 2006
copyright : (C) 2006 by Alexander Reinholdt
email : dustpuppy@mail.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 SMB4KSAMBAOPTIONSINFO_H
#define SMB4KSAMBAOPTIONSINFO_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
// TQt includes
#include <tqstring.h>
// forward declarations
class Smb4KShare;
/**
* This class provides a container for all extra options that the user defined
* for a certain share.
*
* @author Alexander Reinholdt <dustpuppy@mail.berlios.de>
*/
class Smb4KSambaOptionsInfo
{
public:
/**
* Constructor. It takes the name of the network item in the form
* HOST or //HOST/SHARE as only argument. If you use this constructor, you
* need to use the set* functions to add information.
*
* @param name The network item's name.
*/
Smb4KSambaOptionsInfo( const TQString &name );
/**
* Constructor. It takes a Smb4KShare object and extracts the name and the
* filesystem from it. All other information has to be set with the set*
* functions.
*
* @param share A Smb4KShare object representing a share.
*/
Smb4KSambaOptionsInfo( Smb4KShare *share );
/**
* The copy constructor.
*
* @param info A Smb4KShareOptionsInfo object
*/
Smb4KSambaOptionsInfo( const Smb4KSambaOptionsInfo &info );
/**
* The destructor.
*/
~Smb4KSambaOptionsInfo();
/**
* Sets the "should be remounted" flag.
*
* @param rm TRUE if the share is to be remounted and
* FALSE otherwise.
*/
void setRemount( bool rm );
/**
* Returns TRUE if the share is to be remounted and FALSE otherwise.
*
* @returns TRUE if the share is to be remounted and FALSE otherwise
*/
bool remount() const { return m_remount; }
/**
* This function sets the item name.
*
* @param name The name of the network item
*/
void setItemName( const TQString &name );
/**
* This function returns the name of the network item, i.e. the server or
* share.
*
* @returns the name of the network item.
*/
const TQString &itemName() const { return m_name; }
/**
* This function sets the port that should be used when querying this share.
*
* @param port The port number
*/
void setPort( int port );
/**
* This function returns the port that should be used when working with this
* share. Please note, that it will be returned as an integer. If no port has been
* defined, -1 will be returned.
*
* @returns the port number
*/
int port() const { return m_port; }
/**
* This function sets the protocol to use with the net command. If @p protocol
* is equal to "auto", the protocol will automatically be set to "" internally,
* so that Smb4KSambaOptionsInfo::protocol() returns an empty string.
*
* @param protocol the protocol
*/
void setProtocol( const TQString &protocol );
/**
* This function returns the protocol to use with the net command.
*
* @retuns the protocol
*/
const TQString &protocol() const { return m_protocol; }
/**
* Set the 'Use Kerberos' flag.
*
* @param krb TRUE if the user wants to use Kerberos
* and FALSE otherwise.
*/
void setKerberos( bool krb );
/**
* This functions returns TRUE if the user wants to use Kerberos and
* otherwise it returns FALSE.
*
* @returns TRUE if Kerberos should be used and FALSE
* otherwise.
*/
bool kerberos() const { return m_kerberos; }
/**
* With this function you can set the UID you want to use for this item.
* However, it makes only sense with shares.
*
* @param uid The UID
*/
void setUID( const TQString &uid );
/**
* This functions returns the UID defined for this item.
*
* @returns the UID.
*/
const TQString &uid() const { return m_uid; }
/**
* With this function you can set the GID you want to use for this item.
* However, it makes only sense with shares.
*
* @param gid The GID
*/
void setGID( const TQString &gid );
/**
* This functions returns the GID defined for this item.
*
* @returns the GID.
*/
const TQString &gid() const { return m_gid; }
/**
* This function returns the type of the network item for which the options
* have been defined.
*
* @returns the type according to the Type enumeration.
*/
int type();
/**
* The Type enumeration.
*/
enum Type { Share, Host };
#ifndef __FreeBSD__
/**
* This function sets the file system that is to be used when mounting the share.
*
* Note: This function is not available und FreeBSD.
*
* @param fs the file system name
*/
void setFilesystem( const TQString &fs );
/**
* This function returns the file system that is to be used.
*
* Note: This function is not available und FreeBSD.
*
* @returns the file system name
*/
const TQString &filesystem() const { return m_filesystem; }
/**
* Set if the share is to be mounted read-write or read-only.
*
* Note: This function is not available und FreeBSD.
*
* @param rw TRUE if read-write and FALSE otherwise.
*/
void setWriteAccess( bool rw );
/**
* This functions returns TRUE if the user wants to mount a share read-write
* otherwise it returns FALSE.
*
* Note: This function is not available und FreeBSD.
*
* @returns TRUE if read-write and FALSE otherwise.
*/
bool writeAccess() const { return m_write_access; }
#endif
private:
/**
* The share name.
*/
TQString m_name;
/**
* Should be remounted?
*/
bool m_remount;
/**
* The port number
*/
int m_port;
#ifndef __FreeBSD__
/**
* The file system
*/
TQString m_filesystem;
/**
* Mount read-write or read-only?
*/
bool m_write_access;
#endif
/**
* The protocol
*/
TQString m_protocol;
/**
* Use Kerberos or not
*/
bool m_kerberos;
/**
* The UID
*/
TQString m_uid;
/**
* The GID
*/
TQString m_gid;
};
#endif