fintp_utils
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Collections.h
Go to the documentation of this file.
1 /*
2 * FinTP - Financial Transactions Processing Application
3 * Copyright (C) 2013 Business Information Systems (Allevo) S.R.L.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>
17 * or contact Allevo at : 031281 Bucuresti, 23C Calea Vitan, Romania,
18 * phone +40212554577, office@allevo.ro <mailto:office@allevo.ro>, www.allevo.ro.
19 */
20 
21 #ifndef COLLECTIONS_H
22 #define COLLECTIONS_H
23 
24 #include "DllMainUtils.h"
25 
26 #include <map>
27 #include <vector>
28 #include <string>
29 
30 using namespace std;
31 
32 namespace FinTP
33 {
34  typedef pair< std::string, std::string > DictionaryEntry;
35 
36  //EXPIMP_TEMPLATE template class ExportedUtilsObject std::vector< DictionaryEntry >;
37 
43  {
44  private :
45  vector< DictionaryEntry > m_Data;
46  //map<std::string, std::string, noorder<std::string> > m_Data;
47 
48  public :
49 
50  // .ctor & destructor
53  NameValueCollection& operator=( const NameValueCollection& source );
54 
56 
57  // operator overrides
58  const string operator[]( const string& name ) const;
59  DictionaryEntry& operator[]( const unsigned int index );
60  const DictionaryEntry& operator[]( const unsigned int index ) const;
61  void ChangeValue( const string& name, const string& value );
62 
63  // public methods
64  void Add( const string& name, const string& value );
65  void Add( const string& name, const char* valueCh );
66  void Add( const char* nameCh, const string& value );
67  void Add( const char* nameCh, const char* valueCh );
68 
69  void Remove( const string& name );
70  void Clear();
71 
72  bool ContainsKey( const string& name ) const;
73 
74  const vector< DictionaryEntry >& getData() const { return m_Data; }
75 
76  void Dump() const;
77  string ToString() const;
78 
79  //vector< DictionaryEntry > getData() const { return m_Data; }
80 
81  // accessors
82  inline unsigned int getCount() const { return m_Data.size(); }
83  inline unsigned int getCapacity() const { return m_Data.max_size(); }
84 
85  string ConvertToXml( const string& rootName ) const;
86  };
87 }
88 
89 #endif //COLLECTIONS_H