EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
MailDB.h
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: caytchen
24 */
25 
26 #ifndef __MAILDB_H_INCL__
27 #define __MAILDB_H_INCL__
28 
29 #include "ServiceDB.h"
30 
31 class PyObject;
32 class PyString;
33 class Call_CreateLabel;
34 class Call_EditLabel;
35 
36 class MailDB : public ServiceDB
37 {
38 public:
39  PyRep* GetLabels(int characterID) const;
40 
41  PyString* GetMailBody(int id) const;
42 
43  void SetMailUnread(int id);
44  void SetMailRead(int id);
45  void SetMailsUnread(std::vector<int32> ids);
46  void SetMailsRead(std::vector<int32> ids);
47  void MarkAllAsRead(uint32 characterID);
48  void MarkAllAsUnread(uint32 characterID);
49 
50  bool CreateLabel(int characterID, Call_CreateLabel& args, uint32& newID) const;
51  void DeleteLabel(int characterID, int labelID) const;
52  void EditLabel(int characterID, Call_EditLabel& args) const;
53  void ApplyLabel(int32 messageID, int labelID);
54  void ApplyLabels(std::vector<int32> messageIDs, int labelID);
55 
56  void MarkAllAsReadByLabel(uint32 characterID, int labelID);
57  void MarkAllAsUnreadByLabel(uint32 characterID, int labelID);
58  void RemoveLabels(std::vector<int32> messageIDs, int labelID);
59 
60  void DeleteMail(int32 messageID);
61 
62  void EmptyTrash(uint32 characterID);
63  void MoveAllFromTrash(uint32 characterID);
64  void MoveAllToTrash(uint32 characterID);
65  void MoveFromTrash(int32 messageID);
66  void MoveToTrash(int32 messageID);
67  void MoveToTrashByLabel(int32 characterID, int32 labelID);
68 
69  // Mailing list
70 
71  PyDict *GetJoinedMailingLists(uint32 characterID);
72  uint32 CreateMailingList(uint32 creator, std::string name, int32 defaultAccess,
73  int32 defaultMemberAccess, int32 cost);
74 
75  void JoinMailingList(uint32 characterID, std::string name);
76  void LeaveMailingList(uint32 characterID, int32 listID);
77  void DeleteMailingList(uint32 characterID, int32 listID);
78  // @TODO(groove): KickMembers Figure out converting PyList member info into something usable..
80  void MailingListSetEntityAccess(int32 entity, int32 access, int32 listID);
81  void MailingListClearEntityAccess(int32 entity, int32 listID);
82  // @TODO(groove): SetMailingListMembersMuted
83  // @TODO(groove): SetMailingListMembersOperator
84  // @TODO(groove): SetMailingListMembersClear
85  // @TODO(groove): SetMailingListDefaultAccesss
86  void SetMailingListDefaultAccess(int32 listID, int32 defaultAccess,
87  int32 defaultMemberAccess, int32 cost);
88  // : Make generic method for this shit^^^
89  //
90  // @TODO(groove): MailingListGetInfo
92  // @TODO(groove): MailingListGetWelcomeMail
93  // @TODO(groove): MailingListSaveWelcomeMail
94  // @TODO(groove): MailingListSendWelcomeMail
95  // @TODO(groove): MailingListClearWelcomeMail
96 
97 
98 
99 
100  // Helpers
101 
102  void ApplyStatusMasks(std::vector<int32> messageIDs, int mask);
103  void RemoveStatusMasks(std::vector<int32> messageIDs, int mask);
104  void ApplyStatusMask(int32 messageID, int mask);
105  void RemoveStatusMask(int32 messageID, int mask);
106 
107  void ApplyLabelMask(int32 messageID, int mask);
108  void ApplyLabelMasks(std::vector<int32> messageIDs, int mask);
109  void RemoveLabelMask(int32 messageID, int mask);
110  void RemoveLabelMasks(std::vector<int32> messageIDs, int mask);
111 
112  int SendMail(int sender, std::vector<int>& toCharacterIDs, int toListID, int toCorpOrAllianceID, std::string& title, std::string& body, int isReplyTo, int isForwardedFrom);
113  PyRep* GetNewMail(int charId);
114  PyRep* GetMailStatus(int charId);
115 
116 protected:
117  static int BitFromLabelID(int id);
118 };
119 
120 #endif
PyRep * GetLabels(int characterID) const
Definition: MailDB.cpp:282
void DeleteMail(int32 messageID)
Definition: MailDB.cpp:374
Base Python wire object.
Definition: PyRep.h:66
void MarkAllAsUnreadByLabel(uint32 characterID, int labelID)
Definition: MailDB.cpp:213
void DeleteLabel(int characterID, int labelID) const
Definition: MailDB.cpp:335
Python string.
Definition: PyRep.h:430
void MoveToTrashByLabel(int32 characterID, int32 labelID)
Definition: MailDB.cpp:432
Python's dictionary.
Definition: PyRep.h:719
void EditLabel(int characterID, Call_EditLabel &args) const
Definition: MailDB.cpp:354
void MoveAllToTrash(uint32 characterID)
Definition: MailDB.cpp:408
void SetMailingListDefaultAccess(int32 listID, int32 defaultAccess, int32 defaultMemberAccess, int32 cost)
Definition: MailDB.cpp:759
void RemoveLabelMask(int32 messageID, int mask)
Definition: MailDB.cpp:528
static int BitFromLabelID(int id)
Definition: MailDB.cpp:595
PyDict * GetJoinedMailingLists(uint32 characterID)
Definition: MailDB.cpp:607
void ApplyLabelMasks(std::vector< int32 > messageIDs, int mask)
Definition: MailDB.cpp:540
void DeleteMailingList(uint32 characterID, int32 listID)
Definition: MailDB.cpp:773
void RemoveStatusMask(int32 messageID, int mask)
Definition: MailDB.cpp:502
void ApplyStatusMask(int32 messageID, int mask)
Definition: MailDB.cpp:490
void RemoveStatusMasks(std::vector< int32 > messageIDs, int mask)
Definition: MailDB.cpp:469
void SetMailUnread(int id)
Definition: MailDB.cpp:166
signed __int32 int32
Definition: eve-compat.h:49
* args
void MarkAllAsReadByLabel(uint32 characterID, int labelID)
Definition: MailDB.cpp:230
Python object.
Definition: PyRep.h:826
void LeaveMailingList(uint32 characterID, int32 listID)
Definition: MailDB.cpp:781
void EmptyTrash(uint32 characterID)
Definition: MailDB.cpp:386
PyDict * GetMailingListMembers(int32 listID)
Definition: MailDB.cpp:688
void MoveToTrash(int32 messageID)
Definition: MailDB.cpp:419
void ApplyLabel(int32 messageID, int labelID)
Definition: MailDB.cpp:368
void MarkAllAsRead(uint32 characterID)
Definition: MailDB.cpp:200
uint32 CreateMailingList(uint32 creator, std::string name, int32 defaultAccess, int32 defaultMemberAccess, int32 cost)
Definition: MailDB.cpp:659
void ApplyLabels(std::vector< int32 > messageIDs, int labelID)
Definition: MailDB.cpp:276
void MarkAllAsUnread(uint32 characterID)
Definition: MailDB.cpp:186
void SetMailRead(int id)
Definition: MailDB.cpp:171
int SendMail(int sender, std::vector< int > &toCharacterIDs, int toListID, int toCorpOrAllianceID, std::string &title, std::string &body, int isReplyTo, int isForwardedFrom)
Definition: MailDB.cpp:59
Definition: MailDB.h:36
void MailingListSetEntityAccess(int32 entity, int32 access, int32 listID)
Definition: MailDB.cpp:789
unsigned __int32 uint32
Definition: eve-compat.h:50
void ApplyLabelMask(int32 messageID, int mask)
Definition: MailDB.cpp:514
PyRep * GetNewMail(int charId)
Definition: MailDB.cpp:47
PyString * GetMailBody(int id) const
Definition: MailDB.cpp:151
void MoveFromTrash(int32 messageID)
Definition: MailDB.cpp:793
PyRep * GetMailStatus(int charId)
Definition: MailDB.cpp:34
PyObject * MailingListGetSettings(int32 listID)
Definition: MailDB.cpp:710
void SetMailsRead(std::vector< int32 > ids)
Definition: MailDB.cpp:181
void MailingListClearEntityAccess(int32 entity, int32 listID)
Definition: MailDB.cpp:785
void JoinMailingList(uint32 characterID, std::string name)
Definition: MailDB.cpp:777
bool CreateLabel(int characterID, Call_CreateLabel &args, uint32 &newID) const
Definition: MailDB.cpp:304
void RemoveLabelMasks(std::vector< int32 > messageIDs, int mask)
Definition: MailDB.cpp:567
void RemoveLabels(std::vector< int32 > messageIDs, int labelID)
Definition: MailDB.cpp:246
void ApplyStatusMasks(std::vector< int32 > messageIDs, int mask)
Definition: MailDB.cpp:448
void SetMailsUnread(std::vector< int32 > ids)
Definition: MailDB.cpp:176
void MoveAllFromTrash(uint32 characterID)
Definition: MailDB.cpp:397