/usr/include/mailtransport/transport.h is in kdepimlibs5-dev 4:4.13.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | /*
Copyright (c) 2006 - 2007 Volker Krause <vkrause@kde.org>
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This library 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 Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#ifndef MAILTRANSPORT_TRANSPORT_H
#define MAILTRANSPORT_TRANSPORT_H
#include <mailtransport/mailtransport_export.h>
#include <mailtransport/transportbase.h>
#include <mailtransport/transporttype.h>
class TransportPrivate;
namespace MailTransport {
class TransportType;
/**
Represents the settings of a specific mail transport.
To create a new empty Transport object, use TransportManager::createTransport().
Initialize an empty Transport object by calling the set...() methods defined in
kcfg-generated TransportBase, and in this class. Note that some transports use
the "host" setting to store the following values:
- Sendmail transport: path to the sendmail executable
- Akonadi transports: resource ID.
*/
// TODO KDE5: Do something about the kcfg-generated TransportBase.
// Currently it has the config stuff as private members, which means it is
// utterly inextensible. Also the sendmail and akonadi-type transports use
// the "host" setting for keeping the location of the sendmail executable and
// the resource id, respectively. This is a hack; they should have separate
// config options... (cberzan)
class MAILTRANSPORT_EXPORT Transport : public TransportBase
{
Q_OBJECT
friend class TransportManager;
friend class TransportManagerPrivate;
public:
/**
Destructor
*/
virtual ~Transport();
typedef QList<Transport*> List;
/**
Returns true if this transport is valid, ie. has all necessary data set.
*/
bool isValid() const;
/**
Returns the password of this transport.
*/
QString password();
/**
Sets the password of this transport.
@param passwd The new password.
*/
void setPassword( const QString &passwd );
/**
Makes sure the transport has a unique name. Adds #1, #2, #3 etc. if
necessary.
@since 4.4
*/
void forceUniqueName();
/**
This function synchronizes the password of this transport with the
password of the transport with the same ID that is managed by the
transport manager. This is only useful for cloned transports, since
their passwords don't automatically get updated when calling
TransportManager::loadPasswordsAsync() or TransportManager::loadPasswords().
@sa clone()
@since 4.2
*/
void updatePasswordState();
/**
Returns true if all settings have been loaded.
This is the way to find out if the password has already been loaded
from the wallet.
*/
bool isComplete() const;
/**
Returns a string representation of the authentication type.
*/
QString authenticationTypeString() const;
/**
Returns a string representation of the authentication type.
Convienence function when there isn't a Transport object
instantiated.
@since 4.5
*/
static QString authenticationTypeString( int type );
/**
Returns a deep copy of this Transport object which will no longer be
automatically updated. Use this if you need to store a Transport object
over a longer time. However it is recommended to store transport identifiers
instead if possible.
@sa updatePasswordState()
*/
Transport *clone() const;
/**
Returns the type of this transport.
@see TransportType.
@since 4.4
*/
TransportType transportType() const;
/**
Sets the type of this transport.
@see TransportType.
@since 4.4
*/
void setTransportType( const TransportType &type );
protected:
/**
Creates a Transport object. Should only be used by TransportManager.
@param cfgGroup The KConfig group to read its data from.
*/
Transport( const QString &cfgGroup );
virtual void usrReadConfig();
virtual void usrWriteConfig();
/**
Returns true if the password was not stored in the wallet.
*/
bool needsWalletMigration() const;
/**
Try to migrate the password from the config file to the wallet.
*/
void migrateToWallet();
private Q_SLOTS:
// Used by our friend, TransportManager
void readPassword();
private:
TransportPrivate *const d;
};
} // namespace MailTransport
#endif // MAILTRANSPORT_TRANSPORT_H
|