152e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET/*
252e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * Copyright (C) 2015 The Android Open Source Project
352e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET *
452e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * Licensed under the Apache License, Version 2.0 (the "License");
552e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * you may not use this file except in compliance with the License.
652e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * You may obtain a copy of the License at
752e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET *
852e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET *      http://www.apache.org/licenses/LICENSE-2.0
952e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET *
1052e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * Unless required by applicable law or agreed to in writing, software
1152e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * distributed under the License is distributed on an "AS IS" BASIS,
1252e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1352e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * See the License for the specific language governing permissions and
1452e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET * limitations under the License.
1552e5b99983c1f7ff0b9a1f3b4b80d779073b21c8Bertrand SIMONNET */
1646b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET
1746b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET#ifndef METRICS_UPLOADER_SENDER_H_
1846b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET#define METRICS_UPLOADER_SENDER_H_
1946b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET
2046b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET#include <string>
2146b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET
2246b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET// Abstract class for a Sender that uploads a metrics message.
2346b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNETclass Sender {
2446b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET public:
25b1640eee939813efd80e3ead1cd0e10d5a3d28d5Yunlian Jiang  virtual ~Sender() {}
2646b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET  // Sends a message |content| with its sha1 hash |hash|
2746b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET  virtual bool Send(const std::string& content, const std::string& hash) = 0;
2846b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET};
2946b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET
3046b49da5ad156911cf17aa79f373d90595063ba0Bertrand SIMONNET#endif  // METRICS_UPLOADER_SENDER_H_
31