1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // Functions exported by the RLZ DLL. 6 7 #include "rlz/win/lib/rlz_lib.h" 8 9 #define RLZ_DLL_EXPORT extern "C" __declspec(dllexport) 10 11 RLZ_DLL_EXPORT bool RecordProductEvent(rlz_lib::Product product, 12 rlz_lib::AccessPoint point, 13 rlz_lib::Event event_id) { 14 return rlz_lib::RecordProductEvent(product, point, event_id); 15 } 16 17 RLZ_DLL_EXPORT bool GetProductEventsAsCgi(rlz_lib::Product product, 18 char* unescaped_cgi, 19 size_t unescaped_cgi_size) { 20 return rlz_lib::GetProductEventsAsCgi(product, unescaped_cgi, 21 unescaped_cgi_size); 22 } 23 RLZ_DLL_EXPORT bool ClearAllProductEvents(rlz_lib::Product product) { 24 return rlz_lib::ClearAllProductEvents(product); 25 } 26 27 RLZ_DLL_EXPORT bool ClearProductEvent(rlz_lib::Product product, 28 rlz_lib::AccessPoint point, 29 rlz_lib::Event event_id) { 30 return rlz_lib::ClearProductEvent(product, point, event_id); 31 } 32 33 RLZ_DLL_EXPORT bool GetAccessPointRlz(rlz_lib::AccessPoint point, 34 char* rlz, 35 size_t rlz_size) { 36 return rlz_lib::GetAccessPointRlz(point, rlz, rlz_size); 37 } 38 39 RLZ_DLL_EXPORT bool SetAccessPointRlz(rlz_lib::AccessPoint point, 40 const char* new_rlz) { 41 return rlz_lib::SetAccessPointRlz(point, new_rlz); 42 } 43 44 RLZ_DLL_EXPORT bool CreateMachineState() { 45 return rlz_lib::CreateMachineState(); 46 } 47 48 RLZ_DLL_EXPORT bool SetMachineDealCode(const char* dcc) { 49 return rlz_lib::SetMachineDealCode(dcc); 50 } 51 52 RLZ_DLL_EXPORT bool GetMachineDealCodeAsCgi(char* cgi, size_t cgi_size) { 53 return rlz_lib::GetMachineDealCodeAsCgi(cgi, cgi_size); 54 } 55 56 RLZ_DLL_EXPORT bool GetMachineDealCode2(char* dcc, size_t dcc_size) { 57 return rlz_lib::GetMachineDealCode(dcc, dcc_size); 58 } 59 60 RLZ_DLL_EXPORT bool GetPingParams(rlz_lib::Product product, 61 const rlz_lib::AccessPoint* access_points, 62 char* unescaped_cgi, 63 size_t unescaped_cgi_size) { 64 return rlz_lib::GetPingParams(product, access_points, unescaped_cgi, 65 unescaped_cgi_size); 66 } 67 68 RLZ_DLL_EXPORT bool ParsePingResponse(rlz_lib::Product product, 69 const char* response) { 70 return rlz_lib::ParsePingResponse(product, response); 71 } 72 73 RLZ_DLL_EXPORT bool IsPingResponseValid(const char* response, 74 int* checksum_idx) { 75 return rlz_lib::IsPingResponseValid(response, checksum_idx); 76 } 77 78 RLZ_DLL_EXPORT bool SetMachineDealCodeFromPingResponse(const char* response) { 79 return rlz_lib::SetMachineDealCodeFromPingResponse(response); 80 } 81 82 RLZ_DLL_EXPORT bool SendFinancialPing(rlz_lib::Product product, 83 const rlz_lib::AccessPoint* access_points, 84 const char* product_signature, 85 const char* product_brand, 86 const char* product_id, 87 const char* product_lang, 88 bool exclude_machine_id) { 89 return rlz_lib::SendFinancialPing(product, access_points, product_signature, 90 product_brand, product_id, product_lang, exclude_machine_id); 91 } 92 93 RLZ_DLL_EXPORT bool SendFinancialPingNoDelay( 94 rlz_lib::Product product, 95 const rlz_lib::AccessPoint* access_points, 96 const char* product_signature, 97 const char* product_brand, 98 const char* product_id, 99 const char* product_lang, 100 bool exclude_machine_id) { 101 return rlz_lib::SendFinancialPing(product, access_points, product_signature, 102 product_brand, product_id, product_lang, exclude_machine_id, true); 103 } 104 105 RLZ_DLL_EXPORT void ClearProductState( 106 rlz_lib::Product product, const rlz_lib::AccessPoint* access_points) { 107 return rlz_lib::ClearProductState(product, access_points); 108 } 109