1*01aa44aaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*01aa44aaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*01aa44aaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*01aa44aaSAndrew Rist  * distributed with this work for additional information
6*01aa44aaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*01aa44aaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*01aa44aaSAndrew Rist  * "License"); you may not use this file except in compliance
9*01aa44aaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*01aa44aaSAndrew Rist  *
11*01aa44aaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*01aa44aaSAndrew Rist  *
13*01aa44aaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*01aa44aaSAndrew Rist  * software distributed under the License is distributed on an
15*01aa44aaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*01aa44aaSAndrew Rist  * KIND, either express or implied.  See the License for the
17*01aa44aaSAndrew Rist  * specific language governing permissions and limitations
18*01aa44aaSAndrew Rist  * under the License.
19*01aa44aaSAndrew Rist  *
20*01aa44aaSAndrew Rist  *************************************************************/
21*01aa44aaSAndrew Rist 
22*01aa44aaSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SVTOOLS_JAVAINTERACTION_HXX_
25cdf0e10cSrcweir #define _SVTOOLS_JAVAINTERACTION_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "svtools/svtdllapi.h"
28cdf0e10cSrcweir #include <osl/mutex.hxx>
29cdf0e10cSrcweir #include <tools/gen.hxx>
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #include <com/sun/star/task/XInteractionRequest.hpp>
32cdf0e10cSrcweir #include <svtools/javacontext.hxx>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir #define JAVA_INTERACTION_HANDLER_NAME "java-vm.interaction-handler"
35cdf0e10cSrcweir 
36cdf0e10cSrcweir namespace svt
37cdf0e10cSrcweir {
38cdf0e10cSrcweir // We cannot derive from  cppu::WeakImplHelper because we would export the inline
39cdf0e10cSrcweir //generated class. This conflicts with other libraries if they use the same inline
40cdf0e10cSrcweir //class.
41cdf0e10cSrcweir 
42cdf0e10cSrcweir class SVT_DLLPUBLIC JavaInteractionHandler:
43cdf0e10cSrcweir         public com::sun::star::task::XInteractionHandler
44cdf0e10cSrcweir {
45cdf0e10cSrcweir public:
46cdf0e10cSrcweir     JavaInteractionHandler();
47cdf0e10cSrcweir     JavaInteractionHandler(bool bReportErrorOnce);
48cdf0e10cSrcweir 
49cdf0e10cSrcweir     // XInterface
50cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
51cdf0e10cSrcweir         const ::com::sun::star::uno::Type& aType )
52cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
53cdf0e10cSrcweir 
54cdf0e10cSrcweir     virtual void SAL_CALL acquire() throw();
55cdf0e10cSrcweir 
56cdf0e10cSrcweir     virtual void SAL_CALL release() throw();
57cdf0e10cSrcweir 
58cdf0e10cSrcweir     // XCurrentContext
59cdf0e10cSrcweir     virtual void SAL_CALL handle( const com::sun::star::uno::Reference<
60cdf0e10cSrcweir                                   com::sun::star::task::XInteractionRequest >& Request )
61cdf0e10cSrcweir         throw (com::sun::star::uno::RuntimeException);
62cdf0e10cSrcweir 
63cdf0e10cSrcweir private:
64cdf0e10cSrcweir     oslInterlockedCount	m_aRefCount;
65cdf0e10cSrcweir     SVT_DLLPRIVATE JavaInteractionHandler(JavaInteractionHandler const&); //not implemented
66cdf0e10cSrcweir     SVT_DLLPRIVATE JavaInteractionHandler& operator = (JavaInteractionHandler const &); //not implemented
67cdf0e10cSrcweir     SVT_DLLPRIVATE virtual ~JavaInteractionHandler();
68cdf0e10cSrcweir     bool m_bShowErrorsOnce;
69cdf0e10cSrcweir     bool m_bJavaDisabled_Handled;
70cdf0e10cSrcweir     bool m_bInvalidSettings_Handled;
71cdf0e10cSrcweir     bool m_bJavaNotFound_Handled;
72cdf0e10cSrcweir     bool m_bVMCreationFailure_Handled;
73cdf0e10cSrcweir     bool m_bRestartRequired_Handled;
74cdf0e10cSrcweir     sal_uInt16 m_nResult_JavaDisabled;
75cdf0e10cSrcweir };
76cdf0e10cSrcweir }
77cdf0e10cSrcweir 
78cdf0e10cSrcweir #endif // _DESKTOP_JAVAINTERACTION_HXX_
79