diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-21 14:10:52 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-21 14:10:52 +0000 |
commit | 0a5e34a5386fa254a3b133f0a5f7667f1f790f67 (patch) | |
tree | d1dd0e80264f900004c56ad5ce6b56efea0bec49 /rlz/lib/financial_ping.h | |
parent | b049c382ff842f546e2bcc261ce23438bc8764bf (diff) | |
download | chromium_src-0a5e34a5386fa254a3b133f0a5f7667f1f790f67.zip chromium_src-0a5e34a5386fa254a3b133f0a5f7667f1f790f67.tar.gz chromium_src-0a5e34a5386fa254a3b133f0a5f7667f1f790f67.tar.bz2 |
Check-in rlz code to src\rlz from http://code.google.com/p/rlz/.
Review URL: https://chromiumcodereview.appspot.com/10597002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143381 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'rlz/lib/financial_ping.h')
-rw-r--r-- | rlz/lib/financial_ping.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/rlz/lib/financial_ping.h b/rlz/lib/financial_ping.h new file mode 100644 index 0000000..081ecba --- /dev/null +++ b/rlz/lib/financial_ping.h @@ -0,0 +1,64 @@ +// 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. +// +// Library functions related to the Financial Server ping. + +#ifndef RLZ_LIB_FINANCIAL_PING_H_ +#define RLZ_LIB_FINANCIAL_PING_H_ + +#include <string> +#include "rlz/lib/rlz_enums.h" + +#if defined(RLZ_NETWORK_IMPLEMENTATION_CHROME_NET) +namespace net { +class URLRequestContextGetter; +} // namespace net +#endif + +namespace rlz_lib { + +class FinancialPing { + public: + // Form the HTTP request to send to the PSO server. + // Will look something like: + // /pso/ping?as=swg&brand=GGLD&id=124&hl=en& + // events=I7S&rep=1&rlz=I7:val,W1:&dcc=dval + static bool FormRequest(Product product, const AccessPoint* access_points, + const char* product_signature, + const char* product_brand, const char* product_id, + const char* product_lang, bool exclude_machine_id, + std::string* request); + + // Returns whether the time is right to send a ping. + // If no_delay is true, this should always ping if there are events, + // or one week has passed since last_ping when there are no new events. + // If no_delay is false, this should ping if current time < last_ping time + // (case of time reset) or if one day has passed since last_ping and there + // are events, or one week has passed since last_ping when there are + // no new events. + static bool IsPingTime(Product product, bool no_delay); + + // Set the last ping time to be now. Writes to RlzValueStore. + static bool UpdateLastPingTime(Product product); + + // Clear the last ping time - should be called on uninstall. + // Writes to RlzValueStore. + static bool ClearLastPingTime(Product product); + + // Ping the financial server with request. Writes to RlzValueStore. + static bool PingServer(const char* request, std::string* response); + +#if defined(RLZ_NETWORK_IMPLEMENTATION_CHROME_NET) + static bool SetURLRequestContext(net::URLRequestContextGetter* context); +#endif + + private: + FinancialPing() {} + ~FinancialPing() {} +}; + +} // namespace rlz_lib + + +#endif // RLZ_LIB_FINANCIAL_PING_H_ |