1 #ifndef __DALI_INTERNAL_FRAMEWORK_H__
2 #define __DALI_INTERNAL_FRAMEWORK_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
23 #include <dali/public-api/signals/callback.h>
26 #include "abort-handler.h"
38 * The Framework class is used to register callbacks with the SLP platform so that
39 * we know when any of the application lifecycle events occur. This includes events
40 * like when our application is to be initialised, terminated, paused, resumed etc.
47 * Observer class for the framework.
54 * Invoked when the application is to be initialised.
56 virtual void OnInit() {}
59 * Invoked when the application is to be terminated.
61 virtual void OnTerminate() {}
64 * Invoked when the application is to be paused.
66 virtual void OnPause() {}
69 * Invoked when the application is to be resumed.
71 virtual void OnResume() {}
74 * Invoked when the application is to be reset.
76 virtual void OnReset() {}
79 * Invoked when the language of the device is changed.
81 virtual void OnLanguageChanged() {}
88 * @param[in] observer The observer of the Framework.
89 * @param[in] argc A pointer to the number of arguments.
90 * @param[in] argv A pointer the the argument list.
92 Framework(Observer& observer, int* argc, char ***argv, const std::string& name);
102 * Runs the main loop of framework
107 * Quits the main loop
112 * Checks whether the main loop of the framework is running.
113 * @return true, if the main loop is running, false otherwise.
115 bool IsMainLoopRunning();
118 * If the main loop aborts unexpectedly, then the connected callback function is called.
119 * @param[in] callBack The function to call.
120 * @note Only one callback can be registered. The last callback to be set will be called on abort.
121 * @note The ownership of callback is passed onto this class.
123 void AddAbortCallback( CallbackBase* callback );
126 * Gets bundle name which was passed in app_reset callback.
128 std::string GetBundleName() const;
131 * Gets bundle id which was passed in app_reset callback.
133 std::string GetBundleId() const;
138 Framework(const Framework&);
139 Framework& operator=(Framework&);
143 * Called by the SLP framework when an application lifecycle event occurs.
144 * @param[in] type The type of event occurred.
146 bool SlpAppStatusHandler(int type);
149 * Called app_reset callback was called with bundle.
151 void SetBundleName(const std::string& name);
154 * Called app_reset callback was called with bundle.
156 void SetBundleId(const std::string& id);
159 * Called if the application is aborted.
161 void AbortCallback();
164 * Called for initializing on specified backend. (X11 or Wayland)
175 std::string mBundleName;
176 std::string mBundleId;
177 AbortHandler mAbortHandler;
179 private: // impl members
186 } // namespace Adaptor
188 } // namespace Internal
192 #endif // __DALI_INTERNAL_FRAMEWORK_H__