~noskcaj/ubuntu/saucy/sflphone/merge-1.2.3-2

« back to all changes in this revision

Viewing changes to daemon/libs/utilspp/singleton/singleton_holder.hpp

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2012-05-19 21:46:37 UTC
  • mfrom: (1.1.7)
  • Revision ID: package-import@ubuntu.com-20120519214637-la8rbrford5kj6m3
Tags: 1.1.0-1
* New upstream release 
  - Fixes "FTBFS with libccrtp-dev/2.0.2 from experimental" (Closes: #663282)
* NEW Maintainer: Debian VoIP Team - Thanks Francois for your work.
  - (Closes: #665789: O: sflphone -- SIP and IAX2 compatible VoIP phone)
* Added Build-Depends: libdbus-c++-bin
* Add gcc47-fixes.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 *    Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre>
3
 
 *
4
 
 *    Permission is hereby granted, free of charge, to any person obtaining
5
 
 *    a copy of this software and associated documentation files
6
 
 *    (cURLpp), to deal in the Software without restriction,
7
 
 *    including without limitation the rights to use, copy, modify, merge,
8
 
 *    publish, distribute, sublicense, and/or sell copies of the Software,
9
 
 *    and to permit persons to whom the Software is furnished to do so,
10
 
 *    subject to the following conditions:
11
 
 *
12
 
 *    The above copyright notice and this permission notice shall be included
13
 
 *    in all copies or substantial portions of the Software.
14
 
 *
15
 
 *    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16
 
 *    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
 
 *    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18
 
 *    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19
 
 *    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20
 
 *    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21
 
 *    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
 
 */
23
 
 
24
 
#ifndef __SINGLETON_HOLDER_HPP__
25
 
#define __SINGLETON_HOLDER_HPP__
26
 
 
27
 
#include "creation_using_new.hpp"
28
 
#include "lifetime_default.hpp"
29
 
#include "../threading_single.hpp"
30
 
 
31
 
namespace utilspp
32
 
{
33
 
  template
34
 
  < class T,
35
 
    template < class > class CreationPolicy = utilspp::CreationUsingNew,
36
 
    template < class > class LifetimePolicy = utilspp::LifetimeDefault,
37
 
    template < class > class ThreadingModel = utilspp::ThreadingSingle >
38
 
  class SingletonHolder
39
 
  {
40
 
  public:
41
 
    //the accessor method.
42
 
    static T& instance();
43
 
    static void makeInstance();
44
 
    static void terminate();
45
 
 
46
 
  protected:
47
 
    //protected to be sure that nobody may create one by himself.
48
 
    SingletonHolder();
49
 
 
50
 
  private:
51
 
    static void destroySingleton();
52
 
 
53
 
  private:
54
 
    typedef typename ThreadingModel< T * >::VolatileType InstanceType;
55
 
    static InstanceType mInstance;
56
 
    static bool mDestroyed;
57
 
  };
58
 
 
59
 
}
60
 
 
61
 
#include "singleton_holder.inl"
62
 
 
63
 
#endif