diff options
author | Tamas Bunth <tamas.bunth@collabora.co.uk> | 2018-08-16 16:35:17 +0200 |
---|---|---|
committer | Tamás Bunth <btomi96@gmail.com> | 2018-08-24 17:19:51 +0200 |
commit | 26b40fcfc67480e75bd9959b0c5cb9db10fdf6a1 (patch) | |
tree | 0d36eda88da5d9f1a28a5b915494d08c55456a02 /connectivity/source/drivers/mysqlc/mysqlc_driver.hxx | |
parent | 84c02b6d9f2fbe6658b58182f57d60e2bc797016 (diff) |
Moving mysqlc into connectivity as a library
Additionally I erased the remains of the old mysql C++ connector.
Also update the code where the clang plugins were unhappy after moving
the mysqlc module.
Remove mysql-cpp-connector external.
Change-Id: I771cc7afacf5012fc349afb6b36828fb0fee5a66
Reviewed-on: https://gerrit.libreoffice.org/59200
Tested-by: Jenkins
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
Diffstat (limited to 'connectivity/source/drivers/mysqlc/mysqlc_driver.hxx')
-rw-r--r-- | connectivity/source/drivers/mysqlc/mysqlc_driver.hxx | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/connectivity/source/drivers/mysqlc/mysqlc_driver.hxx b/connectivity/source/drivers/mysqlc/mysqlc_driver.hxx new file mode 100644 index 000000000000..89c57630823e --- /dev/null +++ b/connectivity/source/drivers/mysqlc/mysqlc_driver.hxx @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef INCLUDED_MYSQLC_SOURCE_MYSQLC_DRIVER_HXX +#define INCLUDED_MYSQLC_SOURCE_MYSQLC_DRIVER_HXX + +#include "mysqlc_connection.hxx" + +#include <com/sun/star/sdbc/XDriver.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> + +#include <cppuhelper/compbase2.hxx> +#include <osl/module.h> + +namespace connectivity +{ +namespace mysqlc +{ +using css::sdbc::SQLException; +using css::uno::Exception; +using css::uno::Reference; +using css::uno::RuntimeException; +using css::uno::Sequence; +using rtl::OUString; + +Reference<css::uno::XInterface> +MysqlCDriver_CreateInstance(const Reference<css::lang::XMultiServiceFactory>& _rxFactory); + +typedef ::cppu::WeakComponentImplHelper2<css::sdbc::XDriver, css::lang::XServiceInfo> ODriver_BASE; + +typedef void* (*OMysqlCConnection_CreateInstanceFunction)(void* _pDriver); + +class MysqlCDriver : public ODriver_BASE +{ +protected: + Reference<css::lang::XMultiServiceFactory> m_xFactory; + ::osl::Mutex m_aMutex; // mutex is need to control member access + OWeakRefArray m_xConnections; // vector containing a list + // of all the Connection objects + // for this Driver +#ifndef SYSTEM_MYSQL_CPPCONN +#ifdef BUNDLE_MARIADB + oslModule m_hCConnModule; + bool m_bAttemptedLoadCConn; +#endif +#endif +public: + explicit MysqlCDriver(const Reference<css::lang::XMultiServiceFactory>& _rxFactory); + + // OComponentHelper + void SAL_CALL disposing() SAL_OVERRIDE; + // XInterface + static OUString getImplementationName_Static(); + static Sequence<OUString> getSupportedServiceNames_Static(); + + // XServiceInfo + OUString SAL_CALL getImplementationName() SAL_OVERRIDE; + sal_Bool SAL_CALL supportsService(const OUString& ServiceName) SAL_OVERRIDE; + Sequence<OUString> SAL_CALL getSupportedServiceNames() SAL_OVERRIDE; + + // XDriver + Reference<css::sdbc::XConnection> SAL_CALL + connect(const OUString& url, const Sequence<css::beans::PropertyValue>& info) SAL_OVERRIDE; + + sal_Bool SAL_CALL acceptsURL(const OUString& url) SAL_OVERRIDE; + Sequence<css::sdbc::DriverPropertyInfo> + SAL_CALL getPropertyInfo(const OUString& url, + const Sequence<css::beans::PropertyValue>& info) SAL_OVERRIDE; + + sal_Int32 SAL_CALL getMajorVersion() SAL_OVERRIDE; + sal_Int32 SAL_CALL getMinorVersion() SAL_OVERRIDE; + + const Reference<css::lang::XMultiServiceFactory>& getFactory() const { return m_xFactory; } + + static rtl_TextEncoding getDefaultEncoding() { return RTL_TEXTENCODING_UTF8; } + +private: + void impl_initCppConn_lck_throw(); +}; +} /* mysqlc */ +} /* connectivity */ + +#endif // INCLUDED_MYSQLC_SOURCE_MYSQLC_DRIVER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |