NUGU SDK Linux  1.7.6
interaction_control_manager_interface.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019 SK Telecom Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __NUGU_INTERACTION_CONTROL_MANAGER_INTERFACE_H__
18 #define __NUGU_INTERACTION_CONTROL_MANAGER_INTERFACE_H__
19 
20 #include <string>
21 
22 #include <nugu.h>
23 
24 namespace NuguClientKit {
25 
40 enum class InteractionMode {
41  NONE,
42  MULTI_TURN
43 };
44 
50 public:
51  virtual ~IInteractionControlManagerListener() = default;
52 
57  virtual void onModeChanged(bool is_multi_turn) = 0;
58 
62  virtual void onHasMultiTurn() = 0;
63 };
64 
70 public:
71  virtual ~IInteractionControlManager() = default;
72 
77  virtual void addListener(IInteractionControlManagerListener* listener) = 0;
78 
84 
90  virtual void start(InteractionMode mode, const std::string& requester) = 0;
91 
97  virtual void finish(InteractionMode mode, const std::string& requester) = 0;
98 
102  virtual void notifyHasMultiTurn() = 0;
103 
107  virtual bool isMultiTurnActive() = 0;
108 
112  virtual void clear() = 0;
113 };
114 
119 } // NuguClientKit
120 
121 #endif /* __NUGU_INTERACTION_CONTROL_MANAGER_INTERFACE_H__ */
IInteractionControlManagerListener interface.
Definition: interaction_control_manager_interface.hh:49
virtual void onModeChanged(bool is_multi_turn)=0
Receive callback when the interaction mode is changed.
virtual void onHasMultiTurn()=0
Receive callback when the current directive has multi-turn.
InteractionControlManager interface.
Definition: interaction_control_manager_interface.hh:69
virtual void notifyHasMultiTurn()=0
Notify the current directive has multi-turn.
virtual void start(InteractionMode mode, const std::string &requester)=0
Start specific interaction mode.
virtual void finish(InteractionMode mode, const std::string &requester)=0
Finish specific interaction mode.
virtual void clear()=0
Clear all about interaction mode.
virtual bool isMultiTurnActive()=0
Check whether multi-turn is active.
virtual void removeListener(IInteractionControlManagerListener *listener)=0
Remove IInteractionControlManagerListener.
virtual void addListener(IInteractionControlManagerListener *listener)=0
Add IInteractionControlManagerListener.
InteractionMode
Interaction Mode.
Definition: interaction_control_manager_interface.hh:40