diff options
Diffstat (limited to 'protocols/MinecraftDynmap/src/proto.h')
-rw-r--r-- | protocols/MinecraftDynmap/src/proto.h | 272 |
1 files changed, 136 insertions, 136 deletions
diff --git a/protocols/MinecraftDynmap/src/proto.h b/protocols/MinecraftDynmap/src/proto.h index b863b2547c..852edaef74 100644 --- a/protocols/MinecraftDynmap/src/proto.h +++ b/protocols/MinecraftDynmap/src/proto.h @@ -1,136 +1,136 @@ -/* - -Minecraft Dynmap plugin for Miranda Instant Messenger -_____________________________________________ - -Copyright © 2015-17 Robert Pösel, 2017-22 Miranda NG team - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -#pragma once - -class MinecraftDynmapProto : public PROTO<MinecraftDynmapProto> -{ - ptrA szRoomName; - -public: - MinecraftDynmapProto(const char *proto_name, const wchar_t *username); - ~MinecraftDynmapProto(); - - inline const char* ModuleName() const { - return m_szModuleName; - } - - inline bool isOnline() { - return (m_iStatus != ID_STATUS_OFFLINE && m_iStatus != ID_STATUS_CONNECTING); - } - - inline bool isOffline() { - return (m_iStatus == ID_STATUS_OFFLINE); - } - - // PROTO_INTERFACE - INT_PTR GetCaps(int type, MCONTACT hContact = NULL) override; - int SetStatus(int iNewStatus) override; - - void OnContactDeleted(MCONTACT) override; - void OnShutdown() override; - - // Services - INT_PTR __cdecl SvcCreateAccMgrUI(WPARAM, LPARAM); - - // Chat handling - int __cdecl OnChatEvent(WPARAM,LPARAM); - INT_PTR __cdecl OnJoinChat(WPARAM,LPARAM); - INT_PTR __cdecl OnLeaveChat(WPARAM,LPARAM); - - // Loops - void __cdecl EventsLoop(void*); - - // Worker threads - void __cdecl SignOnWorker(void*); - void __cdecl SignOffWorker(void*); - void __cdecl SendMsgWorker(void*); - - // Chat handling - void UpdateChat(const char *name, const char *message, const time_t timestamp = time(0), bool addtochat = true); - void AddChatContact(const char *nick); - void DeleteChatContact(const char *name); - void SetChatStatus(int); - void ClearChat(); - void SetTopic(const char *topic); - MCONTACT GetChatHandle(); - - // Locks - HANDLE signon_lock_; - HANDLE connection_lock_; - HANDLE send_message_lock_; - HANDLE events_loop_lock_; - - HANDLE events_loop_event_; - - // Handles - HNETLIBCONN hConnection; - HNETLIBCONN hEventsConnection; - HANDLE chatHandle_; - - // Data storage - void store_headers(http::response *resp, NETLIBHTTPHEADER *headers, int headers_count); - - std::string get_server(bool not_last = false); - std::string get_language(); - - // Connection handling - unsigned int error_count_; - - // Helpers - bool handleEntry(const std::string &method); - bool handleSuccess(const std::string &method); - bool handleError(const std::string &method, const std::string &error = "", bool force_disconnect = false); - - void __inline increment_error() { error_count_++; } - void __inline decrement_error() { if (error_count_ > 0) error_count_--; } - void __inline reset_error() { error_count_ = 0; } - - // HTTP communication - http::response sendRequest(const int request_type, std::string *post_data = nullptr, std::string *get_data = nullptr); - std::string chooseAction(int, std::string *get_data = nullptr); - NETLIBHTTPHEADER *get_request_headers(int request_type, int *headers_count); - - // Requests and processing - bool doSignOn(); - bool doEvents(); - bool doSendMessage(const std::string &message_text); - - std::string doGetPage(int); - - // Configuration - std::string m_nick; - std::string m_cookie; - std::string m_server; - std::string m_title; - std::string m_timestamp; - int m_interval; - int m_updateRate; -}; - -struct CMPlugin : public ACCPROTOPLUGIN<MinecraftDynmapProto> -{ - CMPlugin(); - - int Load() override; - int Unload() override; -}; +/*
+
+Minecraft Dynmap plugin for Miranda Instant Messenger
+_____________________________________________
+
+Copyright © 2015-17 Robert Pösel, 2017-23 Miranda NG team
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#pragma once
+
+class MinecraftDynmapProto : public PROTO<MinecraftDynmapProto>
+{
+ ptrA szRoomName;
+
+public:
+ MinecraftDynmapProto(const char *proto_name, const wchar_t *username);
+ ~MinecraftDynmapProto();
+
+ inline const char* ModuleName() const {
+ return m_szModuleName;
+ }
+
+ inline bool isOnline() {
+ return (m_iStatus != ID_STATUS_OFFLINE && m_iStatus != ID_STATUS_CONNECTING);
+ }
+
+ inline bool isOffline() {
+ return (m_iStatus == ID_STATUS_OFFLINE);
+ }
+
+ // PROTO_INTERFACE
+ INT_PTR GetCaps(int type, MCONTACT hContact = NULL) override;
+ int SetStatus(int iNewStatus) override;
+
+ void OnContactDeleted(MCONTACT) override;
+ void OnShutdown() override;
+
+ // Services
+ INT_PTR __cdecl SvcCreateAccMgrUI(WPARAM, LPARAM);
+
+ // Chat handling
+ int __cdecl OnChatEvent(WPARAM,LPARAM);
+ INT_PTR __cdecl OnJoinChat(WPARAM,LPARAM);
+ INT_PTR __cdecl OnLeaveChat(WPARAM,LPARAM);
+
+ // Loops
+ void __cdecl EventsLoop(void*);
+
+ // Worker threads
+ void __cdecl SignOnWorker(void*);
+ void __cdecl SignOffWorker(void*);
+ void __cdecl SendMsgWorker(void*);
+
+ // Chat handling
+ void UpdateChat(const char *name, const char *message, const time_t timestamp = time(0), bool addtochat = true);
+ void AddChatContact(const char *nick);
+ void DeleteChatContact(const char *name);
+ void SetChatStatus(int);
+ void ClearChat();
+ void SetTopic(const char *topic);
+ MCONTACT GetChatHandle();
+
+ // Locks
+ HANDLE signon_lock_;
+ HANDLE connection_lock_;
+ HANDLE send_message_lock_;
+ HANDLE events_loop_lock_;
+
+ HANDLE events_loop_event_;
+
+ // Handles
+ HNETLIBCONN hConnection;
+ HNETLIBCONN hEventsConnection;
+ HANDLE chatHandle_;
+
+ // Data storage
+ void store_headers(http::response *resp, NETLIBHTTPHEADER *headers, int headers_count);
+
+ std::string get_server(bool not_last = false);
+ std::string get_language();
+
+ // Connection handling
+ unsigned int error_count_;
+
+ // Helpers
+ bool handleEntry(const std::string &method);
+ bool handleSuccess(const std::string &method);
+ bool handleError(const std::string &method, const std::string &error = "", bool force_disconnect = false);
+
+ void __inline increment_error() { error_count_++; }
+ void __inline decrement_error() { if (error_count_ > 0) error_count_--; }
+ void __inline reset_error() { error_count_ = 0; }
+
+ // HTTP communication
+ http::response sendRequest(const int request_type, std::string *post_data = nullptr, std::string *get_data = nullptr);
+ std::string chooseAction(int, std::string *get_data = nullptr);
+ NETLIBHTTPHEADER *get_request_headers(int request_type, int *headers_count);
+
+ // Requests and processing
+ bool doSignOn();
+ bool doEvents();
+ bool doSendMessage(const std::string &message_text);
+
+ std::string doGetPage(int);
+
+ // Configuration
+ std::string m_nick;
+ std::string m_cookie;
+ std::string m_server;
+ std::string m_title;
+ std::string m_timestamp;
+ int m_interval;
+ int m_updateRate;
+};
+
+struct CMPlugin : public ACCPROTOPLUGIN<MinecraftDynmapProto>
+{
+ CMPlugin();
+
+ int Load() override;
+ int Unload() override;
+};
|