/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * 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 __com_sun_star_util_URL_idl__ #define __com_sun_star_util_URL_idl__ module com { module sun { module star { module util { /** represents the structure of a Uniform Resource Locator.

If the structure represents a valid URL or not depends on prior usage of the functions of XURLTransformer. Only after one of the functions returned `TRUE` this can be assumed.
It is not necessary to set all of the fields; either URL::Complete or (some of) the others are set. Additionally, most of the other fields, like URL::Host, URL::Port, URL::User, URL::Password, or URL::Mark, are optional. @see XURLTransformer

*/ published struct URL { /** contains the string representation of the complete URL, for example, http://www.sun.de:8080/pub/test/foo.txt?a=b#xyz

It is used as a central input/output or input parameter for the interfaces of XURLTransformer. The usage of one of the XURLTransformer function is mandatory to validate the URL. It cannot be assumed that URL::Complete represents always a valid URL!

*/ string Complete; /** contains the URL without a mark and without arguments, for example, http://www.sun.de:8080/pub/test/foo.txt */ string Main; /** contains the protocol (scheme) of the URL, for example, "http" */ string Protocol; /** contains the user-identifier of the URL, for example, "me" */ string User; /** contains the users password of the URL, for example, "pass" */ string Password; /** contains the server part of the URL, for example, "www.sun.de" */ string Server; /** contains the port at the server of the URL, for example, "8080" */ short Port; /** contains all segments but the last one of the hierarchical path of the URL, for example, "/pub/test/" */ string Path; /** contains the last segment of the hierarchical path of the URL, for the above example, "foo.txt"

Attention:A service implementing the XURLTransformer interface will normally not detect if the last segment is a folder or a file. So it is possible that the last segment describes a folder. If you want to be sure that a file URL that references a folder will be correctly put into the URL fields you should append a "/" at the end of the hierarchical path.

*/ string Name; /** contains the arguments part of the URL, for example, "a=b" */ string Arguments; /** contains the mark part of the URL, for example, "xyz" */ string Mark; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */