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 15namespace cloud_print { 16 17class 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