summaryrefslogtreecommitdiffstats
path: root/ceee/ie/broker/infobar_api_module.h
blob: 53b3f65779b68688171ee450d6b26174f1de7a62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Infobar API implementation.

#ifndef CEEE_IE_BROKER_INFOBAR_API_MODULE_H_
#define CEEE_IE_BROKER_INFOBAR_API_MODULE_H_

#include <string>

#include "ceee/ie/broker/api_dispatcher.h"
#include "ceee/ie/broker/common_api_module.h"

namespace infobar_api {

class InfobarApiResult;
typedef ApiResultCreator<InfobarApiResult> InfobarApiResultCreator;

// Registers all Infobar API invocations with the given dispatcher.
void RegisterInvocations(ApiDispatcher* dispatcher);

class InfobarApiResult : public common_api::CommonApiResult {
 public:
  explicit InfobarApiResult(int request_id)
      : common_api::CommonApiResult(request_id) {}
};

typedef IterativeApiResult<InfobarApiResult> IterativeInfobarApiResult;

class ShowInfoBar : public InfobarApiResultCreator {
 public:
  virtual void Execute(const ListValue& args, int request_id);
  // We need to wait for the infobar browser ready event to complete the
  // result response.
  static HRESULT ContinueExecution(const std::string& input_args,
                                   ApiDispatcher::InvocationResult* user_data,
                                   ApiDispatcher* dispatcher);
};

}  // namespace infobar_api

#endif  // CEEE_IE_BROKER_INFOBAR_API_MODULE_H_