/* * OCILIB - C Driver for Oracle (C Wrapper for Oracle OCI) * * Website: http://www.ocilib.net * * Copyright (c) 2007-2023 Vincent ROGIER * * Licensed 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 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include "ocilibcpp/support.hpp" namespace ocilib { namespace support { /** * * @brief Resolve a bind input / output types * */ template struct BindResolverType { typedef I InputType; typedef O OutputType; static const bool IsHandle = B; }; /** * * @brief Simplified resolver for scalar types that do not need translation * */ template struct BindResolverScalarType : BindResolverType {}; /** * * @brief Simplified resolver for handle types * */ template struct BindResolverHandleType : BindResolverType {}; template<> struct BindResolver : BindResolverType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverScalarType {}; template<> struct BindResolver : BindResolverType {}; template<> struct BindResolver : BindResolverType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; template<> struct BindResolver : BindResolverHandleType {}; } }