Added service::setTimeoutHandlerFactory().
This commit is contained in:
parent
09d9e11439
commit
3ec0f17ade
@ -8,6 +8,10 @@ VERSION 0.7.2cvs
|
|||||||
service::setSocketFactory() function instead. Removed "name" parameter
|
service::setSocketFactory() function instead. Removed "name" parameter
|
||||||
from platformDependant::getSocketFactory() function.
|
from platformDependant::getSocketFactory() function.
|
||||||
|
|
||||||
|
* net/service: removed "timeout.factory" property; added the function
|
||||||
|
service::setTimeoutHandlerFactory() instead. Removed the function
|
||||||
|
platformDependant::getTimeoutHandlerFactory().
|
||||||
|
|
||||||
2005-10-03 Vincent Richard <vincent@vincent-richard.net>
|
2005-10-03 Vincent Richard <vincent@vincent-richard.net>
|
||||||
|
|
||||||
* Added TLS/SSL support, using GNU TLS library.
|
* Added TLS/SSL support, using GNU TLS library.
|
||||||
|
@ -85,13 +85,8 @@ void IMAPConnection::connect()
|
|||||||
const port_t port = GET_PROPERTY(port_t, PROPERTY_SERVER_PORT);
|
const port_t port = GET_PROPERTY(port_t, PROPERTY_SERVER_PORT);
|
||||||
|
|
||||||
// Create the time-out handler
|
// Create the time-out handler
|
||||||
if (HAS_PROPERTY(PROPERTY_TIMEOUT_FACTORY))
|
if (m_store->getTimeoutHandlerFactory())
|
||||||
{
|
m_timeoutHandler = m_store->getTimeoutHandlerFactory()->create();
|
||||||
timeoutHandlerFactory* tof = platformDependant::getHandler()->
|
|
||||||
getTimeoutHandlerFactory(GET_PROPERTY(string, PROPERTY_TIMEOUT_FACTORY));
|
|
||||||
|
|
||||||
m_timeoutHandler = tof->create();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create and connect the socket
|
// Create and connect the socket
|
||||||
m_socket = m_store->getSocketFactory()->create();
|
m_socket = m_store->getSocketFactory()->create();
|
||||||
|
@ -61,8 +61,6 @@ const IMAPServiceInfos::props& IMAPServiceInfos::getProperties() const
|
|||||||
|
|
||||||
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::SERVER_PORT, "143"),
|
property(serviceInfos::property::SERVER_PORT, "143"),
|
||||||
|
|
||||||
property(serviceInfos::property::TIMEOUT_FACTORY)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static props imapsProps =
|
static props imapsProps =
|
||||||
@ -84,8 +82,6 @@ const IMAPServiceInfos::props& IMAPServiceInfos::getProperties() const
|
|||||||
|
|
||||||
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::SERVER_PORT, "993"),
|
property(serviceInfos::property::SERVER_PORT, "993"),
|
||||||
|
|
||||||
property(serviceInfos::property::TIMEOUT_FACTORY)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return m_imaps ? imapsProps : imapProps;
|
return m_imaps ? imapsProps : imapProps;
|
||||||
@ -118,8 +114,6 @@ const std::vector <serviceInfos::property> IMAPServiceInfos::getAvailablePropert
|
|||||||
list.push_back(p.PROPERTY_SERVER_ADDRESS);
|
list.push_back(p.PROPERTY_SERVER_ADDRESS);
|
||||||
list.push_back(p.PROPERTY_SERVER_PORT);
|
list.push_back(p.PROPERTY_SERVER_PORT);
|
||||||
|
|
||||||
list.push_back(p.PROPERTY_TIMEOUT_FACTORY);
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,8 +63,6 @@ const POP3ServiceInfos::props& POP3ServiceInfos::getProperties() const
|
|||||||
|
|
||||||
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::SERVER_PORT, "110"),
|
property(serviceInfos::property::SERVER_PORT, "110"),
|
||||||
|
|
||||||
property(serviceInfos::property::TIMEOUT_FACTORY)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static props pop3sProps =
|
static props pop3sProps =
|
||||||
@ -88,8 +86,6 @@ const POP3ServiceInfos::props& POP3ServiceInfos::getProperties() const
|
|||||||
|
|
||||||
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::SERVER_PORT, "995"),
|
property(serviceInfos::property::SERVER_PORT, "995"),
|
||||||
|
|
||||||
property(serviceInfos::property::TIMEOUT_FACTORY)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return m_pop3s ? pop3sProps : pop3Props;
|
return m_pop3s ? pop3sProps : pop3Props;
|
||||||
@ -124,8 +120,6 @@ const std::vector <serviceInfos::property> POP3ServiceInfos::getAvailablePropert
|
|||||||
list.push_back(p.PROPERTY_SERVER_ADDRESS);
|
list.push_back(p.PROPERTY_SERVER_ADDRESS);
|
||||||
list.push_back(p.PROPERTY_SERVER_PORT);
|
list.push_back(p.PROPERTY_SERVER_PORT);
|
||||||
|
|
||||||
list.push_back(p.PROPERTY_TIMEOUT_FACTORY);
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,13 +123,8 @@ void POP3Store::connect()
|
|||||||
const port_t port = GET_PROPERTY(port_t, PROPERTY_SERVER_PORT);
|
const port_t port = GET_PROPERTY(port_t, PROPERTY_SERVER_PORT);
|
||||||
|
|
||||||
// Create the time-out handler
|
// Create the time-out handler
|
||||||
if (HAS_PROPERTY(PROPERTY_TIMEOUT_FACTORY))
|
if (getTimeoutHandlerFactory())
|
||||||
{
|
m_timeoutHandler = getTimeoutHandlerFactory()->create();
|
||||||
timeoutHandlerFactory* tof = platformDependant::getHandler()->
|
|
||||||
getTimeoutHandlerFactory(GET_PROPERTY(string, PROPERTY_TIMEOUT_FACTORY));
|
|
||||||
|
|
||||||
m_timeoutHandler = tof->create();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create and connect the socket
|
// Create and connect the socket
|
||||||
m_socket = getSocketFactory()->create();
|
m_socket = getSocketFactory()->create();
|
||||||
|
@ -123,5 +123,17 @@ ref <socketFactory> service::getSocketFactory()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void service::setTimeoutHandlerFactory(ref <timeoutHandlerFactory> thf)
|
||||||
|
{
|
||||||
|
m_toHandlerFactory = thf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ref <timeoutHandlerFactory> service::getTimeoutHandlerFactory()
|
||||||
|
{
|
||||||
|
return m_toHandlerFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // net
|
} // net
|
||||||
} // vmime
|
} // vmime
|
||||||
|
@ -40,9 +40,6 @@ const serviceInfos::property serviceInfos::property::AUTH_USERNAME
|
|||||||
const serviceInfos::property serviceInfos::property::AUTH_PASSWORD
|
const serviceInfos::property serviceInfos::property::AUTH_PASSWORD
|
||||||
("auth.password", serviceInfos::property::TYPE_STRING);
|
("auth.password", serviceInfos::property::TYPE_STRING);
|
||||||
|
|
||||||
const serviceInfos::property serviceInfos::property::TIMEOUT_FACTORY
|
|
||||||
("timeout.factory", serviceInfos::property::TYPE_STRING);
|
|
||||||
|
|
||||||
#if VMIME_HAVE_TLS_SUPPORT
|
#if VMIME_HAVE_TLS_SUPPORT
|
||||||
|
|
||||||
const serviceInfos::property serviceInfos::property::CONNECTION_TLS
|
const serviceInfos::property serviceInfos::property::CONNECTION_TLS
|
||||||
|
@ -62,8 +62,6 @@ const SMTPServiceInfos::props& SMTPServiceInfos::getProperties() const
|
|||||||
|
|
||||||
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::SERVER_PORT, "25"),
|
property(serviceInfos::property::SERVER_PORT, "25"),
|
||||||
|
|
||||||
property(serviceInfos::property::TIMEOUT_FACTORY)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static props smtpsProps =
|
static props smtpsProps =
|
||||||
@ -86,8 +84,6 @@ const SMTPServiceInfos::props& SMTPServiceInfos::getProperties() const
|
|||||||
|
|
||||||
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::SERVER_ADDRESS, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::SERVER_PORT, "465"),
|
property(serviceInfos::property::SERVER_PORT, "465"),
|
||||||
|
|
||||||
property(serviceInfos::property::TIMEOUT_FACTORY)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return m_smtps ? smtpsProps : smtpProps;
|
return m_smtps ? smtpsProps : smtpProps;
|
||||||
@ -121,8 +117,6 @@ const std::vector <serviceInfos::property> SMTPServiceInfos::getAvailablePropert
|
|||||||
list.push_back(p.PROPERTY_SERVER_ADDRESS);
|
list.push_back(p.PROPERTY_SERVER_ADDRESS);
|
||||||
list.push_back(p.PROPERTY_SERVER_PORT);
|
list.push_back(p.PROPERTY_SERVER_PORT);
|
||||||
|
|
||||||
list.push_back(p.PROPERTY_TIMEOUT_FACTORY);
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,13 +89,8 @@ void SMTPTransport::connect()
|
|||||||
const port_t port = GET_PROPERTY(port_t, PROPERTY_SERVER_PORT);
|
const port_t port = GET_PROPERTY(port_t, PROPERTY_SERVER_PORT);
|
||||||
|
|
||||||
// Create the time-out handler
|
// Create the time-out handler
|
||||||
if (HAS_PROPERTY(PROPERTY_TIMEOUT_FACTORY))
|
if (getTimeoutHandlerFactory())
|
||||||
{
|
m_timeoutHandler = getTimeoutHandlerFactory()->create();
|
||||||
timeoutHandlerFactory* tof = platformDependant::getHandler()->
|
|
||||||
getTimeoutHandlerFactory(GET_PROPERTY(string, PROPERTY_TIMEOUT_FACTORY));
|
|
||||||
|
|
||||||
m_timeoutHandler = tof->create();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create and connect the socket
|
// Create and connect the socket
|
||||||
m_socket = getSocketFactory()->create();
|
m_socket = getSocketFactory()->create();
|
||||||
|
@ -174,14 +174,6 @@ ref <vmime::net::socketFactory> posixHandler::getSocketFactory() const
|
|||||||
return m_socketFactory.dynamicCast <vmime::net::socketFactory>();
|
return m_socketFactory.dynamicCast <vmime::net::socketFactory>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vmime::net::timeoutHandlerFactory* posixHandler::getTimeoutHandlerFactory
|
|
||||||
(const vmime::string& /* name */) const
|
|
||||||
{
|
|
||||||
// Not used by default
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -239,14 +239,6 @@ ref <vmime::net::socketFactory> windowsHandler::getSocketFactory() const
|
|||||||
return m_socketFactory.dynamicCast <vmime::net::socketFactory>();
|
return m_socketFactory.dynamicCast <vmime::net::socketFactory>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vmime::net::timeoutHandlerFactory* windowsHandler::getTimeoutHandlerFactory
|
|
||||||
(const vmime::string& /* name */) const
|
|
||||||
{
|
|
||||||
// Not used by default
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,8 +62,6 @@ public:
|
|||||||
|
|
||||||
serviceInfos::property PROPERTY_SERVER_ADDRESS;
|
serviceInfos::property PROPERTY_SERVER_ADDRESS;
|
||||||
serviceInfos::property PROPERTY_SERVER_PORT;
|
serviceInfos::property PROPERTY_SERVER_PORT;
|
||||||
|
|
||||||
serviceInfos::property PROPERTY_TIMEOUT_FACTORY;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const props& getProperties() const;
|
const props& getProperties() const;
|
||||||
|
@ -64,8 +64,6 @@ public:
|
|||||||
|
|
||||||
serviceInfos::property PROPERTY_SERVER_ADDRESS;
|
serviceInfos::property PROPERTY_SERVER_ADDRESS;
|
||||||
serviceInfos::property PROPERTY_SERVER_PORT;
|
serviceInfos::property PROPERTY_SERVER_PORT;
|
||||||
|
|
||||||
serviceInfos::property PROPERTY_TIMEOUT_FACTORY;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const props& getProperties() const;
|
const props& getProperties() const;
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "vmime/net/serviceInfos.hpp"
|
#include "vmime/net/serviceInfos.hpp"
|
||||||
|
|
||||||
#include "vmime/net/socket.hpp"
|
#include "vmime/net/socket.hpp"
|
||||||
|
#include "vmime/net/timeoutHandler.hpp"
|
||||||
|
|
||||||
#if VMIME_HAVE_TLS_SUPPORT
|
#if VMIME_HAVE_TLS_SUPPORT
|
||||||
#include "vmime/net/tls/certificateVerifier.hpp"
|
#include "vmime/net/tls/certificateVerifier.hpp"
|
||||||
@ -162,6 +163,21 @@ public:
|
|||||||
*/
|
*/
|
||||||
ref <socketFactory> getSocketFactory();
|
ref <socketFactory> getSocketFactory();
|
||||||
|
|
||||||
|
/** Set the factory used to create timeoutHandler objects for
|
||||||
|
* this service. By default, no timeout handler is used. Not all
|
||||||
|
* services support timeout handling.
|
||||||
|
*
|
||||||
|
* @param thf timeoutHandler factory
|
||||||
|
*/
|
||||||
|
void setTimeoutHandlerFactory(ref <timeoutHandlerFactory> thf);
|
||||||
|
|
||||||
|
/** Return the factory used to create timeoutHandler objects for
|
||||||
|
* this service.
|
||||||
|
*
|
||||||
|
* @return timeoutHandler factory
|
||||||
|
*/
|
||||||
|
ref <timeoutHandlerFactory> getTimeoutHandlerFactory();
|
||||||
|
|
||||||
/** Set a property for this service (service prefix is added automatically).
|
/** Set a property for this service (service prefix is added automatically).
|
||||||
*
|
*
|
||||||
* WARNING: this sets the property on the session object, so all service
|
* WARNING: this sets the property on the session object, so all service
|
||||||
@ -201,6 +217,8 @@ private:
|
|||||||
#endif // VMIME_HAVE_TLS_SUPPORT
|
#endif // VMIME_HAVE_TLS_SUPPORT
|
||||||
|
|
||||||
ref <socketFactory> m_socketFactory;
|
ref <socketFactory> m_socketFactory;
|
||||||
|
|
||||||
|
ref <timeoutHandlerFactory> m_toHandlerFactory;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,12 +84,6 @@ public:
|
|||||||
* password used to authenticate with the server. */
|
* password used to authenticate with the server. */
|
||||||
static const property AUTH_PASSWORD;
|
static const property AUTH_PASSWORD;
|
||||||
|
|
||||||
/** The common property 'timeout.factory' used to
|
|
||||||
* specify which factory to use to instanciate
|
|
||||||
* time-out handler objects. If none is specified,
|
|
||||||
* no time-out handler is used. */
|
|
||||||
static const property TIMEOUT_FACTORY;
|
|
||||||
|
|
||||||
#if VMIME_HAVE_TLS_SUPPORT
|
#if VMIME_HAVE_TLS_SUPPORT
|
||||||
|
|
||||||
/** The common property 'connection.tls': this is used to
|
/** The common property 'connection.tls': this is used to
|
||||||
|
@ -63,8 +63,6 @@ public:
|
|||||||
|
|
||||||
serviceInfos::property PROPERTY_SERVER_ADDRESS;
|
serviceInfos::property PROPERTY_SERVER_ADDRESS;
|
||||||
serviceInfos::property PROPERTY_SERVER_PORT;
|
serviceInfos::property PROPERTY_SERVER_PORT;
|
||||||
|
|
||||||
serviceInfos::property PROPERTY_TIMEOUT_FACTORY;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const props& getProperties() const;
|
const props& getProperties() const;
|
||||||
|
@ -109,21 +109,8 @@ public:
|
|||||||
* @return socket factory
|
* @return socket factory
|
||||||
*/
|
*/
|
||||||
virtual ref <net::socketFactory> getSocketFactory() const = 0;
|
virtual ref <net::socketFactory> getSocketFactory() const = 0;
|
||||||
|
|
||||||
/** Return a pointer to a timeout-handler factory for the specified name.
|
|
||||||
* The returned object will not be deleted by VMime, so it can be a
|
|
||||||
* pointer to a static object.
|
|
||||||
*
|
|
||||||
* This is used when you want to handle a timeout-mechanism when
|
|
||||||
* connecting to messaging servers (please read the documentation to
|
|
||||||
* learn how to use it). If you are not using time-out handlers, you
|
|
||||||
* can safely return NULL here.
|
|
||||||
*
|
|
||||||
* @param name time-out type name
|
|
||||||
* @return time-out factory
|
|
||||||
*/
|
|
||||||
virtual net::timeoutHandlerFactory* getTimeoutHandlerFactory(const string& name = "default") const = 0;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if VMIME_HAVE_FILESYSTEM_FEATURES
|
#if VMIME_HAVE_FILESYSTEM_FEATURES
|
||||||
/** Return a pointer to a factory that creates file-system objects.
|
/** Return a pointer to a factory that creates file-system objects.
|
||||||
*
|
*
|
||||||
|
@ -62,8 +62,6 @@ public:
|
|||||||
|
|
||||||
#if VMIME_HAVE_MESSAGING_FEATURES
|
#if VMIME_HAVE_MESSAGING_FEATURES
|
||||||
ref <vmime::net::socketFactory> getSocketFactory() const;
|
ref <vmime::net::socketFactory> getSocketFactory() const;
|
||||||
|
|
||||||
vmime::net::timeoutHandlerFactory* getTimeoutHandlerFactory(const vmime::string& name) const;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if VMIME_HAVE_FILESYSTEM_FEATURES
|
#if VMIME_HAVE_FILESYSTEM_FEATURES
|
||||||
|
@ -61,8 +61,6 @@ public:
|
|||||||
|
|
||||||
#if VMIME_HAVE_MESSAGING_FEATURES
|
#if VMIME_HAVE_MESSAGING_FEATURES
|
||||||
ref <vmime::net::socketFactory> getSocketFactory() const;
|
ref <vmime::net::socketFactory> getSocketFactory() const;
|
||||||
|
|
||||||
vmime::net::timeoutHandlerFactory* getTimeoutHandlerFactory(const vmime::string& name) const;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if VMIME_HAVE_FILESYSTEM_FEATURES
|
#if VMIME_HAVE_FILESYSTEM_FEATURES
|
||||||
|
Loading…
Reference in New Issue
Block a user