new
This commit is contained in:
parent
bc4eb0e412
commit
e91d5248ad
2 changed files with 210 additions and 0 deletions
88
cppu/inc/uno/current_context.h
Normal file
88
cppu/inc/uno/current_context.h
Normal file
|
@ -0,0 +1,88 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: current_context.h,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: dbo $ $Date: 2000-12-21 14:33:43 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
*
|
||||
* - GNU Lesser General Public License Version 2.1
|
||||
* - Sun Industry Standards Source License Version 1.1
|
||||
*
|
||||
* Sun Microsystems Inc., October, 2000
|
||||
*
|
||||
* GNU Lesser General Public License Version 2.1
|
||||
* =============================================
|
||||
* Copyright 2000 by Sun Microsystems, Inc.
|
||||
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License version 2.1, as published by the Free Software Foundation.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
*
|
||||
* Sun Industry Standards Source License Version 1.1
|
||||
* =================================================
|
||||
* The contents of this file are subject to the Sun Industry Standards
|
||||
* Source License Version 1.1 (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.openoffice.org/license.html.
|
||||
*
|
||||
* Software provided under this License is provided on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
|
||||
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
|
||||
* See the License for the specific provisions governing your rights and
|
||||
* obligations concerning the Software.
|
||||
*
|
||||
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
|
||||
*
|
||||
* Copyright: 2000 by Sun Microsystems, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Contributor(s): _______________________________________
|
||||
*
|
||||
*
|
||||
************************************************************************/
|
||||
#ifndef _UNO_CURRENT_CONTEXT_H_
|
||||
#define _UNO_CURRENT_CONTEXT_H_
|
||||
|
||||
#ifndef _UNO_DISPATCHER_H_
|
||||
#include <uno/dispatcher.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/** Gets the current thread's context.
|
||||
|
||||
@param ppCompEnv out param current context of type com.sun.star.uno.XCurrentContext
|
||||
@param pEnvTypeName type name of returned interface's environment
|
||||
@param pEnvContext context of returned interface's environment (commonly 0)
|
||||
*/
|
||||
SAL_DLLEXPORT void SAL_CALL uno_getCurrentContext(
|
||||
void ** ppCurrentContext,
|
||||
rtl_uString * pEnvTypeName, void * pEnvContext )
|
||||
SAL_THROW ();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
122
cppu/inc/uno/current_context.hxx
Normal file
122
cppu/inc/uno/current_context.hxx
Normal file
|
@ -0,0 +1,122 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: current_context.hxx,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: dbo $ $Date: 2000-12-21 14:33:52 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
*
|
||||
* - GNU Lesser General Public License Version 2.1
|
||||
* - Sun Industry Standards Source License Version 1.1
|
||||
*
|
||||
* Sun Microsystems Inc., October, 2000
|
||||
*
|
||||
* GNU Lesser General Public License Version 2.1
|
||||
* =============================================
|
||||
* Copyright 2000 by Sun Microsystems, Inc.
|
||||
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License version 2.1, as published by the Free Software Foundation.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
*
|
||||
* Sun Industry Standards Source License Version 1.1
|
||||
* =================================================
|
||||
* The contents of this file are subject to the Sun Industry Standards
|
||||
* Source License Version 1.1 (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.openoffice.org/license.html.
|
||||
*
|
||||
* Software provided under this License is provided on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
|
||||
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
|
||||
* See the License for the specific provisions governing your rights and
|
||||
* obligations concerning the Software.
|
||||
*
|
||||
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
|
||||
*
|
||||
* Copyright: 2000 by Sun Microsystems, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Contributor(s): _______________________________________
|
||||
*
|
||||
*
|
||||
************************************************************************/
|
||||
#ifndef _UNO_CURRENT_CONTEXT_HXX_
|
||||
#define _UNO_CURRENT_CONTEXT_HXX_
|
||||
|
||||
#include <osl/diagnose.h>
|
||||
#include <uno/current_context.h>
|
||||
|
||||
#include <cppu/macros.hxx>
|
||||
|
||||
#include <com/sun/star/uno/XCurrentContext.hpp>
|
||||
|
||||
|
||||
/** */ //for docpp
|
||||
namespace com
|
||||
{
|
||||
/** */ //for docpp
|
||||
namespace sun
|
||||
{
|
||||
/** */ //for docpp
|
||||
namespace star
|
||||
{
|
||||
/** */ //for docpp
|
||||
namespace uno
|
||||
{
|
||||
|
||||
/** Current context.
|
||||
*/
|
||||
inline Reference< XCurrentContext > SAL_CALL getCurrentContext() throw ()
|
||||
{
|
||||
::rtl::OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
|
||||
|
||||
Reference< XCurrentContext > xRet;
|
||||
::uno_getCurrentContext( (void **)&xRet, aEnvTypeName.pData, 0 );
|
||||
|
||||
return xRet;
|
||||
}
|
||||
|
||||
/** Security support.
|
||||
*/
|
||||
inline void SAL_CALL checkPermission(
|
||||
const ::com::sun::star::security::Permission & rPerm )
|
||||
throw (::com::sun::star::security::AccessControlException)
|
||||
{
|
||||
Reference< XCurrentContext > xContext( getCurrentContext() );
|
||||
OSL_ENSURE( xContext.is(), "### cannot get current thread's uno context!" );
|
||||
|
||||
if (xContext.is())
|
||||
{
|
||||
Reference< ::com::sun::star::security::XAccessController > xAC(
|
||||
xContext->getAccessController() );
|
||||
if (xAC.is()) // access controller installed?
|
||||
{
|
||||
xAC->checkPermission( rPerm );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue