1 //
2 // MySQLException.cpp
3 //
4 // Library: Data/MySQL
5 // Package: MySQL
6 // Module:  Connector
7 //
8 // Copyright (c) 2008, Applied Informatics Software Engineering GmbH.
9 // and Contributors.
10 //
11 // SPDX-License-Identifier:	BSL-1.0
12 //
13 
14 
15 #include "Poco/Data/MySQL/Connector.h"
16 #include "Poco/Data/MySQL/SessionImpl.h"
17 #include "Poco/Data/SessionFactory.h"
18 #include "Poco/Exception.h"
19 #include <mysql.h>
20 
21 
22 namespace Poco {
23 namespace Data {
24 namespace MySQL {
25 
26 
27 std::string Connector::KEY("mysql");
28 
29 
Connector()30 Connector::Connector()
31 {
32 }
33 
34 
~Connector()35 Connector::~Connector()
36 {
37 }
38 
39 
name() const40 const std::string& Connector::name() const
41 {
42 	return KEY;
43 }
44 
45 
createSession(const std::string & connectionString,std::size_t timeout)46 Poco::AutoPtr<Poco::Data::SessionImpl> Connector::createSession(const std::string& connectionString,
47 	std::size_t timeout)
48 {
49 	return Poco::AutoPtr<Poco::Data::SessionImpl>(new SessionImpl(connectionString, timeout));
50 }
51 
52 
registerConnector()53 void Connector::registerConnector()
54 {
55 	if (mysql_library_init(0, 0, 0) != 0)
56 	{
57 		throw Exception("mysql_library_init error");
58 	}
59 
60 	Poco::Data::SessionFactory::instance().add(new Connector());
61 }
62 
63 
unregisterConnector()64 void Connector::unregisterConnector()
65 {
66 	Poco::Data::SessionFactory::instance().remove(KEY);
67 	mysql_library_end();
68 }
69 
70 
71 } } } // namespace Poco::Data::MySQL
72 
73