source: nrEngine/src/Resource.cpp @ 15

Revision 15, 3.2 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13
14//----------------------------------------------------------------------------------
15// Includes
16//----------------------------------------------------------------------------------
17#include "Resource.h"
18#include "Exception.h"
19#include "Log.h"
20
21namespace nrEngine {
22
23        //----------------------------------------------------------------------------------
24        IResource::IResource(const std::string& resType)
25        {
26                // setup default data
27                mResIsLoaded = false;
28                mResHandle = 0;
29                mResIsEmpty = false;
30                mResDataSize = sizeof(*this);
31                //mResLoader = NULL;
32                setResourceType(resType);
33        }
34
35        //----------------------------------------------------------------------------------
36        IResource::~IResource()
37        {
38                // check for valid loader
39                /*if (mResLoader != NULL)
40                {
41                        // notify the parent loader, that the resource object will be removed now
42                        mResLoader->remove(this);
43                }*/
44               
45                // notify the manager, that this resource was
46        }
47
48        //----------------------------------------------------------------------------------
49        Result IResource::unloadRes()
50        {
51                //if (mResLoader) mResLoader->notifyUnloadResource(this);
52                return OK;
53        }
54
55        //----------------------------------------------------------------------------------
56        Result IResource::unloadResThroughLoader()
57        {
58                // check for valid loader
59                if (mResLoader == NULL)
60                {
61                        char msg[128];
62                        sprintf(msg, "Resource %s does not get valid loader!", getResName().c_str());
63                        NR_EXCEPT(RES_LOADER_NOT_EXISTS, msg, "IResource::~IResource()");
64                }
65                return mResLoader->unload(getSharedPtrFromThis());
66        }
67
68        //----------------------------------------------------------------------------------
69        Result IResource::reloadResThroughLoader()
70        {
71                // check for valid loader
72                if (mResLoader == NULL)
73                {
74                        char msg[128];
75                        sprintf(msg, "Resource %s does not get valid loader!", getResName().c_str());
76                        NR_EXCEPT(RES_LOADER_NOT_EXISTS, msg, "IResource::~IResource()");
77                }
78                return mResLoader->reload(getSharedPtrFromThis());
79        }
80
81        //----------------------------------------------------------------------------------
82        Result IResource::removeResThroughLoader()
83        {
84                // check for valid loader
85                if (mResLoader == NULL)
86                {
87                        char msg[128];
88                        sprintf(msg, "Resource %s does not get valid loader!", getResName().c_str());
89                        NR_EXCEPT(RES_LOADER_NOT_EXISTS, msg, "IResource::~IResource()");
90                }
91                return mResLoader->remove(getSharedPtrFromThis());
92        }
93};
94
Note: See TracBrowser for help on using the repository browser.