diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2012-06-29 05:38:03 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2012-06-29 05:38:03 +0000 |
commit | af7e438cfe8ce85e1da234318ed1584e89d952cc (patch) | |
tree | 4cdb1379ef8d6c00389aa89cfb27a404ae2aba56 /plugins/SmartAutoReplier/RulesStorage.h | |
parent | 230623d50baff4e8bf13a8572e0b895bad7b7ed4 (diff) |
only add some plugins and protocols, not adapted
See please maybe not all need us
git-svn-id: http://svn.miranda-ng.org/main/trunk@678 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/SmartAutoReplier/RulesStorage.h')
-rw-r--r-- | plugins/SmartAutoReplier/RulesStorage.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/plugins/SmartAutoReplier/RulesStorage.h b/plugins/SmartAutoReplier/RulesStorage.h new file mode 100644 index 0000000000..25cbec2942 --- /dev/null +++ b/plugins/SmartAutoReplier/RulesStorage.h @@ -0,0 +1,63 @@ +/*
+ * Smart Auto Replier (SAR) - auto replier plugin for Miranda IM
+ *
+ * Copyright (C) 2004 - 2012 by Volodymyr M. Shcherbyna <volodymyr@shcherbyna.com>
+ *
+ * This file is part of SAR.
+ *
+ * SAR 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * SAR 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 SAR. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "RuleItem.h"
+#include <map>
+
+#define STORAGE_NAME TEXT("sar.rsu") /// a def. name of a file that is storing settings
+typedef std::map<INT, RULE_ITEM> RulesHash; /// storage representation in memory
+
+/// storage manager..
+class CRulesStorage : ISettings
+{
+public: /// ctor'rs, dtors..
+ CRulesStorage(void);
+ ~CRulesStorage(void);
+public: /// ISettings interface...
+ bool Serialize(ISettingsStream *pSettings, DWORD & ObjectSize);
+ bool Deserialize(DWORD & ObjectSize);
+public:
+ void Init(void); /// initing state of an object
+ void DeInit(void); /// deiniting state of an object
+ DWORD AddRuleItem(RULE_ITEM item, bool & bExists); /// n.c.
+ bool RemReplyAction(DWORD dwCrc32); /// n.c.
+ RulesHash & getHashTable(void); /// n.c.
+ COMMON_RULE_ITEM & getCommonRule(void); /// n.c.
+ void setCommonRule(COMMON_RULE_ITEM r); /// n.c.
+ void Flush(void); /// flushes all from memory to a file
+ void FlushItem(RULE_ITEM & item); /// flushes an item into file from memory
+ bool IsRuleMatch(RULE_METAINFO & info, LPTSTR & strMess, LPTSTR & lpIncomingMsg); /// n.c.
+ void ClearCommonMessages(void); /// releases memory that is commited for comm. rule
+ bool RuleIsRegistered(LPTSTR lpContactName);
+private:
+ void RawWriteDataBufByChunk(LPTSTR); /// writes string to a file
+ UINT RawReadDataBufByChunk(LPTSTR & szData); /// reads string from file
+ UINT GetCommonMessages(void); /// gets common rules from file to memory
+ void SetCommonMessages(void); /// sets common rules from memory to file
+private:
+ COMMON_RULE_ITEM m_comItem; /// common rule item..
+ RulesHash m_hashTable; /// main storage...
+ HANDLE m_hFile; /// handle to file that is storing data
+ TCHAR m_szSettFileName[MAX_PATH]; /// path to a file...
+ CRITICAL_SECTION m_critSect; /// needed for sync
+};
\ No newline at end of file |