15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Key and value names of the location of the RLZ shared state.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef RLZ_LIB_LIB_VALUES_H_
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define RLZ_LIB_LIB_VALUES_H_
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "rlz/lib/rlz_enums.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace rlz_lib {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Ping CGI arguments:
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   Events are reported as (without spaces):
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kEventsCgiVariable = <AccessPoint1><Event1> kEventsCgiSeparator <P2><E2>...
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   Event responses from the server look like:
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kEventsCgiVariable : <AccessPoint1><Event1> kEventsCgiSeparator <P2><E2>...
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   RLZ's are reported as (without spaces):
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kRlzCgiVariable = <AccessPoint> <kRlzCgiIndicator> <RLZ value>
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//        <kRlzCgiSeparator> <AP2><Indicator><V2><Separator> ....
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   RLZ responses from the server look like (without spaces):
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kRlzCgiVariable<Access Point> :  <RLZ value>
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   DCC if reported should look like (without spaces):
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kDccCgiVariable = <DCC Value>
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   RLS if reported should look like (without spaces):
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kRlsCgiVariable = <RLS Value>
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   Machine ID if reported should look like (without spaces):
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kMachineIdCgiVariable = <Machine ID Value>
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   A server response setting / confirming the DCC will look like (no spaces):
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   kDccCgiVariable : <DCC Value>
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   Each ping to the server must also contain kProtocolCgiArgument as well.
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   Pings may also contain (but not necessarily controlled by this Lib):
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   - The product signature: kProductSignatureCgiVariable = <signature>
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   - The product brand: kProductBrandCgiVariable = <brand>
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   - The product installation ID: kProductIdCgiVariable = <id>
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kEventsCgiVariable[];
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kStatefulEventsCgiVariable[];
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kEventsCgiSeparator;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kDccCgiVariable[];
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kProtocolCgiArgument[];
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kProductSignatureCgiVariable[];
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kProductBrandCgiVariable[];
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kProductLanguageCgiVariable[];
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kProductIdCgiVariable[];
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRlzCgiVariable[];
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRlzCgiSeparator[];
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRlzCgiIndicator[];
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRlsCgiVariable[];
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kMachineIdCgiVariable[];
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kSetDccResponseVariable[];
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Financial ping server information.
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kFinancialPingPath[];
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kFinancialServer[];
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const int kFinancialPort;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const int64 kEventsPingInterval;
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const int64 kNoEventsPingInterval;
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kFinancialPingUserAgent[];
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char* kFinancialPingResponseObjects[];
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The names for AccessPoints and Events that we use MUST be the same
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// as those used/understood by the server.
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* GetAccessPointName(AccessPoint point);
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool GetAccessPointFromName(const char* name, AccessPoint* point);
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* GetEventName(Event event);
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool GetEventFromName(const char* name, Event* event);
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The names for products are used only client-side.
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* GetProductName(Product product);
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace rlz_lib
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // RLZ_LIB_LIB_VALUES_H_
100