blob: c1d5692fa92f5a02b20d5edfc41d542cc56128c8 [file] [log] [blame]
<head>
<link rel="import" href="nav_bar.html">
<link rel="import" href="observatory_element.html">
<link rel="import" href="service_ref.html">
</head>
<polymer-element name="io-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
<nav-control></nav-control>
</nav-bar>
<div class="content">
<h1>dart:io</h1>
<br>
<ul class="list-group">
<li class="list-group-item">
<a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/http/servers'))}}">HTTP Servers</a>
</li>
</ul>
<br>
<ul class="list-group">
<li class="list-group-item">
<a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/sockets'))}}">Sockets</a>
</li>
</ul>
<br>
<ul class="list-group">
<li class="list-group-item">
<a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/websockets'))}}">WebSockets</a>
</li>
</ul>
<br>
<ul class="list-group">
<li class="list-group-item">
<a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/file/randomaccessfiles'))}}">Random Access Files</a>
</li>
</ul>
<br>
<ul class="list-group">
<li class="list-group-item">
<a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/processes'))}}">Processess</a>
</li>
</ul>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-ref" extends="service-ref">
<template>
<link rel="stylesheet" href="css/shared.css">
<template if="{{ ref.serviceType == 'Socket' }}">
<io-socket-ref ref="{{ ref }}"></io-socket-ref>
</template>
<template if="{{ ref.serviceType == 'HttpServer' }}">
<io-http-server-ref ref="{{ ref }}"></io-http-server-ref>
</template>
<template if="{{ ref.serviceType == 'WebSocket' }}">
<io-web-socket-ref ref="{{ ref }}"></io-web-socket-ref>
</template>
<template if="{{ ref.serviceType == 'Process' }}">
<io-process-ref ref="{{ ref }}"></io-process-ref>
</template>
</template>
</polymer-element>
<polymer-element name="io-http-server-list-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>HttpServers</h1>
<br>
<ul class="list-group">
<template repeat="{{ httpServer in list['members'] }}">
<li class="list-group-item">
<io-http-server-ref ref="{{ httpServer }}"></io-http-server-ref>
</li>
</template>
</ul>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-http-server-ref" extends="service-ref">
<template>
<link rel="stylesheet" href="css/shared.css">
<a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
</template>
</polymer-element>
<polymer-element name="io-http-server-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>HttpServer</h1>
<br>
<div class="memberList">
<div class="memberItem">
<div class="memberName">Socket</div>
<div class="memberValue"><io-socket-ref ref="{{ httpServer['socket'] }}"></io-socket-ref></div>
</div>
<div class="memberItem">
<div class="memberName">Address</div>
<div class="memberValue">{{ httpServer['address'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Port</div>
<div class="memberValue">{{ httpServer['port'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Active connections</div>
<div class="memberValue">{{ httpServer['active'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Idle connections</div>
<div class="memberValue">{{ httpServer['idle'] }}</div>
</div>
</div>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-socket-ref" extends="service-ref">
<template>
<link rel="stylesheet" href="css/shared.css">
<a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
</template>
</polymer-element>
<polymer-element name="io-socket-list-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>Sockets</h1>
<br>
<ul class="list-group">
<template repeat="{{ socket in list['members'] }}">
<li class="list-group-item">
<io-socket-ref ref="{{ socket }}"></io-socket-ref>
</li>
</template>
</ul>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-socket-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<!-- Pipe Socket -->
<template if="{{ socket.isPipe }}">
<h1>Pipe Socket</h1>
<div class="memberList">
<template if="{{ socket.socketOwner != null }}">
<div class="memberItem">
<div class="memberName">Owner</div>
<div class="memberValue"><io-ref ref="{{ socket.socketOwner }}"></io-ref></div>
</div>
</template>
<div class="memberItem">
<div class="memberName">File descriptor</div>
<div class="memberValue">{{ socket.fd }}</div>
</div>
<div class="memberItem">
<div class="memberName">Read Closed</div>
<div class="memberValue">{{ socket.readClosed }}</div>
</div>
<div class="memberItem">
<div class="memberName">Write Closed</div>
<div class="memberValue">{{ socket.writeClosed }}</div>
</div>
<div class="memberItem">
<div class="memberName">Closing</div>
<div class="memberValue">{{ socket.closing }}</div>
</div>
</div>
</template>
<!-- Network Socket -->
<template if="{{ !socket.isPipe }}">
<h1>Network Socket</h1>
<div class="memberList">
<template if="{{ socket.socketOwner != null }}">
<div class="memberItem">
<div class="memberName">Owner</div>
<div class="memberValue"><io-ref ref="{{ socket.socketOwner }}"></io-ref></div>
</div>
</template>
<div class="memberItem">
<div class="memberName">Local Address</div>
<div class="memberValue">{{ socket.localAddress }}</div>
</div>
<div class="memberItem">
<div class="memberName">Local Port</div>
<div class="memberValue">{{ socket.localPort }}</div>
</div>
<div class="memberItem">
<div class="memberName">Remote Address</div>
<div class="memberValue">{{ socket.remoteAddress }}</div>
</div>
<div class="memberItem">
<div class="memberName">Remote Port</div>
<div class="memberValue">{{ socket.remotePort }}</div>
</div>
<div class="memberItem">
<div class="memberName">File descriptor</div>
<div class="memberValue">{{ socket.fd }}</div>
</div>
<div class="memberItem">
<div class="memberName">Read Closed</div>
<div class="memberValue">{{ socket.readClosed }}</div>
</div>
<div class="memberItem">
<div class="memberName">Write Closed</div>
<div class="memberValue">{{ socket.writeClosed }}</div>
</div>
<div class="memberItem">
<div class="memberName">Closing</div>
<div class="memberValue">{{ socket.closing }}</div>
</div>
<div class="memberItem">
<div class="memberName">Listening</div>
<div class="memberValue">{{ socket.listening }}</div>
</div>
<div class="memberItem">
<div class="memberName">Protocol</div>
<div class="memberValue">{{ socket.protocol }}</div>
</div>
</div>
</template>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-web-socket-ref" extends="service-ref">
<template>
<link rel="stylesheet" href="css/shared.css">
<a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
</template>
</polymer-element>
<polymer-element name="io-web-socket-list-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>WebSockets</h1>
<br>
<ul class="list-group">
<template repeat="{{ webSocket in list['members'] }}">
<li class="list-group-item">
<io-web-socket-ref ref="{{ webSocket }}"></io-web-socket-ref>
</li>
</template>
</ul>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-web-socket-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>WebSocket</h1>
<br>
<div class="memberList">
<div class="memberItem">
<div class="memberName">Socket</div>
<div class="memberValue"><io-socket-ref ref="{{ webSocket['socket'] }}"></io-socket-ref></div>
</div>
</div>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-random-access-file-ref" extends="service-ref">
<template>
<link rel="stylesheet" href="css/shared.css">
<a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
</template>
</polymer-element>
<polymer-element name="io-random-access-file-list-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>Random Access Files</h1>
<br>
<ul class="list-group">
<template repeat="{{ file in list['members'] }}">
<li class="list-group-item">
<io-random-access-file-ref ref="{{ file }}"></io-random-access-file-ref>
</li>
</template>
</ul>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-random-access-file-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>Random Access File</h1>
<br>
<div class="memberList">
<div class="memberItem">
<div class="memberName">Path</div>
<div class="memberValue">{{ file['name'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Pending Operation</div>
<div class="memberValue">{{ file['asyncDispatched'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">File Descriptor</div>
<div class="memberValue">{{ file['fd'] }}</div>
</div>
</div>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-process-list-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>Processes</h1>
<br>
<ul class="list-group">
<template repeat="{{ process in list['members'] }}">
<li class="list-group-item">
<io-process-ref ref="{{ process }}"></io-process-ref>
</li>
</template>
</ul>
</div>
<br>
<hr>
</template>
</polymer-element>
<polymer-element name="io-process-ref" extends="service-ref">
<template>
<link rel="stylesheet" href="css/shared.css">
<template if="{{ small }}">
<a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
</template>
<template if="{{ !small }}">
<a on-click="{{ goto }}" href="{{ url }}">({{ ref['pid'] }}) {{ name }} {{ ref['arguments'] }}</a>
</template>
</template>
</polymer-element>
<polymer-element name="io-process-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu last="{{ true }}"></top-nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>Process</h1>
<br>
<div class="memberList">
<div class="memberItem">
<div class="memberName">Path</div>
<div class="memberValue">{{ process['name'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Pid</div>
<div class="memberValue">{{ process['pid'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Arguments</div>
<div class="memberValue">{{ process['arguments'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Started</div>
<div class="memberValue">{{ process['started'] }}</div>
</div>
<div class="memberItem">
<div class="memberName">Working Directory</div>
<div class="memberValue">{{ process['workingDirectory'] }}</div>
</div>
<template if="{{ process['stdin'] != null }}">
<div class="memberItem">
<div class="memberName">stdin</div>
<div class="memberValue">
<io-socket-ref ref="{{ process['stdin'] }}"></io-socket-ref>
</div>
</div>
</template>
<template if="{{ process['stdout'] != null }}">
<div class="memberItem">
<div class="memberName">stdout</div>
<div class="memberValue">
<io-socket-ref ref="{{ process['stdout'] }}"></io-socket-ref>
</div>
</div>
</template>
<template if="{{ process['stderr'] != null }}">
<div class="memberItem">
<div class="memberName">stderr</div>
<div class="memberValue">
<io-socket-ref ref="{{ process['stderr'] }}"></io-socket-ref>
</div>
</div>
</template>
</div>
<br>
<h2>Environment</h2>
<div class="well">
<div class="monospace break-wrap">
<template repeat="{{ variable in process['environment'] }}">
{{ variable }}
<br>
</template>
</div>
</div>
</div>
<br>
<hr>
</template>
</polymer-element>
<script type="application/dart" src="io_view.dart"></script>