Ticket #6116: LocaleCatalog.cpp

File LocaleCatalog.cpp, 1.3 KB (added by Karvjorm, 14 years ago)

Singleton LocaleCatalog class for libbluetooth (and other libraries)

Line 
1/*
2 * Copyright 2010, Jorma Karvonen, karvonen.jorma_at_gmail.com. All rights
3 * reserved. Distributed under the terms of the MIT License.
4 */
5
6#include "LocaleCatalog.h"
7
8#include <Autolock.h>
9#include <Locker.h>
10
11#undef B_TRANSLATE_CONTEXT
12#define B_TRANSLATE_CONTEXT "LocaleCatalog"
13
14
15// static instance (created on first call to LocaleCatalog::Instance().)
16LocaleCatalog* LocaleCatalog::s_instance = 0;
17BLocker LocaleCatalog::s_instanceLock("LocaleCatalog::s_instanceLock");
18
19
20LocaleCatalog::~LocaleCatalog() {}
21
22
23/*
24 * singleton access
25 */
26LocaleCatalog*
27LocaleCatalog::Instance()
28{
29 BAutolock _l(s_instanceLock);
30 if (!s_instance)
31 s_instance = new LocaleCatalog();
32
33 return s_instance;
34}
35
36
37/*
38 * kill current instance if any
39 */
40void
41LocaleCatalog::QuitInstance()
42{
43 BAutolock _l(s_instanceLock);
44 if (s_instance)
45 s_instance = 0;
46}
47
48
49/*
50 * hidden constructor (use Instance() to access a single instance)
51 */
52LocaleCatalog::LocaleCatalog()
53 :
54 fAppCatalog(NULL)
55{
56 // TODO: here something else than be_locale should be called ?
57 be_locale->GetAppCatalog(&fAppCatalog);
58}
59
60
61bool
62LocaleCatalog::QuitRequested()
63{
64 return false;
65}
66
67
68void
69LocaleCatalog::MessageReceived(BMessage* message)
70{
71 switch (message->what) {
72 default:
73 ;
74 }
75}
76