summaryrefslogtreecommitdiffstats
path: root/rlz/lib/financial_ping.h
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-21 14:10:52 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-21 14:10:52 +0000
commit0a5e34a5386fa254a3b133f0a5f7667f1f790f67 (patch)
treed1dd0e80264f900004c56ad5ce6b56efea0bec49 /rlz/lib/financial_ping.h
parentb049c382ff842f546e2bcc261ce23438bc8764bf (diff)
downloadchromium_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.h64
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_