summaryrefslogtreecommitdiff
path: root/inc/dpdimensions.hxx
blob: cbdccb6e9fec2e3e1a6a56b0281841fc41676189 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef __DPDIMENSIONS_HXX__
#define __DPDIMENSIONS_HXX__

#include <cppuhelper/implbase2.hxx>

#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>

#include <hash_map>

namespace com { namespace sun { namespace star {
    namespace container {
        class XNamed;
    }
}}}

namespace dpsource {

class DPDimensions : public cppu::WeakImplHelper2<
                        ::com::sun::star::container::XNameAccess,
                        ::com::sun::star::lang::XServiceInfo >
{
public:
    DPDimensions();
    ~DPDimensions();

    // XNameAccess

    virtual ::com::sun::star::uno::Any SAL_CALL getByName(const ::rtl::OUString& aName) 
        throw (::com::sun::star::container::NoSuchElementException, 
               ::com::sun::star::lang::WrappedTargetException, 
               ::com::sun::star::uno::RuntimeException);

    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL 
        getElementNames() throw (::com::sun::star::uno::RuntimeException);

    virtual sal_Bool SAL_CALL hasByName(const ::rtl::OUString& aName)
        throw (::com::sun::star::uno::RuntimeException);

    virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 
        throw (::com::sun::star::uno::RuntimeException);

    virtual sal_Bool SAL_CALL hasElements() 
        throw (::com::sun::star::uno::RuntimeException);

    // XServiceInfo

    virtual ::rtl::OUString SAL_CALL getImplementationName() 
        throw (::com::sun::star::uno::RuntimeException);

    virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& ServiceName) 
        throw (::com::sun::star::uno::RuntimeException);

    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL 
        getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);

private:
    void init();

private:
    typedef ::__gnu_cxx::hash_map< 
        ::rtl::OUString, ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >, ::rtl::OUStringHash >
        DimensionMapType;
    DimensionMapType maDimensions;
};

}

#endif