Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
120a9af2
Commit
120a9af2
authored
Dec 21, 2009
by
Hugo Beauzee-Luyssen
Committed by
Jean-Baptiste Kempf
Dec 25, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding a generic singleton pattern implementation
Signed-off-by:
Jean-Baptiste Kempf
<
jb@videolan.org
>
parent
f54df293
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
1 deletion
+66
-1
modules/gui/qt4/Modules.am
modules/gui/qt4/Modules.am
+3
-1
modules/gui/qt4/util/singleton.hpp
modules/gui/qt4/util/singleton.hpp
+63
-0
No files found.
modules/gui/qt4/Modules.am
View file @
120a9af2
...
...
@@ -302,7 +302,9 @@ noinst_HEADERS = \
util/qvlcframe.hpp \
util/qvlcapp.hpp \
util/qt_dirs.hpp \
util/registry.hpp
util/registry.hpp \
util/singleton.hpp
EXTRA_DIST += \
vlc.qrc \
...
...
modules/gui/qt4/util/singleton.hpp
0 → 100644
View file @
120a9af2
/*****************************************************************************
* singleton.hpp: Generic Singleton pattern implementation
****************************************************************************
* Copyright (C) 2009 VideoLAN
*
* Authors: Hugo Beauzee-Luyssen <beauze.h # gmail - com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef _SINGLETON_HPP_
#define _SINGLETON_HPP_
#include <stdlib.h>
#include "qt4.hpp"
template
<
typename
T
>
class
Singleton
{
public:
static
T
*
getInstance
(
intf_thread_t
*
p_intf
=
NULL
)
{
if
(
m_instance
==
NULL
)
m_instance
=
new
T
(
p_intf
);
return
m_instance
;
}
static
void
killInstance
()
{
if
(
m_instance
!=
NULL
)
{
delete
m_instance
;
m_instance
=
NULL
;
}
}
protected:
Singleton
(){}
virtual
~
Singleton
(){}
/* Not implemented since these methods should *NEVER* been called.
If they do, it probably won't compile :) */
Singleton
(
const
Singleton
<
T
>&
);
Singleton
<
T
>&
operator
=
(
const
Singleton
<
T
>&
);
private:
static
T
*
m_instance
;
};
template
<
typename
T
>
T
*
Singleton
<
T
>::
m_instance
=
NULL
;
#endif // _SINGLETON_HPP_
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment