My Project
UDK 3.2.7 C/C++ API Reference
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
salhelper
linkhelper.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* Version: MPL 1.1 / GPLv3+ / LGPLv3+
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License or as specified alternatively below. You may obtain a copy of
8
* the License at http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* Major Contributor(s):
16
* Copyright (C) 2011 Red Hat, Inc., Caolán McNamara <caolanm@redhat.com>
17
* (initial developer)
18
*
19
* All Rights Reserved.
20
*
21
* For minor contributions see the git repository.
22
*
23
* Alternatively, the contents of this file may be used under the terms of
24
* either the GNU General Public License Version 3 or later (the "GPLv3+"), or
25
* the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
26
* in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
27
* instead of those above.
28
*/
29
30
#ifndef _SALHELPER_LINKHELPER_HXX
31
#define _SALHELPER_LINKHELPER_HXX
32
33
#include <
rtl/ustring.hxx
>
34
#include <
osl/file.hxx
>
35
36
namespace
salhelper
37
{
38
class
LinkResolver
39
{
40
public
:
41
osl::FileStatus
m_aStatus
;
42
43
LinkResolver
(sal_uInt32 nMask)
44
:
m_aStatus
(nMask |
45
osl_FileStatus_Mask_FileURL
|
46
osl_FileStatus_Mask_Type
|
47
osl_FileStatus_Mask_LinkTargetURL
)
48
{
49
}
50
58
osl::FileBase::RC
fetchFileStatus
(
const
rtl::OUString
&rURL,
59
int
nDepth = 128)
60
{
61
//In an ideal world this wouldn't be inline, but I want to use this
62
//in jvmfwk hence salhelper, but salhelper is .map controlled and
63
//getting all the mangled names right is a misery, moving it over
64
//to visibility markup would drop per-symbol versioning
65
osl::FileBase::RC
eReturn;
66
67
osl::DirectoryItem
item;
68
rtl::OUString
sURL(rURL);
69
while
((eReturn =
osl::DirectoryItem::get
(sURL, item))
70
==
osl::File::E_None
)
71
{
72
if
(--nDepth == 0)
73
{
74
eReturn =
osl::FileBase::E_MULTIHOP
;
75
break
;
76
}
77
eReturn = item.
getFileStatus
(
m_aStatus
);
78
if
(eReturn !=
osl::File::E_None
)
79
break
;
80
if
(
m_aStatus
.
getFileType
() !=
osl::FileStatus::Link
)
81
{
82
eReturn =
osl::FileBase::E_None
;
83
break
;
84
}
85
sURL =
m_aStatus
.
getLinkTargetURL
();
86
}
87
88
return
eReturn;
89
}
90
};
91
}
92
93
#endif
94
95
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Generated on Mon Oct 8 2012 00:36:42 for My Project by
1.8.1.2