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)// Functions exported by the RLZ DLL. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "rlz/lib/rlz_lib.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define RLZ_DLL_EXPORT extern "C" __declspec(dllexport) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool RecordProductEvent(rlz_lib::Product product, 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rlz_lib::AccessPoint point, 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rlz_lib::Event event_id) { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::RecordProductEvent(product, point, event_id); 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool GetProductEventsAsCgi(rlz_lib::Product product, 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char* unescaped_cgi, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t unescaped_cgi_size) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::GetProductEventsAsCgi(product, unescaped_cgi, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unescaped_cgi_size); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool ClearAllProductEvents(rlz_lib::Product product) { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::ClearAllProductEvents(product); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool ClearProductEvent(rlz_lib::Product product, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rlz_lib::AccessPoint point, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rlz_lib::Event event_id) { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::ClearProductEvent(product, point, event_id); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool GetAccessPointRlz(rlz_lib::AccessPoint point, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char* rlz, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t rlz_size) { 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::GetAccessPointRlz(point, rlz, rlz_size); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool SetAccessPointRlz(rlz_lib::AccessPoint point, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* new_rlz) { 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::SetAccessPointRlz(point, new_rlz); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool CreateMachineState() { 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::CreateMachineState(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool SetMachineDealCode(const char* dcc) { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::SetMachineDealCode(dcc); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool GetMachineDealCodeAsCgi(char* cgi, size_t cgi_size) { 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::GetMachineDealCodeAsCgi(cgi, cgi_size); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool GetMachineDealCode2(char* dcc, size_t dcc_size) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::GetMachineDealCode(dcc, dcc_size); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool GetPingParams(rlz_lib::Product product, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const rlz_lib::AccessPoint* access_points, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char* unescaped_cgi, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t unescaped_cgi_size) { 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::GetPingParams(product, access_points, unescaped_cgi, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unescaped_cgi_size); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool ParsePingResponse(rlz_lib::Product product, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* response) { 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::ParsePingResponse(product, response); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool IsPingResponseValid(const char* response, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* checksum_idx) { 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::IsPingResponseValid(response, checksum_idx); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool SetMachineDealCodeFromPingResponse(const char* response) { 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::SetMachineDealCodeFromPingResponse(response); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool SendFinancialPing(rlz_lib::Product product, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const rlz_lib::AccessPoint* access_points, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_signature, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_brand, 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_id, 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_lang, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool exclude_machine_id) { 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::SendFinancialPing(product, access_points, product_signature, 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) product_brand, product_id, product_lang, exclude_machine_id); 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT bool SendFinancialPingNoDelay( 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rlz_lib::Product product, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const rlz_lib::AccessPoint* access_points, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_signature, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_brand, 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_id, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* product_lang, 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool exclude_machine_id) { 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::SendFinancialPing(product, access_points, product_signature, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) product_brand, product_id, product_lang, exclude_machine_id, true); 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RLZ_DLL_EXPORT void ClearProductState( 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rlz_lib::Product product, const rlz_lib::AccessPoint* access_points) { 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return rlz_lib::ClearProductState(product, access_points); 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 109