LunaSysMgr
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PersistentWindowCache.h
Go to the documentation of this file.
1 /* @@@LICENSE
2 *
3 * Copyright (c) 2008-2012 Hewlett-Packard Development Company, L.P.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 * LICENSE@@@ */
18 
19 
20 
21 
22 #ifndef PERSISTENTWINDOWCACHE_H
23 #define PERSISTENTWINDOWCACHE_H
24 
25 #include "Common.h"
26 
27 #include <set>
28 #include <memory>
29 #include <string>
30 #include "Window.h"
31 
33 {
34 public:
35 
37 
38  bool shouldPersistWindow(Window* w);
39  bool addWindow(Window* w);
40  bool removeWindow(Window* w);
41  bool hasWindow(Window* w);
42 
43  void showWindow(Window* w);
44  bool hideWindow(Window* w);
45 
46  std::set<Window*>* getCachedWindows() { return &m_windowCache; }
47 
48 private:
49 
52 
53 private:
54 
55  typedef std::pair<std::string, std::string> AppWindowNamePair;
56 
57  std::set<Window*> m_windowCache;
58  std::set<AppWindowNamePair> m_persistableWindowIdentifiers;
59 };
60 
61 #endif /* PERSISTENTWINDOWCACHE_H */