summaryrefslogtreecommitdiff
path: root/cppu/inc/cppu/FreeReference.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'cppu/inc/cppu/FreeReference.hxx')
-rw-r--r--cppu/inc/cppu/FreeReference.hxx160
1 files changed, 0 insertions, 160 deletions
diff --git a/cppu/inc/cppu/FreeReference.hxx b/cppu/inc/cppu/FreeReference.hxx
deleted file mode 100644
index 26cd1fb212ed..000000000000
--- a/cppu/inc/cppu/FreeReference.hxx
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_cppu_FreeReference_hxx
-#define INCLUDED_cppu_FreeReference_hxx
-
-#include "uno/environment.hxx"
-#include "cppu/Map.hxx"
-#include "com/sun/star/uno/Reference.h"
-
-
-namespace cssuno = com::sun::star::uno;
-
-
-namespace cppu
-{
- /** Freely (environment independent) usable Reference.
- (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/FreeReference)
-
- @since UDK 3.2.7
- */
- template< class T >
- class FreeReference
- {
- cssuno::Environment m_env;
- T * m_pObject;
-
- public:
- FreeReference() : m_pObject(NULL) {}
-
- FreeReference(T * pObject, __sal_NoAcquire)
- : m_env(cssuno::Environment::getCurrent()),
- m_pObject(pObject)
- {
- }
-
- FreeReference(T * pObject)
- : m_env(cssuno::Environment::getCurrent()),
- m_pObject(pObject)
- {
- if (m_pObject)
- m_env.get()->pExtEnv->acquireInterface(m_env.get()->pExtEnv, m_pObject);
- }
-
- explicit FreeReference(cssuno::Reference<T> const & xRef)
- : m_env(cssuno::Environment::getCurrent()),
- m_pObject(xRef.get())
- {
- if (m_pObject)
- m_env.get()->pExtEnv->acquireInterface(m_env.get()->pExtEnv, m_pObject);
- }
-
- FreeReference(FreeReference<T> const & rOther)
- : m_env (rOther.m_env),
- m_pObject(rOther.m_pObject)
- {
- if (m_pObject)
- m_env.get()->pExtEnv->acquireInterface(m_env.get()->pExtEnv, m_pObject);
- }
-
-
- ~FreeReference()
- {
- clear();
- }
-
- cssuno::Environment getEnv() const throw (cssuno::RuntimeException)
- {
- return m_env;
- }
-
- cssuno::Reference<T> get() const throw (cssuno::RuntimeException)
- {
- return cssuno::Reference<T>(cppu::mapIn(m_pObject, m_env), SAL_NO_ACQUIRE);
- }
-
- operator cssuno::Reference<T> () const throw (cssuno::RuntimeException)
- {
- return get();
- }
-
- cssuno::Reference<T> operator -> () const throw (cssuno::RuntimeException)
- {
- return get();
- }
-
- bool is() const throw (cssuno::RuntimeException)
- {
- return m_pObject != NULL;
- }
-
- void clear()
- {
- if (m_pObject)
- {
-
- m_env.get()->pExtEnv->releaseInterface(m_env.get()->pExtEnv, m_pObject);
- m_pObject = NULL;
- m_env.clear();
- }
- }
-
- FreeReference<T> & operator = (FreeReference<T> const & rOther)
- {
- clear();
-
- m_pObject = rOther.m_pObject;
- if (m_pObject)
- {
- m_env = rOther.m_env;
- m_env.get()->pExtEnv->acquireInterface(m_env.get()->pExtEnv, m_pObject);
- }
-
- return *this;
- }
-
- void set(cssuno::Reference<T> const & xRef)
- {
- clear();
-
- m_pObject = xRef.get();
- if (m_pObject)
- {
- m_env = cssuno::Environment::getCurrent();
-
- m_env.get()->pExtEnv->acquireInterface(m_env.get()->pExtEnv, m_pObject);
- }
- }
-
- bool operator == (FreeReference const & rOther) const
- {
- return get() == rOther.get();
- }
-
- bool operator != (FreeReference const & rOther) const
- {
- return !operator==(rOther);
- }
- };
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */