ddc
util_classes.h
Go to the documentation of this file.
1 //
2 // This file is part of DDC.
3 //
4 // DDC is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // DDC is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with DDC. If not, see <http://www.gnu.org/licenses/>.
16 //
17 // ========== Dialing Syntax Analysis (www.aot.ru)
18 // ========== Copyright by Alexey Sokirko, Bryan Jurish (2011)
19 
20 #ifndef utilit_classes_h
21 #define utilit_classes_h
22 
23 #include "utilit.h"
24 #include "ptrholder.h"
25 #include "ddcMMap.h"
26 #include "ddcThread.h"
27 
28 
30 {
31  vector<char>::const_iterator m_pStringPointer;
32 public:
33  CShortString(vector<char>::const_iterator pData);
34 
35  BYTE GetLength() const;
36  vector<char>::const_iterator GetData() const;
37  const char* GetString() const;
38  //bool operator <(const CShortString& s) const;
39 };
40 
41 class IsLessShortString : public std::binary_function<const CShortString&, const char*, bool>
42 {
43 public:
44  bool operator()(const CShortString& Item1, const char* Item2) const;
45  bool operator()(const char* Item1, const CShortString& Item2) const;
46  bool operator()(const CShortString& Item1, const CShortString& Item2) const;
47 };
48 
49 
50 class CShortStringHolder : public vector<CShortString>
51 {
52  vector<char> m_Buffer;
53  template<class T>
54  bool CreateFromSequence(T begin, T end);
55 public:
56  void ReadShortStringHolder(string filename);
57  bool WriteShortStringHolder(const string& FileName) const;
58  bool CreateFromVector(const StringVector& in);
59  bool CreateFromSet(const StringSet& in);
60 };
61 
62 
63 
64 struct CMyTimeSpan
65 {
66  clock_t m_StartTime;
67  double m_TimeSpan;
71  CMyTimeSpan (long SequenceId = 0, long InterfaceNestId = 0);
72  void GetStrRepresentation(const char* Name, char* buffer, double AllClocksCount) const;
73 };
74 
75 
77 {
78  map<string, CMyTimeSpan> m_TimeSpans;
80 
81 public:
83 
84  typedef map<string, CMyTimeSpan>::const_iterator ConstIterator;
85  typedef map<string, CMyTimeSpan>::iterator Iterator;
86 
88  void StartTimer(const string& Name, long NestId);
89  double EndTimer(const string& Name);
90  string GetStrRepresentation (double AllClocksCount = 0) const;
91  void ClearTimers();
92 };
93 
94 
95 
96 #endif
97 
98 /*--- emacs style variables ---
99  * Local Variables:
100  * mode: C++
101  * c-file-style: "ellemtel"
102  * c-basic-offset: 4
103  * tab-width: 8
104  * indent-tabs-mode: nil
105  * End:
106  */
Definition: util_classes.h:29
Definition: util_classes.h:76
bool m_bTimeSpanHolderEnabled
Definition: util_classes.h:82
long m_InterfaceNestId
Definition: util_classes.h:68
vector< char > m_Buffer
Definition: util_classes.h:52
Definition: util_classes.h:64
long m_SequenceId
Definition: util_classes.h:79
BYTE GetLength() const
Definition: utilit.cpp:1810
vector< char >::const_iterator GetData() const
Definition: utilit.cpp:1815
Definition: util_classes.h:41
vector< string > StringVector
Definition: utilit.h:146
map< string, CMyTimeSpan >::iterator Iterator
Definition: util_classes.h:85
map< string, CMyTimeSpan >::const_iterator ConstIterator
Definition: util_classes.h:84
vector< char >::const_iterator m_pStringPointer
Definition: util_classes.h:31
long m_InvokeCount
Definition: util_classes.h:70
set< string > StringSet
Definition: utilit.h:147
Definition: morph_const.h:107
unsigned char BYTE
Definition: utilit.h:94
map< string, CMyTimeSpan > m_TimeSpans
Definition: util_classes.h:78
CShortString(vector< char >::const_iterator pData)
Definition: utilit.cpp:1806
long m_SequenceId
Definition: util_classes.h:69
Definition: util_classes.h:50
const char * GetString() const
Definition: utilit.cpp:1820
double m_TimeSpan
Definition: util_classes.h:67
clock_t m_StartTime
Definition: util_classes.h:66