146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "athena/activity/public/activity_factory.h" 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/logging.h" 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace athena { 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace { 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)ActivityFactory* instance = NULL; 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// static 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void ActivityFactory::RegisterActivityFactory(ActivityFactory* factory) { 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(!instance); 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) instance = factory; 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// static 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)ActivityFactory* ActivityFactory::Get() { 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(instance); 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return instance; 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// static 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void ActivityFactory::Shutdown() { 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(instance); 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) delete instance; 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) instance = NULL; 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace athena 37