1 // Copyright (c) 2012 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_SERVICE_CLOUD_PRINT_CLOUD_PRINT_TOKEN_STORE_H_ 6 #define CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_TOKEN_STORE_H_ 7 8 #include <string> 9 #include "base/logging.h" 10 #include "base/threading/non_thread_safe.h" 11 12 // This class serves as the single repository for cloud print auth tokens. This 13 // is only used within the CloudPrintProxyCoreThread. 14 15 namespace cloud_print { 16 17 class CloudPrintTokenStore : public base::NonThreadSafe { 18 public: 19 // Returns the CloudPrintTokenStore instance for this thread. Will be NULL 20 // if no instance was created in this thread before. 21 static CloudPrintTokenStore* current(); 22 23 CloudPrintTokenStore(); 24 ~CloudPrintTokenStore(); 25 26 void SetToken(const std::string& token); 27 std::string token() const { 28 DCHECK(CalledOnValidThread()); 29 return token_; 30 } 31 32 private: 33 std::string token_; 34 35 DISALLOW_COPY_AND_ASSIGN(CloudPrintTokenStore); 36 }; 37 38 } // namespace cloud_print 39 40 #endif // CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_TOKEN_STORE_H_ 41