My Project
UDK 3.2.7 C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
current_context.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
3  *
4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5  *
6  * Copyright 2000, 2010 Oracle and/or its affiliates.
7  *
8  * OpenOffice.org - a multi-platform office productivity suite
9  *
10  * This file is part of OpenOffice.org.
11  *
12  * OpenOffice.org is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU Lesser General Public License version 3
14  * only, as published by the Free Software Foundation.
15  *
16  * OpenOffice.org is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License version 3 for more details
20  * (a copy is included in the LICENSE file that accompanied this code).
21  *
22  * You should have received a copy of the GNU Lesser General Public License
23  * version 3 along with OpenOffice.org. If not, see
24  * <http://www.openoffice.org/license.html>
25  * for a copy of the LGPLv3 License.
26  *
27  ************************************************************************/
28 #ifndef _UNO_CURRENT_CONTEXT_HXX_
29 #define _UNO_CURRENT_CONTEXT_HXX_
30 
31 #include <uno/current_context.h>
32 
33 #include <com/sun/star/uno/XCurrentContext.hpp>
34 
35 
36 namespace com
37 {
38 namespace sun
39 {
40 namespace star
41 {
42 namespace uno
43 {
44 
53  SAL_THROW(())
54 {
56  ::rtl::OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
57  ::uno_getCurrentContext( (void **)&xRet, aEnvTypeName.pData, 0 );
58  return xRet;
59 }
65 inline bool SAL_CALL setCurrentContext(
66  Reference< XCurrentContext > const & xContext )
67  SAL_THROW(())
68 {
69  ::rtl::OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
70  return (::uno_setCurrentContext( xContext.get(), aEnvTypeName.pData, 0 ) != sal_False);
71 }
72 
78 {
81  ::rtl::OUString m_aEnvTypeName;
84  Reference< XCurrentContext > m_xPreviousContext;
85 
86 public:
91  inline ContextLayer(
93  SAL_THROW(());
96  inline ~ContextLayer() SAL_THROW(());
97 
103  SAL_THROW(())
104  { return m_xPreviousContext; }
105 };
106 //__________________________________________________________________________________________________
108  SAL_THROW(())
109  : m_aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) )
110 {
111  ::uno_getCurrentContext( (void **)&m_xPreviousContext, m_aEnvTypeName.pData, 0 );
112  ::uno_setCurrentContext( xNewContext.get(), m_aEnvTypeName.pData, 0 );
113 }
114 //__________________________________________________________________________________________________
116  SAL_THROW(())
117 {
118  ::uno_setCurrentContext( m_xPreviousContext.get(), m_aEnvTypeName.pData, 0 );
119 }
120 
121 }
122 }
123 }
124 }
125 
126 #endif
127 
128 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */