Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: runtime/vm/service.cc

Issue 299143007: Show flags in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js + code review Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/flags.cc ('k') | runtime/vm/service_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/service.h" 5 #include "vm/service.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/globals.h" 8 #include "platform/globals.h"
9 9
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 1915 matching lines...) Expand 10 before | Expand all | Expand 10 after
1926 1926
1927 private: 1927 private:
1928 JSONArray* jsarr_; 1928 JSONArray* jsarr_;
1929 }; 1929 };
1930 1930
1931 1931
1932 static bool HandleVM(JSONStream* js) { 1932 static bool HandleVM(JSONStream* js) {
1933 JSONObject jsobj(js); 1933 JSONObject jsobj(js);
1934 jsobj.AddProperty("type", "VM"); 1934 jsobj.AddProperty("type", "VM");
1935 jsobj.AddProperty("id", "vm"); 1935 jsobj.AddProperty("id", "vm");
1936 jsobj.AddProperty("architecture", CPU::Id()); 1936 jsobj.AddProperty("targetCPU", CPU::Id());
1937 jsobj.AddProperty("hostCPU", HostCPUFeatures::hardware());
1937 jsobj.AddProperty("version", Version::String()); 1938 jsobj.AddProperty("version", Version::String());
1938 jsobj.AddProperty("assertsEnabled", FLAG_enable_asserts); 1939 jsobj.AddProperty("assertsEnabled", FLAG_enable_asserts);
1939 jsobj.AddProperty("typeChecksEnabled", FLAG_enable_type_checks); 1940 jsobj.AddProperty("typeChecksEnabled", FLAG_enable_type_checks);
1940 int64_t start_time_micros = Dart::vm_isolate()->start_time(); 1941 int64_t start_time_micros = Dart::vm_isolate()->start_time();
1941 int64_t uptime_micros = (OS::GetCurrentTimeMicros() - start_time_micros); 1942 int64_t uptime_micros = (OS::GetCurrentTimeMicros() - start_time_micros);
1942 double seconds = (static_cast<double>(uptime_micros) / 1943 double seconds = (static_cast<double>(uptime_micros) /
1943 static_cast<double>(kMicrosecondsPerSecond)); 1944 static_cast<double>(kMicrosecondsPerSecond));
1944 jsobj.AddProperty("uptime", seconds); 1945 jsobj.AddProperty("uptime", seconds);
1945 1946
1946 // Construct the isolate list. 1947 // Construct the isolate list.
1947 { 1948 {
1948 JSONArray jsarr(&jsobj, "isolates"); 1949 JSONArray jsarr(&jsobj, "isolates");
1949 ServiceIsolateVisitor visitor(&jsarr); 1950 ServiceIsolateVisitor visitor(&jsarr);
1950 Isolate::VisitIsolates(&visitor); 1951 Isolate::VisitIsolates(&visitor);
1951 } 1952 }
1952 return true; 1953 return true;
1953 } 1954 }
1954 1955
1955 1956
1957 static bool HandleFlags(JSONStream* js) {
1958 if (js->num_arguments() == 1) {
1959 Flags::PrintJSON(js);
1960 return true;
1961 } else if (js->num_arguments() == 2) {
1962 const char* arg = js->GetArgument(1);
1963 if (strcmp(arg, "set") == 0) {
1964 if (js->num_arguments() > 2) {
1965 PrintError(js, "expected at most 2 arguments but found %" Pd "\n",
1966 js->num_arguments());
1967 } else {
1968 if (js->HasOption("name") && js->HasOption("value")) {
1969 JSONObject jsobj(js);
1970 const char* flag_name = js->LookupOption("name");
1971 const char* flag_value = js->LookupOption("value");
1972 const char* error = NULL;
1973 if (Flags::SetFlag(flag_name, flag_value, &error)) {
1974 jsobj.AddProperty("type", "Success");
1975 jsobj.AddProperty("id", "");
1976 } else {
1977 jsobj.AddProperty("type", "Failure");
1978 jsobj.AddProperty("id", "");
1979 jsobj.AddProperty("message", error);
1980 }
1981 } else {
1982 PrintError(js, "expected to find 'name' and 'value' options");
1983 }
1984 }
1985 }
1986 return true;
1987 } else {
1988 PrintError(js, "Command too long");
1989 return true;
1990 }
1991 }
1992
1993
1956 static RootMessageHandlerEntry root_handlers[] = { 1994 static RootMessageHandlerEntry root_handlers[] = {
1957 { "_echo", HandleRootEcho }, 1995 { "_echo", HandleRootEcho },
1958 { "vm", HandleVM }, 1996 { "vm", HandleVM },
1997 { "flags", HandleFlags },
1959 }; 1998 };
1960 1999
1961 2000
1962 static RootMessageHandler FindRootMessageHandler(const char* command) { 2001 static RootMessageHandler FindRootMessageHandler(const char* command) {
1963 intptr_t num_message_handlers = sizeof(root_handlers) / 2002 intptr_t num_message_handlers = sizeof(root_handlers) /
1964 sizeof(root_handlers[0]); 2003 sizeof(root_handlers[0]);
1965 for (intptr_t i = 0; i < num_message_handlers; i++) { 2004 for (intptr_t i = 0; i < num_message_handlers; i++) {
1966 const RootMessageHandlerEntry& entry = root_handlers[i]; 2005 const RootMessageHandlerEntry& entry = root_handlers[i];
1967 if (strcmp(command, entry.command) == 0) { 2006 if (strcmp(command, entry.command) == 0) {
1968 return entry.handler; 2007 return entry.handler;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2064 while (current != NULL) { 2103 while (current != NULL) {
2065 if (strcmp(name, current->name()) == 0) { 2104 if (strcmp(name, current->name()) == 0) {
2066 return current; 2105 return current;
2067 } 2106 }
2068 current = current->next(); 2107 current = current->next();
2069 } 2108 }
2070 return NULL; 2109 return NULL;
2071 } 2110 }
2072 2111
2073 } // namespace dart 2112 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/flags.cc ('k') | runtime/vm/service_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698