summaryrefslogtreecommitdiff
path: root/fpicker/source/win32/asyncrequests.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'fpicker/source/win32/asyncrequests.hxx')
-rw-r--r--fpicker/source/win32/asyncrequests.hxx211
1 files changed, 0 insertions, 211 deletions
diff --git a/fpicker/source/win32/asyncrequests.hxx b/fpicker/source/win32/asyncrequests.hxx
deleted file mode 100644
index 410d4241311e..000000000000
--- a/fpicker/source/win32/asyncrequests.hxx
+++ /dev/null
@@ -1,211 +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 .
- */
-
-#pragma once
-
-#include <cppuhelper/basemutex.hxx>
-#include <comphelper/sequenceashashmap.hxx>
-#include <osl/conditn.hxx>
-#include <osl/thread.hxx>
-#include <osl/time.h>
-#include <queue>
-#include <memory>
-
-namespace fpicker{
-namespace win32{
-namespace vista{
-
-
-/** @todo document me
- */
-class Request
-{
-
- public:
-
- static const ::sal_Int32 WAIT_INFINITE = 0;
-
-
- // interface
-
-
- public:
-
-
- explicit Request()
- : m_aJoiner ( )
- , m_nRequest (-1)
- , m_lArguments( )
- {
- m_aJoiner.reset();
- }
-
-
- virtual ~Request() {};
-
-
- void setRequest(::sal_Int32 nRequest)
- {
- m_nRequest = nRequest;
- }
-
-
- ::sal_Int32 getRequest()
- {
- return m_nRequest;
- }
-
-
- void clearArguments()
- {
- m_lArguments.clear();
- }
-
-
- template< class TArgumentType >
- void setArgument(const OUString& sName ,
- const TArgumentType& aValue)
- {
- m_lArguments[sName] = css::uno::toAny(aValue);
- }
-
-
- template< class TArgumentType >
- TArgumentType getArgumentOrDefault(const OUString& sName ,
- const TArgumentType& aDefault)
- {
- return m_lArguments.getUnpackedValueOrDefault(sName, aDefault);
- }
-
- css::uno::Any getValue(OUString const & key) const
- {
- return m_lArguments.getValue(key);
- }
-
- void wait(::sal_Int32 nMilliSeconds = WAIT_INFINITE);
-
- void waitProcessMessages();
-
-
- void notify();
-
-
- // member
-
-
- private:
-
- ::osl::Condition m_aJoiner;
- ::sal_Int32 m_nRequest;
- ::comphelper::SequenceAsHashMap m_lArguments;
-};
-
-typedef std::shared_ptr< Request > RequestRef;
-typedef std::queue< RequestRef > RequestQueue;
-
-
-class RequestHandler
-{
- public:
- virtual ~RequestHandler() {}
- virtual void before() = 0;
- virtual void doRequest(const RequestRef& rRequest) = 0;
- virtual void after() = 0;
-};
-
-typedef std::shared_ptr< RequestHandler > RequestHandlerRef;
-
-
-/** @todo document me
- */
-class AsyncRequests final: private ::cppu::BaseMutex
- , public ::osl::Thread
-{
- public:
- static const ::sal_Int16 PROCESS_MESSAGES = 2;
- static const ::sal_Int16 BLOCKED = 1;
- static const ::sal_Int16 NON_BLOCKED = 0;
-
-
- /** creates the new asynchronous request executor.
- */
- explicit AsyncRequests(const RequestHandlerRef& rHandler);
-
- void setHandler(const RequestHandlerRef& rHandler)
- {
- m_rHandler = rHandler;
- }
-
- /// ensure the execution thread gets going.
- void triggerJobExecution();
-
-
- /** does nothing special / excepting to make sure our class won't be inline .-)
- */
- virtual ~AsyncRequests() override;
-
-
- /** @todo document me
- */
- void triggerRequestProcessMessages (const RequestRef& rRequest);
-
-
- /** @todo document me
- */
- void triggerRequestBlocked(const RequestRef& rRequest);
-
-
- /** @todo document me
- */
- void triggerRequestNonBlocked(const RequestRef& rRequest);
-
-
- /** @todo document me
- */
- void triggerRequestDirectly(const RequestRef& rRequest);
-
-
- /** @todo document me
- */
- void triggerRequestThreadAware(const RequestRef& rRequest,
- ::sal_Int16 nWait );
-
- private:
-
-
- /** our STA .-)
- * Will run between start() & finish(). Internally it runs a loop ...
- * waiting for requests. Every request will be executed synchronously
- * in blocked mode.
- */
- virtual void SAL_CALL run() override;
-
- private:
-
- bool m_bFinish;
- RequestHandlerRef m_rHandler;
- RequestQueue m_lRequests;
- osl::Condition maWait;
-};
-
-} // namespace vista
-} // namespace win32
-} // namespace fpicker
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */