Home | History | Annotate | Download | only in copresence
      1 // Copyright 2014 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 #ifndef CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_TRANSLATIONS_H_
      6 #define CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_TRANSLATIONS_H_
      7 
      8 #include <map>
      9 #include <string>
     10 #include <vector>
     11 
     12 #include "base/macros.h"
     13 #include "base/memory/linked_ptr.h"
     14 #include "components/copresence/proto/enums.pb.h"
     15 
     16 namespace copresence {
     17 class ReportRequest;
     18 }
     19 
     20 namespace extensions {
     21 
     22 namespace api {
     23 namespace copresence {
     24 struct Operation;
     25 struct PublishOperation;
     26 struct SubscribeOperation;
     27 }
     28 }
     29 
     30 // A 1-1 map of of which app a subscription id belongs to.
     31 // Key = subscription, value = app_id.
     32 typedef std::map<std::string, std::string> SubscriptionToAppMap;
     33 
     34 // Returns report request protocol buffer containing all the operations in the
     35 // given vector. If parsing any of the operations fails, we return false.
     36 bool PrepareReportRequestProto(
     37     const std::vector<linked_ptr<api::copresence::Operation>>& operations,
     38     const std::string& app_id,
     39     SubscriptionToAppMap* apps_by_subscription_id,
     40     copresence::ReportRequest* request);
     41 
     42 }  // namespace extensions
     43 
     44 #endif  // CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_TRANSLATIONS_H_
     45