1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 /**************************************************************************
29 								TODO
30  **************************************************************************
31 
32  *************************************************************************/
33 #ifndef _FTP_FTPCONTENTIDENTIFIER_HXX_
34 #define _FTP_FTPCONTENTIDENTIFIER_HXX_
35 
36 #include <vector>
37 #include "curl.hxx"
38 #include <curl/easy.h>
39 #include <cppuhelper/weak.hxx>
40 #include <cppuhelper/queryinterface.hxx>
41 #include <com/sun/star/ucb/XContentIdentifier.hpp>
42 #include <com/sun/star/lang/XTypeProvider.hpp>
43 
44 #include "ftpdirp.hxx"
45 #include "ftpurl.hxx"
46 
47 
48 namespace ftp {
49 
50 
51 	class FTPContentProvider;
52 
53 
54 	class FTPContentIdentifier
55 		: public cppu::OWeakObject,
56 		  public com::sun::star::lang::XTypeProvider,
57 		  public com::sun::star::ucb::XContentIdentifier
58 	{
59 	public:
60 
61 		FTPContentIdentifier(const rtl::OUString& ident);
62 
63 		~FTPContentIdentifier();
64 
65 		// XInterface
66 
67 		virtual com::sun::star::uno::Any SAL_CALL
68 		queryInterface( const com::sun::star::uno::Type& rType )
69 			throw( com::sun::star::uno::RuntimeException );
70 
71 		virtual void SAL_CALL acquire( void ) throw();
72 
73 		virtual void SAL_CALL release( void ) throw();
74 
75 		// XTypeProvider
76 
77 		virtual
78 		com::sun::star::uno::Sequence<com::sun::star::uno::Type> SAL_CALL
79 		getTypes(
80 		)
81 			throw(
82 				com::sun::star::uno::RuntimeException
83 			);
84 
85 		virtual com::sun::star::uno::Sequence<sal_Int8> SAL_CALL
86 		getImplementationId(
87 		)
88 			throw(
89 				com::sun::star::uno::RuntimeException
90 			);
91 
92 
93 		// XContentIdentifier
94 
95 		virtual ::rtl::OUString SAL_CALL
96 		getContentIdentifier(
97 		)
98 			throw (
99 				com::sun::star::uno::RuntimeException
100 			);
101 
102 		virtual ::rtl::OUString SAL_CALL
103 		getContentProviderScheme(
104 		)
105 			throw (
106 				::com::sun::star::uno::RuntimeException
107 			);
108 
109 
110 	private:
111 
112 		rtl::OUString m_ident;
113 	};
114 
115 }
116 
117 
118 #endif
119