summaryrefslogtreecommitdiffstats
path: root/ceee/ie/broker/broker_rpc_lib.idl
blob: 19929314c3b4a6701e7598027e6043a7b3df5fba (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import "oaidl.idl";
import "ocidl.idl";

[ 
  uuid (931C5D3F-A6D7-411B-98ED-789FC9291302),
  // TODO(vitalybuka@google.com): decide if we need meaningful version.
  version(1.1),
  pointer_default(unique),
]
interface CeeeBroker {

// Context handle to allow server maintain number of active clients.
typedef [context_handle] void* BrokerContextHandle;

// @name Implementation specific calls.
// @{
// Returns context handle for new client.
BrokerContextHandle Connect( 
    [in] handle_t binding_handle);

// Release context handle.
void Disconnect( 
    [in] handle_t binding_handle,
    [in, out] BrokerContextHandle* context);
// @}

// @name Remote calls.
// @{
// Fires event to broker.
// @param context is required to avoid execution by wrong broker instance.
void FireEvent(
    [in] handle_t binding_handle,
    [in] BrokerContextHandle context,
    [in, string] const char* event_name,
    [in, string] const char* event_args);

void SendUmaHistogramTimes(
    [in] handle_t binding_handle,
    [in, string] const char* name,
    [in] int sample);

void SendUmaHistogramData(
    [in] handle_t binding_handle,
    [in, string] const char* name,
    [in] int sample,
    [in] int min,
    [in] int max,
    [in] int bucket_count);
// @}
}

// This dummy library statement enforces the creation of a history_indexer.tlb.
// This is necessary since MSVC assumes a .idl always creates a .tlb. Otherwise,
// this .idl is always recompiled, giving many engs a headache.
[
  uuid(B696C552-D640-4756-BE75-B86BE2AEB6C7),
  helpstring("Dummy library")
]
library broker_rcp_lib
{
};