File: swStringDb.h

package info (click to toggle)
codelite 14.0+dfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 112,816 kB
  • sloc: cpp: 483,662; ansic: 150,144; php: 9,569; lex: 4,186; python: 3,417; yacc: 2,820; sh: 1,147; makefile: 52; xml: 13
file content (161 lines) | stat: -rw-r--r-- 5,647 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// copyright            : (C) 2008 by Eran Ifrah                            
// file name            : swStringDb.h              
//                                                                          
// -------------------------------------------------------------------------
// A                                                                        
//              _____           _      _     _ _                            
//             /  __ \         | |    | |   (_) |                           
//             | /  \/ ___   __| | ___| |    _| |_ ___                      
//             | |    / _ \ / _  |/ _ \ |   | | __/ _ )                     
//             | \__/\ (_) | (_| |  __/ |___| | ||  __/                     
//              \____/\___/ \__,_|\___\_____/_|\__\___|                     
//                                                                          
//                                                  F i l e                 
//                                                                          
//    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.                                   
//                                                                          
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// Name:		swStringDb.h
// Purpose:
// Author:		Frank Lichtner
// Modified by:
// Created:		2008-09-01 19:12:19
// RCS-ID:
// Copyright:	© Frank Lichtner
// Licence:		GNU General Public Licence
/////////////////////////////////////////////////////////////////////////////

#include "wxSerialize.h"

#ifndef SWTEMPLATEFILE_H
#define SWTEMPLATEFILE_H
//------------------------------------------------------------
// base class for one entry
class swBase : public wxObject
{
	DECLARE_DYNAMIC_CLASS( swBase );

public:
	swBase() { ; }
	virtual ~swBase() { ; }

	virtual void Serialize( wxSerialize& ar ) { wxUnusedVar( ar ); }
};
//------------------------------------------------------------
WX_DECLARE_STRING_HASH_MAP( swBase*, swStringList );
//------------------------------------------------------------
// one single string entry
class swString : public swBase
{
	DECLARE_DYNAMIC_CLASS( swString );
	friend class swStringSet;
public:
	swString() { ; }
	virtual ~swString() { ;	}

	void Serialize( wxSerialize& ar )
	{
		if ( ar.IsStoring() )
			ar	<< m_string;
		else
			ar	>> m_string;
	}

protected:
	wxString	m_string;
};

//------------------------------------------------------------
// one set of swStrings
class swStringSet : public wxObject
{
	friend class swStringDb;
	DECLARE_DYNAMIC_CLASS( swStringSet );

public:
	/// check if it is existing key
	bool IsKey( const wxString & key );
	/// returns all keys
	void GetAllKeys( wxArrayString &keys );
	/// set string value at key
	bool SetString( const wxString& key, const wxString& value );
	/// get string value at key
	wxString GetString( const wxString& key );
	/// delete single key
	void DeleteKey( const wxString& key );
	/// delete all keys
	void DeleteAll();

	swStringSet();
	virtual ~swStringSet();

	void Serialize( wxSerialize& ar );

protected:
	swStringList	m_list;	// string set
};
//------------------------------------------------------------
WX_DECLARE_STRING_HASH_MAP( swStringSet*, swStringSetList );
//------------------------------------------------------------
class swStringDb : public wxObject
{
	DECLARE_DYNAMIC_CLASS( swStringDb );

public:
// template access
	/// if true, the file will be compressed
	void SetCompress( bool compress ) { m_compress = compress; }
	/// save StringDb
	bool Save( const wxString& filename );
	/// load StringDb
	bool Load( const wxString& filename );
	/// check if set exists
	bool IsSet( const wxString & set );
	/// returns all sets
	void GetAllSets( wxArrayString &sets );
	/// checks if key exists
	bool IsKey( const wxString & set, const wxString & key );
	/// sets string at set, key
	bool SetString( const wxString & set, const wxString& key, const wxString& value );
	/// gets string at set, key
	wxString GetString( const wxString & set, const wxString& key );
	/// deletes single key
	void DeleteKey( const wxString & set, const wxString& key );
	/// deletes all
	void DeleteAll();

// snippet access
	/// checks if key exists
	bool IsSnippetKey( const wxString & key );
	/// eturns all keys
	void GetAllSnippetKeys( wxArrayString &keys );
	/// sets string at key
	bool SetSnippetString( const wxString& key, const wxString& value );
	/// gets string at key
	wxString GetSnippetString( const wxString& key );
	/// deletes single key
	void DeleteSnippetKey( const wxString& key );
	/// deletes all
	void DeleteSnippetAll();


	swStringDb();
	virtual ~swStringDb();
	void Serialize( wxSerialize& ar );

protected:
	swStringSetList	m_list;			// template list
	swStringSet 	m_snippetSet;	// snippet list
	bool 			m_compress;		// compress flag
	wxArrayString	m_keyOrder;		// array to sort snippets menu by user (future)
};
#endif //SWTEMPLATEFILE_H