NTP Analyzer
0.8.2
Analyze the operation of time servers
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
BootstrapPeerPageBuilder.cs
Go to the documentation of this file.
1
//
2
// Copyright (c) 2013-2017 Carsten Sonne Larsen <cs@innolan.net>
3
//
4
// Permission is hereby granted, free of charge, to any person obtaining a copy
5
// of this software and associated documentation files (the "Software"), to deal
6
// in the Software without restriction, including without limitation the rights
7
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
// copies of the Software, and to permit persons to whom the Software is
9
// furnished to do so, subject to the following conditions:
10
//
11
// The above copyright notice and this permission notice shall be included in
12
// all copies or substantial portions of the Software.
13
//
14
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
// THE SOFTWARE.
21
22
using
System
;
23
using
System
.Collections.Generic;
24
using
System
.IO;
25
using
Ntp
.
Analyzer
.
Config
.
Node
.
Navigation
;
26
using
Ntp
.
Analyzer
.
Config
.
Node
.
Page
;
27
using
Ntp
.
Analyzer
.
Export
;
28
using
Ntp
.
Analyzer
.
Objects
;
29
using
Ntp
.
Analyzer
.
Render
;
30
using
Ntp
.
Analyzer
.
Render
.
Peer
;
31
using
Ntp
.
Common
.
Process
;
32
33
namespace
Ntp
.Analyzer.
Page
34
{
35
public
sealed
class
BootstrapPeerPageBuilder
:
PageBuilderBase
36
{
37
public
BootstrapPeerPageBuilder
(
38
Host
host,
39
Peer
peer,
40
MenuConfiguration
menu,
41
PeerPageConfiguration
page)
42
{
43
this.host = host;
44
this.peer = peer;
45
this.menu = menu;
46
this.page = page;
47
}
48
49
private
readonly
Host
host
;
50
private
readonly
MenuConfiguration
menu
;
51
private
readonly
PeerPageConfiguration
page
;
52
private
readonly
Peer
peer
;
53
54
public
override
IEnumerable<StreamDestination> Destinations => page.Destinations.Destinations;
55
56
public
override
Stream
Generate
()
57
{
58
DateTime now = DateTime.Now;
59
var schedule =
new
JobScheduleDescription
(
false
,
false
, page.Frequency);
60
DateTime next = schedule.CalculateNextRun(now);
61
int
wait = Convert.ToInt32(next.Subtract(now).TotalSeconds) + 1;
62
63
// Create page
64
var peerPage =
new
BootstrapPeerPageRender
(page.WebPath, peer.Name, wait);
65
66
if
(menu != null)
67
{
68
peerPage.Add(
new
BootstrapMenuRender
(page.WebPath, menu, page));
69
}
70
71
peerPage.Add(
new
BootstrapPeerInfoRender
(page.WebPath, peer.Server, now, next, peer.Name, peer.Ip));
72
peerPage.Add(
new
BootstrapPeerGraphRender
(page.WebPath, peer, host, page, page.Graphs));
73
74
// Generate HTML
75
var htmlRender =
new
HtmlRenderer
(peerPage);
76
string
html = htmlRender.Render();
77
78
return
ToStream(html);
79
}
80
}
81
}
Ntp.Analyzer.Config
Ntp.Analyzer.Page.BootstrapPeerPageBuilder.Generate
override Stream Generate()
Definition:
BootstrapPeerPageBuilder.cs:56
Ntp.Analyzer.Render.BootstrapMenuRender
Definition:
BootstrapMenuRender.cs:30
Ntp.Common.Process.JobScheduleDescription
A description of job schedule rules.
Definition:
JobScheduleDescription.cs:29
Ntp.Analyzer.Page.BootstrapPeerPageBuilder.page
readonly PeerPageConfiguration page
Definition:
BootstrapPeerPageBuilder.cs:51
Ntp.Analyzer.Page.BootstrapPeerPageBuilder.BootstrapPeerPageBuilder
BootstrapPeerPageBuilder(Host host, Peer peer, MenuConfiguration menu, PeerPageConfiguration page)
Definition:
BootstrapPeerPageBuilder.cs:37
Ntp.Common
Ntp.Analyzer.Render.Peer
Definition:
BootstrapPeerGraphRender.cs:31
Ntp.Analyzer.Render.HtmlRenderer
Renders IHtmlObjects into plain text for display in browsers.
Definition:
HtmlRenderer.cs:31
Ntp.Analyzer.Config.Node.Navigation.MenuConfiguration
Definition:
MenuConfiguration.cs:28
Ntp.Analyzer.Page.BootstrapPeerPageBuilder.peer
readonly Peer peer
Definition:
BootstrapPeerPageBuilder.cs:52
Ntp.Analyzer.Render.Peer.BootstrapPeerInfoRender
Definition:
BootstrapPeerInfoRender.cs:31
Ntp
Ntp.Analyzer.Render
Definition:
BootstrapAboutPageRender.cs:26
System
Ntp.Analyzer.Page.BootstrapPeerPageBuilder
Definition:
BootstrapPeerPageBuilder.cs:35
Ntp.Analyzer.Config.Node.Navigation
Definition:
DropdownItemConfiguration.cs:26
Ntp.Analyzer.Objects.Host
Definition:
Host.cs:24
Ntp.Analyzer.Export
Definition:
DirectoryStreamDestination.cs:28
Ntp.Analyzer.Page.PageBuilderBase
Definition:
PageBuilderBase.cs:29
Ntp.Analyzer.Config.Node.Page
Definition:
AboutPageConfiguration.cs:29
Ntp.Analyzer.Objects.Peer
Definition:
Peer.cs:24
Ntp.Analyzer.Render.Peer.BootstrapPeerGraphRender
Definition:
BootstrapPeerGraphRender.cs:33
Ntp.Analyzer.Config.Node.Page.PeerPageConfiguration
Definition:
PeerPageConfiguration.cs:34
Ntp.Analyzer.Config.Node
Definition:
ClusterConfiguration.cs:24
Ntp.Analyzer.Page.BootstrapPeerPageBuilder.host
readonly Host host
Definition:
BootstrapPeerPageBuilder.cs:49
Ntp.Analyzer.Config.Node.Navigation.MenuItemType.Page
Ntp.Analyzer.Page.BootstrapPeerPageBuilder.menu
readonly MenuConfiguration menu
Definition:
BootstrapPeerPageBuilder.cs:50
Ntp.Analyzer
Ntp.Common.Process
Definition:
Cluster.cs:29
Ntp.Analyzer.Objects
Definition:
AssociationEntry.cs:22
Ntp.Analyzer.Render.Peer.BootstrapPeerPageRender
Definition:
BootstrapPeerPageRender.cs:27
Ntp.Analyzer
Page
BootstrapPeerPageBuilder.cs
Generated by
1.8.11