2014-07-11 03:35:56 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2013, Mozilla Foundation and contributors
|
|
|
|
*
|
|
|
|
* Licensed 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
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef GMP_ASYNC_SHUTDOWN_H_
|
|
|
|
#define GMP_ASYNC_SHUTDOWN_H_
|
|
|
|
|
2014-12-09 20:35:26 +00:00
|
|
|
#define GMP_API_ASYNC_SHUTDOWN "async-shutdown"
|
|
|
|
|
2014-07-11 03:35:56 +00:00
|
|
|
// API exposed by the plugin library to manage asynchronous shutdown.
|
|
|
|
// Some plugins require special cleanup which may need to make calls
|
|
|
|
// to host services and wait for async responses.
|
|
|
|
//
|
|
|
|
// To enable a plugins to block shutdown until its async shutdown is
|
|
|
|
// complete, implement the GMPAsyncShutdown interface and return it when
|
|
|
|
// your plugin's GMPGetAPI function is called with "async-shutdown".
|
|
|
|
// When your GMPAsyncShutdown's BeginShutdown() implementation is called
|
|
|
|
// by the GMP host, you should initate your async shutdown process.
|
|
|
|
// Once you have completed shutdown, call the ShutdownComplete() function
|
|
|
|
// of the GMPAsyncShutdownHost that is passed as the host argument to the
|
|
|
|
// GMPGetAPI() call.
|
|
|
|
//
|
|
|
|
// Note: Your GMP's GMPShutdown function will still be called after your
|
|
|
|
// call to ShutdownComplete().
|
|
|
|
//
|
2014-12-09 20:35:26 +00:00
|
|
|
// API name macro: GMP_API_ASYNC_SHUTDOWN
|
2014-07-11 03:35:56 +00:00
|
|
|
// Host API: GMPAsyncShutdownHost
|
|
|
|
class GMPAsyncShutdown {
|
|
|
|
public:
|
|
|
|
virtual ~GMPAsyncShutdown() {}
|
|
|
|
|
|
|
|
virtual void BeginShutdown() = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
class GMPAsyncShutdownHost {
|
|
|
|
public:
|
|
|
|
virtual ~GMPAsyncShutdownHost() {}
|
|
|
|
|
|
|
|
virtual void ShutdownComplete() = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // GMP_ASYNC_SHUTDOWN_H_
|