Skip to content

Commit

Permalink
Adding property to SQLite SessionImpl as solution for issue pocoproje…
Browse files Browse the repository at this point in the history
  • Loading branch information
cristiantm committed Aug 4, 2014
1 parent 98db64f commit 0ba87ea
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
Expand Up @@ -117,6 +117,10 @@ class SQLite_API SessionImpl: public Poco::Data::AbstractSessionImpl<SessionImpl
const std::string& connectorName() const;
/// Returns the name of the connector.

protected:
void setConnectionTimeout(const std::string& prop, const Poco::Any& value);
Poco::Any getConnectionTimeout(const std::string& prop);

private:
std::string _connector;
sqlite3* _pDB;
Expand Down
15 changes: 15 additions & 0 deletions Data/SQLite/src/SessionImpl.cpp
Expand Up @@ -24,6 +24,7 @@
#include "Poco/String.h"
#include "Poco/Mutex.h"
#include "Poco/Data/DataException.h"
#include "Poco/NumberParser.h"
#include "sqlite3.h"
#include <cstdlib>

Expand Down Expand Up @@ -51,6 +52,7 @@ SessionImpl::SessionImpl(const std::string& fileName, std::size_t loginTimeout):
addFeature("autoCommit",
&SessionImpl::autoCommit,
&SessionImpl::isAutoCommit);
addProperty("connectionTimeout", &SessionImpl::setConnectionTimeout, &SessionImpl::getConnectionTimeout);
}


Expand Down Expand Up @@ -212,6 +214,19 @@ void SessionImpl::setConnectionTimeout(std::size_t timeout)
}


void SessionImpl::setConnectionTimeout(const std::string& prop, const Poco::Any& value)
{
int timeout = Poco::RefAnyCast<std::size_t>(value);
setConnectionTimeout(timeout);
}


Poco::Any SessionImpl::getConnectionTimeout(const std::string& prop)
{
return Poco::Any(_timeout/1000);
}


void SessionImpl::autoCommit(const std::string&, bool)
{
// The problem here is to decide whether to call commit or rollback
Expand Down

0 comments on commit 0ba87ea

Please sign in to comment.