2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full text of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
10 //==========================================================================
12 * @file CicoSCResourceManager.h
14 * @brief This file is definition of CicoSCResourceManager class
16 //==========================================================================
17 #ifndef __CICO_SC_RESOURCE_MANAGER_H__
18 #define __CICO_SC_RESOURCE_MANAGER_H__
25 #include "ico_syc_mrp_resource_private.h"
27 //==========================================================================
28 // Forward declaration
29 //==========================================================================
31 class CicoSCPolicyManager;
32 class CicoSCWindowController;
33 class CicoSCInputController;
35 //==========================================================================
37 * @brief This class manages resources
39 //==========================================================================
40 class CicoSCResourceManager
43 // default constructor
44 CicoSCResourceManager();
47 ~CicoSCResourceManager();
49 // initialize resource manager
52 // terminate resource manager
56 void handleCommand(const CicoSCCommand &cmd, bool internal=false);
58 // set CicoSCWindowController instance
59 void setWindowController(CicoSCWindowController *winCtrl);
61 // set CicoSCInputController instance
62 void setInputController(CicoSCInputController *inputCtrl);
64 // receive changed state
65 void receiveChangedState(int state);
68 // assignment operator
69 CicoSCResourceManager& operator=(const CicoSCResourceManager &object);
72 CicoSCResourceManager(const CicoSCResourceManager &object);
74 bool acquireDisplayResource(resource_request_t *newreq,
76 void releaseDisplayResource(resource_request_t *newreq);
78 bool acquireSoundResource(resource_request_t *newreq);
79 void releaseSoundResource(resource_request_t *newreq);
81 bool acquireInputResource(resource_request_t *newreq);
82 void releaseInputResource(resource_request_t *newreq);
84 resource_request_t* newResourceRequest(int resid,
86 const CicoSCCommand &cmd);
88 void delResourceRequest(resource_request_t *req);
90 static void enforceSound(unsigned short state,
91 resource_request_t *req,
94 resource_request_t * popDispResReq(resource_request_t *req);
96 resource_request_t * popSoundResReq(resource_request_t *req);
98 resource_request_t * popInputResReq(resource_request_t *req);
100 void updateDisplayResource(resource_request_t *req, int chgzoneid=-1);
101 void updateSoundResource(resource_request_t *req);
102 void updateInputResource(resource_request_t *req);
104 void updateDisplayResourceRegulation(int state);
105 void updateSoundResourceRegulation(int state);
106 void updateInputResourceRegulation(int state);
108 resource_request_t * findCurDispResOwerReq(resource_request_t *req);
109 resource_request_t * popCurDispResOwerReq(resource_request_t *req);
110 void dumpCurDispResOwerReq(void);
112 resource_request_t * findWaitingDispResReq(resource_request_t *req);
113 resource_request_t * popWaitingDispResReq(resource_request_t *req);
114 void dumpWaitingDispResReq(void);
117 CicoSCPolicyManager *m_policyMgr;
118 CicoSCWindowController *m_winCtrl;
119 CicoSCInputController *m_inputCtrl;
121 // pair zoneid and request
122 std::map<unsigned int, resource_request_t*> m_curDispResOwerReq;
123 std::map<int, resource_request_t*> m_curSoundResReq;
124 std::map<int, resource_request_t*> m_curInputResReq;
126 std::list<resource_request_t*> m_waitingDispResReq;
127 map<int, list<resource_request_t*> > m_soundReqQueue;
128 map<int, list<resource_request_t*> > m_inputReqQueue;
130 #endif // __CICO_SC_RESOURCE_MANAGER_H__
131 // vim:set expandtab ts=4 sw=4: