• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 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 NET_QUIC_CRYPTO_SOURCE_ADDRESS_TOKEN_H_
6 #define NET_QUIC_CRYPTO_SOURCE_ADDRESS_TOKEN_H_
7 
8 #include <string>
9 
10 #include "base/basictypes.h"
11 #include "base/strings/string_piece.h"
12 
13 namespace net {
14 
15 // TODO(rtenneti): sync with server more rationally.
16 class SourceAddressToken {
17  public:
18   SourceAddressToken();
19   ~SourceAddressToken();
20 
21   std::string SerializeAsString() const;
22 
23   bool ParseFromArray(const char* plaintext, size_t plaintext_length);
24 
ip()25   std::string ip() const {
26     return ip_;
27   }
28 
timestamp()29   int64 timestamp() const {
30     return timestamp_;
31   }
32 
set_ip(base::StringPiece ip)33   void set_ip(base::StringPiece ip) {
34     ip_ = ip.as_string();
35   }
36 
set_timestamp(int64 timestamp)37   void set_timestamp(int64 timestamp) {
38     timestamp_ = timestamp;
39   }
40 
41  private:
42   std::string ip_;
43   int64 timestamp_;
44 
45   DISALLOW_COPY_AND_ASSIGN(SourceAddressToken);
46 };
47 
48 }  // namespace net
49 
50 #endif  // NET_QUIC_CRYPTO_SOURCE_ADDRESS_TOKEN_H_
51