00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 /* 00003 * This file is part of the LibreOffice project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 * 00009 * This file incorporates work covered by the following license notice: 00010 * 00011 * Licensed to the Apache Software Foundation (ASF) under one or more 00012 * contributor license agreements. See the NOTICE file distributed 00013 * with this work for additional information regarding copyright 00014 * ownership. The ASF licenses this file to you under the Apache 00015 * License, Version 2.0 (the "License"); you may not use this file 00016 * except in compliance with the License. You may obtain a copy of 00017 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 00018 */ 00019 00020 #ifndef INCLUDED_CPPUHELPER_UNOURL_HXX 00021 #define INCLUDED_CPPUHELPER_UNOURL_HXX 00022 00023 #include <memory> 00024 #include "cppuhelperdllapi.h" 00025 00026 namespace rtl { class OUString; } 00027 00028 namespace cppu { 00029 00037 class CPPUHELPER_DLLPUBLIC UnoUrlDescriptor 00038 { 00039 public: 00040 class Impl; 00041 00050 explicit UnoUrlDescriptor(rtl::OUString const & rDescriptor); 00051 00053 explicit UnoUrlDescriptor(std::auto_ptr< Impl > & rImpl); 00055 00056 UnoUrlDescriptor(UnoUrlDescriptor const & rOther); 00057 00058 ~UnoUrlDescriptor(); 00059 00060 UnoUrlDescriptor & operator =(UnoUrlDescriptor const & rOther); 00061 00069 rtl::OUString const & getDescriptor() const; 00070 00077 rtl::OUString const & getName() const; 00078 00087 bool hasParameter(rtl::OUString const & rKey) const; 00088 00098 rtl::OUString getParameter(rtl::OUString const & rKey) const; 00099 00100 private: 00101 std::auto_ptr< Impl > m_xImpl; 00102 }; 00103 00132 class CPPUHELPER_DLLPUBLIC UnoUrl 00133 { 00134 public: 00143 explicit UnoUrl(rtl::OUString const & rUrl); 00144 00145 UnoUrl(UnoUrl const & rOther); 00146 00147 ~UnoUrl(); 00148 00149 UnoUrl & operator =(UnoUrl const & rOther); 00150 00157 UnoUrlDescriptor const & getConnection() const; 00158 00165 UnoUrlDescriptor const & getProtocol() const; 00166 00173 rtl::OUString const & getObjectName() const; 00174 00175 private: 00176 class Impl; 00177 00178 std::auto_ptr< Impl > m_xImpl; 00179 }; 00180 00181 } 00182 00183 #endif // INCLUDED_RTL_UNOURL_HXX 00184 00185 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */