summaryrefslogtreecommitdiffstats
path: root/rlz/lib/lib_values.h
blob: 742f32f3335fb0a0729f6b06017c0fe2dc335a9c (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// Copyright (c) 2012 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.
//
// Key and value names of the location of the RLZ shared state.

#ifndef RLZ_LIB_LIB_VALUES_H_
#define RLZ_LIB_LIB_VALUES_H_

#include <stdint.h>

#include "rlz/lib/rlz_enums.h"

namespace rlz_lib {

//
// Ping CGI arguments:
//
//   Events are reported as (without spaces):
//   kEventsCgiVariable = <AccessPoint1><Event1> kEventsCgiSeparator <P2><E2>...
//
//   Event responses from the server look like:
//   kEventsCgiVariable : <AccessPoint1><Event1> kEventsCgiSeparator <P2><E2>...
//
//   RLZ's are reported as (without spaces):
//   kRlzCgiVariable = <AccessPoint> <kRlzCgiIndicator> <RLZ value>
//        <kRlzCgiSeparator> <AP2><Indicator><V2><Separator> ....
//
//   RLZ responses from the server look like (without spaces):
//   kRlzCgiVariable<Access Point> :  <RLZ value>
//
//   DCC if reported should look like (without spaces):
//   kDccCgiVariable = <DCC Value>
//
//   RLS if reported should look like (without spaces):
//   kRlsCgiVariable = <RLS Value>
//
//   Machine ID if reported should look like (without spaces):
//   kMachineIdCgiVariable = <Machine ID Value>
//
//   A server response setting / confirming the DCC will look like (no spaces):
//   kDccCgiVariable : <DCC Value>
//
//   Each ping to the server must also contain kProtocolCgiArgument as well.
//
//   Pings may also contain (but not necessarily controlled by this Lib):
//   - The product signature: kProductSignatureCgiVariable = <signature>
//   - The product brand: kProductBrandCgiVariable = <brand>
//   - The product installation ID: kProductIdCgiVariable = <id>
extern const char kEventsCgiVariable[];
extern const char kStatefulEventsCgiVariable[];
extern const char kEventsCgiSeparator;

extern const char kDccCgiVariable[];
extern const char kProtocolCgiArgument[];

extern const char kProductSignatureCgiVariable[];
extern const char kProductBrandCgiVariable[];
extern const char kProductLanguageCgiVariable[];
extern const char kProductIdCgiVariable[];

extern const char kRlzCgiVariable[];
extern const char kRlzCgiSeparator[];
extern const char kRlzCgiIndicator[];

extern const char kRlsCgiVariable[];
extern const char kMachineIdCgiVariable[];
extern const char kSetDccResponseVariable[];

//
// Financial ping server information.
//

extern const char kFinancialPingPath[];
extern const char kFinancialServer[];

extern const int kFinancialPort;

extern const int64_t kEventsPingInterval;
extern const int64_t kNoEventsPingInterval;

extern const char kFinancialPingUserAgent[];
extern const char* kFinancialPingResponseObjects[];

//
// The names for AccessPoints and Events that we use MUST be the same
// as those used/understood by the server.
//
const char* GetAccessPointName(AccessPoint point);
bool GetAccessPointFromName(const char* name, AccessPoint* point);

const char* GetEventName(Event event);
bool GetEventFromName(const char* name, Event* event);

// The names for products are used only client-side.
const char* GetProductName(Product product);

}  // namespace rlz_lib

#endif  // RLZ_LIB_LIB_VALUES_H_