Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/atmospheric_engine/src/lib/util/loading/resource.h @ 8626

Last change on this file since 8626 was 7195, checked in by bensch, 19 years ago

orxonox/trunk: performance issues

File size: 1.4 KB
Line 
1/*!
2 * @file resource.h
3 * @brief Definition of a Resource.
4*/
5
6#ifndef _RESOURCE_H
7#define _RESOURCE_H
8
9#include "base_object.h"
10#include "multi_type.h"
11#include <string>
12
13// FORWARD DECLARATION
14
15
16
17//! An enumerator for different (UN)LOAD-types.
18/**
19 * RP_NO:        will be unloaded on request
20 * RP_LEVEL:     will be unloaded at the end of a Level
21 * RP_CAMPAIGN:  will be unloaded at the end of a Campaign
22 * RP_GAME:      will be unloaded at the end of the whole Game (when closing orxonox)
23 */
24typedef enum ResourcePriority
25{
26  RP_NO        =   0,
27  RP_LEVEL     =   1,
28  RP_CAMPAIGN  =   2,
29  RP_GAME      =   3
30};
31
32
33
34//! A Resource is an Object, that can be loaded from Disk
35/**
36 *
37 */
38class Resource : virtual public BaseObject {
39
40 public:
41   Resource(const std::string& fileName);
42  virtual ~Resource();
43
44  virtual bool load(std::string& fileName, const MultiType& param1, const MultiType& param2);
45  virtual bool reload();
46  virtual bool unload();
47
48 private:
49   std::string       fileName;
50
51   unsigned int      referenceCount;    //!< How many times this Resource has been loaded.
52/// TODO REMOVE THIS:   ResourceType      type;              //!< ResourceType of this Resource.
53   ResourcePriority  prio;              //!< The Priority of this resource. (can only be increased, so noone else will delete this)
54
55   MultiType         param[3];          //!< The Parameters given to this Resource.
56};
57
58#endif /* _RESOURCE_H */
Note: See TracBrowser for help on using the repository browser.