1/* Copyright 2014 The Chromium Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file.
4 */
5
6/* From private/ppp_pexe_stream_handler.idl,
7 *   modified Wed Aug  6 13:11:06 2014.
8 */
9
10#ifndef PPAPI_C_PRIVATE_PPP_PEXE_STREAM_HANDLER_H_
11#define PPAPI_C_PRIVATE_PPP_PEXE_STREAM_HANDLER_H_
12
13#include "ppapi/c/pp_macros.h"
14#include "ppapi/c/pp_stdint.h"
15
16#define PPP_PEXESTREAMHANDLER_INTERFACE_1_0 "PPP_PexeStreamHandler;1.0"
17#define PPP_PEXESTREAMHANDLER_INTERFACE PPP_PEXESTREAMHANDLER_INTERFACE_1_0
18
19/**
20 * @file
21 * This file contains NaCl private interfaces. This interface is not versioned
22 * and is for internal Chrome use. It may change without notice. */
23
24
25#include "ppapi/c/private/pp_file_handle.h"
26
27/**
28 * @addtogroup Interfaces
29 * @{
30 */
31struct PPP_PexeStreamHandler_1_0 {
32  /**
33   * Invoked as a result of a cache hit for a translated pexe.
34   */
35  void (*DidCacheHit)(void* user_data, PP_FileHandle nexe_file_handle);
36  /**
37   * Invoked as a result of a cache miss for a translated pexe.
38   * Provides the expected length of the pexe, as read from HTTP headers.
39   */
40  void (*DidCacheMiss)(void* user_data,
41                       int64_t expected_total_length,
42                       PP_FileHandle temp_nexe_file);
43  /**
44   * Invoked when a block of data has been downloaded.
45   * Only invoked after DidCacheMiss().
46   */
47  void (*DidStreamData)(void* user_data, const void* data, int32_t length);
48  /**
49   * Invoked when the stream has finished downloading, regardless of whether it
50   * succeeded. Not invoked if DidCacheHit() was called.
51   */
52  void (*DidFinishStream)(void* user_data, int32_t pp_error);
53};
54
55typedef struct PPP_PexeStreamHandler_1_0 PPP_PexeStreamHandler;
56/**
57 * @}
58 */
59
60#endif  /* PPAPI_C_PRIVATE_PPP_PEXE_STREAM_HANDLER_H_ */
61
62