blob: 6ca3aa4570b7bf6648bf57dcfd514b2a8eeddf6d [file] [log] [blame]
// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef TRUNKS_TSS_TCS_H_
#define TRUNKS_TSS_TCS_H_
#include <base/macros.h>
#include "context_manager.h"
#include "tcs_context.h"
#include "tpm.h"
namespace trunks {
// Defines the singleton class that holds the context manager and the object
// representing the TPM device.
class Tcs {
public:
Tcs();
virtual ~Tcs();
// Gets the TCS context manager.
ContextManager<TcsContext>* context_manager() { return &context_manager_; }
// Gets an object representing the TPM.
virtual Tpm* tpm() { return &tpm_; }
// Gets the singleton instance for the TCS.
static Tcs* GetInstance();
private:
// The TCS context manager.
ContextManager<TcsContext> context_manager_;
// The TPM.
Tpm tpm_;
DISALLOW_COPY_AND_ASSIGN(Tcs);
};
} // namespace trunks
#endif // TRUNKS_TSS_TCS_H_