1 /* 2 Copyright (c) 2005-2019 by Jakob Schröter <js@camaya.net> 3 This file is part of the gloox library. http://camaya.net/gloox 4 5 This software is distributed under a license. The full license 6 agreement can be found in the file LICENSE in this distribution. 7 This software may not be copied, modified, sold or distributed 8 other than expressed in the named license agreement. 9 10 This software is distributed without any warranty. 11 */ 12 13 14 #ifndef CHATSTATEHANDLER_H__ 15 #define CHATSTATEHANDLER_H__ 16 17 #include "gloox.h" 18 19 namespace gloox 20 { 21 22 class JID; 23 24 /** 25 * @brief A virtual interface that enables an object to be notified about 26 * a remote entity's Chat States (@xep{0085}). 27 * 28 * @author Jakob Schröter <js@camaya.net> 29 * @since 0.8 30 */ 31 class GLOOX_API ChatStateHandler 32 { 33 public: 34 /** 35 * Virtual Destructor. 36 */ ~ChatStateHandler()37 virtual ~ChatStateHandler() {} 38 39 /** 40 * Notifies the ChatStateHandler that a different chat state has been set by the remote 41 * contact. 42 * @param from The originator of the Event. 43 * @param state The chat state set by the remote entity. 44 */ 45 virtual void handleChatState( const JID& from, ChatStateType state ) = 0; 46 47 }; 48 49 } 50 51 #endif // CHATSTATEHANDLER_H__ 52