NTP Analyzer  0.8.2
Analyze the operation of time servers
Ntp.Analyzer.Data.Sql.FilteredSqlDatabaseMapper< T > Class Template Reference

OR/M mapper for tables with a large amount of rows. More...

Inheritance diagram for Ntp.Analyzer.Data.Sql.FilteredSqlDatabaseMapper< T >:
Collaboration diagram for Ntp.Analyzer.Data.Sql.FilteredSqlDatabaseMapper< T >:

Protected Member Functions

 FilteredSqlDatabaseMapper (LogBase log)
 
override string PrepareSql (string sql)
 
- Protected Member Functions inherited from Ntp.Analyzer.Data.Sql.SqlDatabaseMapper< T >
 SqlDatabaseMapper (LogBase log)
 
void AddItem (T item)
 
void Close ()
 
IDbDataParameter CreateParameter (string name, object value)
 
virtual T FetchExternal (int id)
 
abstract void Insert (T item)
 
void Open ()
 
string PrepareInsertSql (string sql)
 
abstract void ReadContent ()
 
void RemoveItem (T item)
 
abstract void Update (T item)
 
- Protected Member Functions inherited from Ntp.Data.DataMapper< T >
 DataMapper (LogBase log)
 

Properties

Host FilterHost [get, set]
 Gets or sets the host More...
 
Peer FilterPeer [get, set]
 Gets or sets the peer to use when extracting data. More...
 
DateTime FilterTime [get, set]
 Gets or sets the time to use when extracting data. Only readings with a timestamp later than FilterTime gets extracted. More...
 
- Properties inherited from Ntp.Analyzer.Data.Sql.SqlDatabaseMapper< T >
IDbCommand Command [get, private set]
 
abstract string CreateSql [get]
 
abstract string TableName [get]
 
this[int id] [get]
 
abstract bool UseCache [get]
 
- Properties inherited from Ntp.Data.DataMapper< T >
LogBase Log [get]
 

Additional Inherited Members

- Public Member Functions inherited from Ntp.Analyzer.Data.Sql.SqlDatabaseMapper< T >
void CheckTable ()
 
override IEnumerator< T > GetEnumerator ()
 Read all data from table in a sequential manner. More...
 
void Save (T item)
 
- Protected Attributes inherited from Ntp.Analyzer.Data.Sql.SqlDatabaseMapper< T >
IEnumerable< T > Content => items.Values
 
readonly object MapperLocker = new object()
 
IDataReader Reader
 

Detailed Description

OR/M mapper for tables with a large amount of rows.

Type Constraints
T :PersistentObject 

Definition at line 32 of file FilteredSqlDatabaseMapper.cs.

Constructor & Destructor Documentation

Definition at line 35 of file FilteredSqlDatabaseMapper.cs.

36  : base(log)
37  {
38  }

Member Function Documentation

override string Ntp.Analyzer.Data.Sql.FilteredSqlDatabaseMapper< T >.PrepareSql ( string  sql)
inlineprotectedvirtual

Reimplemented from Ntp.Analyzer.Data.Sql.SqlDatabaseMapper< T >.

Definition at line 59 of file FilteredSqlDatabaseMapper.cs.

60  {
61  string preparedSql = base.PrepareSql(sql).Trim();
62 
63  if (FilterTime == null && FilterHost == null && FilterPeer == null)
64  return preparedSql;
65 
66  bool filterAdded = false;
67 
68  preparedSql += " WHERE ";
69 
70  if (FilterTime != null)
71  {
72  var time = FilterTime.Value.ToUniversalTime();
73  var datePart = SqlDatabaseFactory.Instance.DateAddMinutes("time", "zone");
74  preparedSql += $"{datePart} > \'{time.ToString("yyyy-MM-dd HH:mm:ss")}\'";
75  filterAdded = true;
76  }
77 
78  if (FilterHost != null)
79  {
80  if (filterAdded)
81  {
82  preparedSql += " AND ";
83  }
84 
85  preparedSql += $"hostId = {FilterHost.Id}";
86  filterAdded = true;
87  }
88 
89  if (FilterPeer == null)
90  return preparedSql;
91 
92  if (filterAdded)
93  {
94  preparedSql += " AND ";
95  }
96 
97  preparedSql += $"peerId = {FilterPeer.Id}";
98 
99  return preparedSql;
100  }
DateTime FilterTime
Gets or sets the time to use when extracting data. Only readings with a timestamp later than FilterTi...
Peer FilterPeer
Gets or sets the peer to use when extracting data.
static SqlDatabaseFactory Instance
abstract string DateAddMinutes(string dateColumn, string minuteColumn)

Property Documentation

Gets or sets the peer to use when extracting data.

The filter peer.

Definition at line 57 of file FilteredSqlDatabaseMapper.cs.

Referenced by Ntp.Analyzer.Graph.PeerGraph.LoadData().

DateTime Ntp.Analyzer.Data.Sql.FilteredSqlDatabaseMapper< T >.FilterTime
getset

Gets or sets the time to use when extracting data. Only readings with a timestamp later than FilterTime gets extracted.

The time.

Definition at line 45 of file FilteredSqlDatabaseMapper.cs.

Referenced by Ntp.Analyzer.Graph.HostGraph.LoadData(), Ntp.Analyzer.Graph.PeerGraph.LoadData(), and Ntp.Analyzer.Graph.TrafficGraph.LoadData().


The documentation for this class was generated from the following file: