Chat-O-Matic/application/ProtocolLooper.h
Jaidyn Ann dce82c2ba2 Use Server::Get(), clean up header usage
Instead of passing around pointers to the Server, Server::Get() returns
the server's pointer (simplifying some things a good bit).
As a result, headers have been cleaned up, and some redundant KeyMaps
have been placed in Maps.h.
2022-02-23 16:04:56 -06:00

85 lines
1.8 KiB
C++

/*
* Copyright 2009-2011, Andrea Anzani. All rights reserved.
* Copyright 2009-2011, Pier Luigi Fiorini. All rights reserved.
* Copyright 2021, Jaidyn Levesque. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _PROTOCOL_LOOPER_H
#define _PROTOCOL_LOOPER_H
#include <Looper.h>
#include <ObjectList.h>
#include <String.h>
#include "ChatProtocol.h"
#include "ChatCommand.h"
#include "Maps.h"
class Contact;
class Conversation;
class ConversationAccountItem;
class ConversationView;
class User;
class ProtocolLooper : public BLooper {
public:
ProtocolLooper(ChatProtocol* protocol, int64 instance);
~ProtocolLooper();
void MessageReceived(BMessage* msg);
ConversationView*
GetView();
void ShowView();
ChatProtocol* Protocol();
ChatMap Conversations() const;
Conversation* ConversationById(BString id);
void AddConversation(Conversation* chat);
void RemoveConversation(Conversation* chat);
RosterMap Contacts() const;
Contact* ContactById(BString id);
void AddContact(Contact* contact);
void RemoveContact(Contact* contact);
UserMap Users() const;
User* UserById(BString id);
void AddUser(User* user);
CommandMap Commands() const;
ChatCommand* CommandById(BString id);
Contact* GetOwnContact();
void SetOwnContact(Contact* contact);
int64 GetInstance();
ConversationAccountItem*
GetListItem();
void LoadCommands();
private:
void _InitChatView();
ChatProtocol* fProtocol;
int64 fInstance;
Contact* fMySelf;
ChatMap fChatMap;
RosterMap fRosterMap;
UserMap fUserMap;
CommandMap fCommands;
ConversationView*
fSystemChatView;
ConversationAccountItem*
fListItem;
};
#endif // _PROTOCOL_LOOPER_H