Simple Image Loading LibrarY 0.1.0
SILLYImageLoaderManager.h
1/***********************************************************************
2 filename: ImageLoaderManager.h
3 created: 10 Jun 2006
4 author: Olivier Delannoy
5
6 purpose: Manage all available loader
7*************************************************************************/
8/***************************************************************************
9 * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining
12 * a copy of this software and associated documentation files (the
13 * "Software"), to deal in the Software without restriction, including
14 * without limitation the rights to use, copy, modify, merge, publish,
15 * distribute, sublicense, and/or sell copies of the Software, and to
16 * permit persons to whom the Software is furnished to do so, subject to
17 * the following conditions:
18 *
19 * The above copyright notice and this permission notice shall be
20 * included in all copies or substantial portions of the Software.
21 *
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
26 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
27 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28 * OTHER DEALINGS IN THE SOFTWARE.
29 ***************************************************************************/
30#ifndef _SILLYImageLoaderManager_h_
31#define _SILLYImageLoaderManager_h_
32#include "SILLYBase.h"
33#include <vector>
34// Start of section namespace SILLY
35namespace SILLY
36{
37class ImageLoader; // Forward declaration
42typedef std::vector<ImageLoader*> ImageLoaderList;
43
44#if defined(_MSC_VER)
45
46# pragma warning(push)
47
48# pragma warning(disable : 4251)
49
50#endif
51
56class SILLY_EXPORT ImageLoaderManager
57{
58
59public:
74 ImageLoaderList::iterator begin();
79 ImageLoaderList::iterator end();
86 void add(ImageLoader* loader);
87
88private:
89 ImageLoaderList d_loaders;
90
91public:
92 static ImageLoaderManager* getSingletonPtr();
93 static ImageLoaderManager& getSingleton();
94
95private:
96 static ImageLoaderManager* d_instance;
97
98 // Disabled operations
101};
102
103#if defined(_MSC_VER)
104
105# pragma warning(pop)
106
107#endif
108
109} // End of section namespace SILLY
110
111// Inclue inline function when needed
112#ifdef SILLY_OPT_INLINE
113#include "SILLYImageLoaderManager.icpp"
114#endif
115
116#endif // end of guard _SILLYImageLoaderManager_h_
Simple Image Loading LibrarY namespace.
std::vector< ImageLoader * > ImageLoaderList
Typename for a collection of image loader.
This is an abstract class that define the interface of all image loader.
Manage the list of all supported ImageLoader.
void add(ImageLoader *loader)
Register an ImageLoader object.
ImageLoaderList::iterator begin()
Get an iterator to the first ImageLoader registered.
ImageLoaderList::iterator end()
Get an iterator to the first not registered ImageLoader.