diff --git a/src/web/src/clock_tree_report.cpp b/src/web/src/clock_tree_report.cpp index 84e26f52007..bdd00d1c3e4 100644 --- a/src/web/src/clock_tree_report.cpp +++ b/src/web/src/clock_tree_report.cpp @@ -36,17 +36,17 @@ namespace web { const char* ClockTreeNode::typeToString(Type t) { switch (t) { - case ROOT: + case kRoot: return "root"; - case BUFFER: + case kBuffer: return "buffer"; - case INVERTER: + case kInverter: return "inverter"; - case CLOCK_GATE: + case kClockGate: return "clock_gate"; - case REGISTER: + case kRegister: return "register"; - case MACRO: + case kMacro: return "macro"; default: return "unknown"; @@ -198,22 +198,22 @@ ClockTreeNode::Type classifyDriver(const sta::Pin* pin, sta::dbNetwork* network) { sta::Instance* inst = network->instance(pin); if (!inst) { - return ClockTreeNode::ROOT; + return ClockTreeNode::kRoot; } sta::LibertyCell* cell = network->libertyCell(inst); if (!cell) { - return ClockTreeNode::UNKNOWN; + return ClockTreeNode::kUnknown; } if (cell->isClockGate()) { - return ClockTreeNode::CLOCK_GATE; + return ClockTreeNode::kClockGate; } if (cell->isInverter()) { - return ClockTreeNode::INVERTER; + return ClockTreeNode::kInverter; } if (cell->isBuffer()) { - return ClockTreeNode::BUFFER; + return ClockTreeNode::kBuffer; } - return ClockTreeNode::UNKNOWN; + return ClockTreeNode::kUnknown; } struct ResolvedPin @@ -234,16 +234,16 @@ ClockTreeNode::Type classifyLeaf(const sta::Pin* pin, sta::dbNetwork* network) { sta::Instance* inst = network->instance(pin); if (!inst) { - return ClockTreeNode::UNKNOWN; + return ClockTreeNode::kUnknown; } auto [iterm, bterm] = resolveStaPin(pin, network); if (iterm) { odb::dbInst* db_inst = iterm->getInst(); if (db_inst->getMaster()->getType().isBlock()) { - return ClockTreeNode::MACRO; + return ClockTreeNode::kMacro; } } - return ClockTreeNode::REGISTER; + return ClockTreeNode::kRegister; } void getPinLocation(const sta::Pin* pin, @@ -320,7 +320,7 @@ void flattenNode(const TreeNode* tree, root_node.id = static_cast(data.nodes.size()); root_node.parent_id = -1; root_node.name = clock_name; - root_node.type = ClockTreeNode::ROOT; + root_node.type = ClockTreeNode::kRoot; root_node.level = 0; root_node.fanout = static_cast(tree->fanout.size() + tree->leaves.size()); diff --git a/src/web/src/clock_tree_report.h b/src/web/src/clock_tree_report.h index 79e35f54d79..5e7629566ae 100644 --- a/src/web/src/clock_tree_report.h +++ b/src/web/src/clock_tree_report.h @@ -21,15 +21,15 @@ struct ClockTreeNode enum Type { - ROOT, - BUFFER, - INVERTER, - CLOCK_GATE, - REGISTER, - MACRO, - UNKNOWN + kRoot, + kBuffer, + kInverter, + kClockGate, + kRegister, + kMacro, + kUnknown }; - Type type = UNKNOWN; + Type type = kUnknown; float arrival = 0.0f; // input arrival (user time units) float delay = 0.0f; // cell delay (user time units) diff --git a/src/web/src/hierarchy_report.cpp b/src/web/src/hierarchy_report.cpp index 3c87d5a6b24..cf83b705090 100644 --- a/src/web/src/hierarchy_report.cpp +++ b/src/web/src/hierarchy_report.cpp @@ -143,7 +143,7 @@ static void emitLeafNodes(odb::dbModule* module, leaf.id = leaf_id; leaf.parent_id = parent_id; leaf.inst_name = "Leaf instances"; - leaf.node_kind = HierarchyNodeKind::LEAF_GROUP; + leaf.node_kind = HierarchyNodeKind::kLeafGroup; // Aggregate totals for the leaf group for (const auto& [name, bucket] : buckets) { @@ -165,7 +165,7 @@ static void emitLeafNodes(odb::dbModule* module, type_node.id = type_id; type_node.parent_id = leaf_id; type_node.inst_name = type_name; - type_node.node_kind = HierarchyNodeKind::TYPE_GROUP; + type_node.node_kind = HierarchyNodeKind::kTypeGroup; type_node.area = static_cast(bucket.area_dbu2); if (bucket.is_macro) { type_node.macros = bucket.count; @@ -185,7 +185,7 @@ static void emitLeafNodes(odb::dbModule* module, inst_node.parent_id = type_id; inst_node.inst_name = inst->getConstName(); inst_node.module_name = inst->getMaster()->getConstName(); - inst_node.node_kind = HierarchyNodeKind::INSTANCE; + inst_node.node_kind = HierarchyNodeKind::kInstance; inst_node.macros = 1; inst_node.local_macros = 1; inst_node.area = static_cast(inst->getBBox()->getBox().area()); diff --git a/src/web/src/hierarchy_report.h b/src/web/src/hierarchy_report.h index 550cc027505..70a05b477ea 100644 --- a/src/web/src/hierarchy_report.h +++ b/src/web/src/hierarchy_report.h @@ -19,10 +19,10 @@ namespace web { // Node types in the hierarchy tree enum class HierarchyNodeKind { - MODULE = 0, // Module (default) - LEAF_GROUP = 1, // "Leaf instances" folder - TYPE_GROUP = 2, // Instance type sub-group (e.g. "Standard cell", "Macro") - INSTANCE = 3, // Individual instance row (only for macros) + kModule = 0, // Module (default) + kLeafGroup = 1, // "Leaf instances" folder + kTypeGroup = 2, // Instance type sub-group (e.g. "Standard cell", "Macro") + kInstance = 3, // Individual instance row (only for macros) }; struct HierarchyNode @@ -38,7 +38,7 @@ struct HierarchyNode int local_insts = 0; // direct stdcell count int local_macros = 0; // direct macro count int local_modules = 0; // direct child module count - HierarchyNodeKind node_kind = HierarchyNodeKind::MODULE; + HierarchyNodeKind node_kind = HierarchyNodeKind::kModule; unsigned int odb_id = 0; // dbModule::getId() for MODULE nodes }; diff --git a/src/web/src/request_handler.cpp b/src/web/src/request_handler.cpp index 3c5e671967b..fac10e3991e 100644 --- a/src/web/src/request_handler.cpp +++ b/src/web/src/request_handler.cpp @@ -516,7 +516,7 @@ WebSocketResponse dispatch_request( resp.id = req.id; switch (req.type) { - case WebSocketRequest::BOUNDS: { + case WebSocketRequest::kBounds: { resp.type = 0; JsonBuilder builder; serializeBoundsResponse(builder, gen, gen.shapesReady()); @@ -524,7 +524,7 @@ WebSocketResponse dispatch_request( resp.payload.assign(json.begin(), json.end()); break; } - case WebSocketRequest::TECH: { + case WebSocketRequest::kTech: { resp.type = 0; JsonBuilder builder; serializeTechResponse(builder, gen); @@ -532,7 +532,7 @@ WebSocketResponse dispatch_request( resp.payload.assign(json.begin(), json.end()); break; } - case WebSocketRequest::TILE: { + case WebSocketRequest::kTile: { resp.type = 1; resp.payload = gen.generateTile(req.layer, req.z, @@ -1908,10 +1908,10 @@ WebSocketResponse TileHandler::handleModuleHierarchy( builder.field("local_insts", n.local_insts); builder.field("local_macros", n.local_macros); builder.field("local_modules", n.local_modules); - if (n.node_kind != HierarchyNodeKind::MODULE) { + if (n.node_kind != HierarchyNodeKind::kModule) { builder.field("node_kind", static_cast(n.node_kind)); } - if (n.node_kind == HierarchyNodeKind::MODULE) { + if (n.node_kind == HierarchyNodeKind::kModule) { builder.field("odb_id", static_cast(n.odb_id)); } builder.endObject(); @@ -1938,7 +1938,7 @@ WebSocketResponse TileHandler::handleSetModuleColors( // Parse compact format: "id:r,g,b,a;id:r,g,b,a;..." std::map colors; - const std::string data = extract_string(req.vis.raw_json_, "colors"); + const std::string data = extract_string(req.vis.raw_json, "colors"); if (!data.empty()) { size_t pos = 0; while (pos < data.size()) { diff --git a/src/web/src/request_handler.h b/src/web/src/request_handler.h index a55f8eed0bb..0b3fba43c60 100644 --- a/src/web/src/request_handler.h +++ b/src/web/src/request_handler.h @@ -62,45 +62,45 @@ struct WebSocketRequest { enum Type { - TILE, - BOUNDS, - TECH, - SELECT, - INSPECT, - INSPECT_BACK, - HOVER, - TCL_EVAL, - TCL_COMPLETE, - TIMING_REPORT, - TIMING_HIGHLIGHT, - CLOCK_TREE, - CLOCK_TREE_HIGHLIGHT, - SLACK_HISTOGRAM, - CHART_FILTERS, - MODULE_HIERARCHY, - SET_MODULE_COLORS, - SET_FOCUS_NETS, - SET_ROUTE_GUIDES, - HEATMAPS, - SET_ACTIVE_HEATMAP, - SET_HEATMAP, - HEATMAP_TILE, - LIST_DIR, - SNAP, - SCHEMATIC_CONE, - SCHEMATIC_FULL, - SCHEMATIC_INSPECT, - DRC_CATEGORIES, - DRC_MARKERS, - DRC_LOAD_REPORT, - DRC_UPDATE_MARKER, - DRC_UPDATE_CATEGORY_VISIBILITY, - DRC_HIGHLIGHT, - UNKNOWN + kTile, + kBounds, + kTech, + kSelect, + kInspect, + kInspectBack, + kHover, + kTclEval, + kTclComplete, + kTimingReport, + kTimingHighlight, + kClockTree, + kClockTreeHighlight, + kSlackHistogram, + kChartFilters, + kModuleHierarchy, + kSetModuleColors, + kSetFocusNets, + kSetRouteGuides, + kHeatmaps, + kSetActiveHeatmap, + kSetHeatmap, + kHeatmapTile, + kListDir, + kSnap, + kSchematicCone, + kSchematicFull, + kSchematicInspect, + kDrcCategories, + kDrcMarkers, + kDrcLoadReport, + kDrcUpdateMarker, + kDrcUpdateCategoryVisibility, + kDrcHighlight, + kUnknown }; uint32_t id = 0; - Type type = UNKNOWN; + Type type = kUnknown; std::string layer; int z = 0; int x = 0; diff --git a/src/web/src/search.cpp b/src/web/src/search.cpp index e82ef1a82b8..a2faf52fc99 100644 --- a/src/web/src/search.cpp +++ b/src/web/src/search.cpp @@ -344,7 +344,7 @@ void Search::updateShapes(odb::dbBlock* block) continue; } odb::dbTechLayer* layer = box->getTechLayer(); - net_shapes[layer].emplace_back(box->getBox(), BTERM, term->getNet()); + net_shapes[layer].emplace_back(box->getBox(), kBterm, term->getNet()); } } } @@ -604,14 +604,14 @@ void Search::addVia( for (odb::dbBox* box : via->getBoxes()) { odb::Rect bbox = box->getBox(); bbox.moveDelta(x, y); - tree_shapes[box->getTechLayer()].emplace_back(bbox, VIA, net); + tree_shapes[box->getTechLayer()].emplace_back(bbox, kVia, net); } } else { odb::dbVia* via = shape->getVia(); for (odb::dbBox* box : via->getBoxes()) { odb::Rect bbox = box->getBox(); bbox.moveDelta(x, y); - tree_shapes[box->getTechLayer()].emplace_back(bbox, VIA, net); + tree_shapes[box->getTechLayer()].emplace_back(bbox, kVia, net); } } } @@ -660,7 +660,7 @@ void Search::addNet( if (s.isVia()) { addVia(net, &s, itr.prev_x_, itr.prev_y_, tree_shapes); } else { - tree_shapes[s.getTechLayer()].emplace_back(s.getBox(), WIRE, net); + tree_shapes[s.getTechLayer()].emplace_back(s.getBox(), kWire, net); } } } @@ -1128,13 +1128,13 @@ Search::SnapResult Search::searchNearestEdge( search_box.yMin(), search_box.xMax(), search_box.yMax())) { - if (!vis.routing && type == WIRE) { + if (!vis.routing && type == kWire) { continue; } - if (!vis.routing && type == VIA) { + if (!vis.routing && type == kVia) { continue; } - if (!vis.pins && type == BTERM) { + if (!vis.pins && type == kBterm) { continue; } if (vis.isNetVisible(net)) { diff --git a/src/web/src/search.h b/src/web/src/search.h index f6f98366ceb..aeb0ca77ef0 100644 --- a/src/web/src/search.h +++ b/src/web/src/search.h @@ -54,9 +54,9 @@ class Search : public odb::dbBlockCallBackObj public: enum RouteBoxType { - WIRE, - VIA, - BTERM + kWire, + kVia, + kBterm }; template diff --git a/src/web/src/tile_generator.cpp b/src/web/src/tile_generator.cpp index 2dfec5a6ee0..345a7f2ff3a 100644 --- a/src/web/src/tile_generator.cpp +++ b/src/web/src/tile_generator.cpp @@ -51,105 +51,105 @@ const unsigned char* getBitmapGlyph(const char ch) // used. switch (ch) { case '0': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x0E, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0E}; - return glyph; + return kGlyph; } case '1': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x04, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x0E}; - return glyph; + return kGlyph; } case '2': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x0E, 0x11, 0x01, 0x06, 0x08, 0x10, 0x1F}; - return glyph; + return kGlyph; } case '3': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x0E, 0x11, 0x01, 0x06, 0x01, 0x11, 0x0E}; - return glyph; + return kGlyph; } case '4': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x02, 0x06, 0x0A, 0x12, 0x1F, 0x02, 0x02}; - return glyph; + return kGlyph; } case '5': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x1F, 0x10, 0x1E, 0x01, 0x01, 0x11, 0x0E}; - return glyph; + return kGlyph; } case '6': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x06, 0x08, 0x10, 0x1E, 0x11, 0x11, 0x0E}; - return glyph; + return kGlyph; } case '7': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x1F, 0x01, 0x02, 0x04, 0x08, 0x08, 0x08}; - return glyph; + return kGlyph; } case '8': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E}; - return glyph; + return kGlyph; } case '9': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x0E, 0x11, 0x11, 0x0F, 0x01, 0x02, 0x0C}; - return glyph; + return kGlyph; } case '.': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C}; - return glyph; + return kGlyph; } case '-': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00}; - return glyph; + return kGlyph; } case '/': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x01, 0x02, 0x02, 0x04, 0x08, 0x08, 0x10}; - return glyph; + return kGlyph; } case '=': { - static constexpr unsigned char glyph[] + static constexpr unsigned char kGlyph[] = {0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00}; - return glyph; + return kGlyph; } // clang-format off - case 'A': case 'a': { static constexpr unsigned char g[]={0x0E,0x11,0x11,0x1F,0x11,0x11,0x11}; return g; } - case 'B': case 'b': { static constexpr unsigned char g[]={0x1E,0x11,0x11,0x1E,0x11,0x11,0x1E}; return g; } - case 'C': case 'c': { static constexpr unsigned char g[]={0x0E,0x11,0x10,0x10,0x10,0x11,0x0E}; return g; } - case 'D': case 'd': { static constexpr unsigned char g[]={0x1E,0x11,0x11,0x11,0x11,0x11,0x1E}; return g; } - case 'E': case 'e': { static constexpr unsigned char g[]={0x1F,0x10,0x10,0x1E,0x10,0x10,0x1F}; return g; } - case 'F': case 'f': { static constexpr unsigned char g[]={0x1F,0x10,0x10,0x1E,0x10,0x10,0x10}; return g; } - case 'G': case 'g': { static constexpr unsigned char g[]={0x0E,0x11,0x10,0x17,0x11,0x11,0x0F}; return g; } - case 'H': case 'h': { static constexpr unsigned char g[]={0x11,0x11,0x11,0x1F,0x11,0x11,0x11}; return g; } - case 'I': case 'i': { static constexpr unsigned char g[]={0x0E,0x04,0x04,0x04,0x04,0x04,0x0E}; return g; } - case 'J': case 'j': { static constexpr unsigned char g[]={0x07,0x02,0x02,0x02,0x02,0x12,0x0C}; return g; } - case 'K': case 'k': { static constexpr unsigned char g[]={0x11,0x12,0x14,0x18,0x14,0x12,0x11}; return g; } - case 'L': case 'l': { static constexpr unsigned char g[]={0x10,0x10,0x10,0x10,0x10,0x10,0x1F}; return g; } - case 'M': case 'm': { static constexpr unsigned char g[]={0x11,0x1B,0x15,0x15,0x11,0x11,0x11}; return g; } - case 'N': case 'n': { static constexpr unsigned char g[]={0x11,0x19,0x15,0x13,0x11,0x11,0x11}; return g; } - case 'O': case 'o': { static constexpr unsigned char g[]={0x0E,0x11,0x11,0x11,0x11,0x11,0x0E}; return g; } - case 'P': case 'p': { static constexpr unsigned char g[]={0x1E,0x11,0x11,0x1E,0x10,0x10,0x10}; return g; } - case 'Q': case 'q': { static constexpr unsigned char g[]={0x0E,0x11,0x11,0x11,0x15,0x12,0x0D}; return g; } - case 'R': case 'r': { static constexpr unsigned char g[]={0x1E,0x11,0x11,0x1E,0x14,0x12,0x11}; return g; } - case 'S': case 's': { static constexpr unsigned char g[]={0x0E,0x11,0x10,0x0E,0x01,0x11,0x0E}; return g; } - case 'T': case 't': { static constexpr unsigned char g[]={0x1F,0x04,0x04,0x04,0x04,0x04,0x04}; return g; } - case 'U': case 'u': { static constexpr unsigned char g[]={0x11,0x11,0x11,0x11,0x11,0x11,0x0E}; return g; } - case 'V': case 'v': { static constexpr unsigned char g[]={0x11,0x11,0x11,0x11,0x0A,0x0A,0x04}; return g; } - case 'W': case 'w': { static constexpr unsigned char g[]={0x11,0x11,0x11,0x15,0x15,0x1B,0x11}; return g; } - case 'X': case 'x': { static constexpr unsigned char g[]={0x11,0x0A,0x04,0x04,0x04,0x0A,0x11}; return g; } - case 'Y': case 'y': { static constexpr unsigned char g[]={0x11,0x0A,0x04,0x04,0x04,0x04,0x04}; return g; } - case 'Z': case 'z': { static constexpr unsigned char g[]={0x1F,0x01,0x02,0x04,0x08,0x10,0x1F}; return g; } - case '_': { static constexpr unsigned char g[]={0x00,0x00,0x00,0x00,0x00,0x00,0x1F}; return g; } - case '[': { static constexpr unsigned char g[]={0x0E,0x08,0x08,0x08,0x08,0x08,0x0E}; return g; } - case ']': { static constexpr unsigned char g[]={0x0E,0x02,0x02,0x02,0x02,0x02,0x0E}; return g; } + case 'A': case 'a': { static constexpr unsigned char kG[]={0x0E,0x11,0x11,0x1F,0x11,0x11,0x11}; return kG; } + case 'B': case 'b': { static constexpr unsigned char kG[]={0x1E,0x11,0x11,0x1E,0x11,0x11,0x1E}; return kG; } + case 'C': case 'c': { static constexpr unsigned char kG[]={0x0E,0x11,0x10,0x10,0x10,0x11,0x0E}; return kG; } + case 'D': case 'd': { static constexpr unsigned char kG[]={0x1E,0x11,0x11,0x11,0x11,0x11,0x1E}; return kG; } + case 'E': case 'e': { static constexpr unsigned char kG[]={0x1F,0x10,0x10,0x1E,0x10,0x10,0x1F}; return kG; } + case 'F': case 'f': { static constexpr unsigned char kG[]={0x1F,0x10,0x10,0x1E,0x10,0x10,0x10}; return kG; } + case 'G': case 'g': { static constexpr unsigned char kG[]={0x0E,0x11,0x10,0x17,0x11,0x11,0x0F}; return kG; } + case 'H': case 'h': { static constexpr unsigned char kG[]={0x11,0x11,0x11,0x1F,0x11,0x11,0x11}; return kG; } + case 'I': case 'i': { static constexpr unsigned char kG[]={0x0E,0x04,0x04,0x04,0x04,0x04,0x0E}; return kG; } + case 'J': case 'j': { static constexpr unsigned char kG[]={0x07,0x02,0x02,0x02,0x02,0x12,0x0C}; return kG; } + case 'K': case 'k': { static constexpr unsigned char kG[]={0x11,0x12,0x14,0x18,0x14,0x12,0x11}; return kG; } + case 'L': case 'l': { static constexpr unsigned char kG[]={0x10,0x10,0x10,0x10,0x10,0x10,0x1F}; return kG; } + case 'M': case 'm': { static constexpr unsigned char kG[]={0x11,0x1B,0x15,0x15,0x11,0x11,0x11}; return kG; } + case 'N': case 'n': { static constexpr unsigned char kG[]={0x11,0x19,0x15,0x13,0x11,0x11,0x11}; return kG; } + case 'O': case 'o': { static constexpr unsigned char kG[]={0x0E,0x11,0x11,0x11,0x11,0x11,0x0E}; return kG; } + case 'P': case 'p': { static constexpr unsigned char kG[]={0x1E,0x11,0x11,0x1E,0x10,0x10,0x10}; return kG; } + case 'Q': case 'q': { static constexpr unsigned char kG[]={0x0E,0x11,0x11,0x11,0x15,0x12,0x0D}; return kG; } + case 'R': case 'r': { static constexpr unsigned char kG[]={0x1E,0x11,0x11,0x1E,0x14,0x12,0x11}; return kG; } + case 'S': case 's': { static constexpr unsigned char kG[]={0x0E,0x11,0x10,0x0E,0x01,0x11,0x0E}; return kG; } + case 'T': case 't': { static constexpr unsigned char kG[]={0x1F,0x04,0x04,0x04,0x04,0x04,0x04}; return kG; } + case 'U': case 'u': { static constexpr unsigned char kG[]={0x11,0x11,0x11,0x11,0x11,0x11,0x0E}; return kG; } + case 'V': case 'v': { static constexpr unsigned char kG[]={0x11,0x11,0x11,0x11,0x0A,0x0A,0x04}; return kG; } + case 'W': case 'w': { static constexpr unsigned char kG[]={0x11,0x11,0x11,0x15,0x15,0x1B,0x11}; return kG; } + case 'X': case 'x': { static constexpr unsigned char kG[]={0x11,0x0A,0x04,0x04,0x04,0x0A,0x11}; return kG; } + case 'Y': case 'y': { static constexpr unsigned char kG[]={0x11,0x0A,0x04,0x04,0x04,0x04,0x04}; return kG; } + case 'Z': case 'z': { static constexpr unsigned char kG[]={0x1F,0x01,0x02,0x04,0x08,0x10,0x1F}; return kG; } + case '_': { static constexpr unsigned char kG[]={0x00,0x00,0x00,0x00,0x00,0x00,0x1F}; return kG; } + case '[': { static constexpr unsigned char kG[]={0x0E,0x08,0x08,0x08,0x08,0x08,0x0E}; return kG; } + case ']': { static constexpr unsigned char kG[]={0x0E,0x02,0x02,0x02,0x02,0x02,0x0E}; return kG; } // clang-format on default: return nullptr; @@ -177,7 +177,7 @@ void TileVisibility::parseFromJson(const std::string& json) // clang-format off // NOLINTBEGIN(modernize-use-designated-initializers) - static const BoolField fields[] = { + static const BoolField kFields[] = { {"stdcells", &TileVisibility::stdcells, true}, {"macros", &TileVisibility::macros, true}, {"pad_input", &TileVisibility::pad_input, true}, @@ -225,10 +225,10 @@ void TileVisibility::parseFromJson(const std::string& json) // NOLINTEND(modernize-use-designated-initializers) // clang-format on - for (const auto& f : fields) { + for (const auto& f : kFields) { this->*(f.field) = extract_int_or(json, f.key, f.default_val ? 1 : 0); } - raw_json_ = json; + raw_json = json; } bool TileVisibility::isSiteVisible(const std::string& site_name) const @@ -237,7 +237,7 @@ bool TileVisibility::isSiteVisible(const std::string& site_name) const return false; } const std::string key = "site_" + site_name; - return extract_int_or(raw_json_, key, 0); + return extract_int_or(raw_json, key, 0); } bool TileVisibility::isNetVisible(odb::dbNet* net) const @@ -783,8 +783,8 @@ std::vector TileGenerator::renderTileBuffer( const std::set* route_guide_net_ids) const { static_assert(sizeof(Color) == 4); - constexpr int buffer_size = kTileSizeInPixel * kTileSizeInPixel * 4; - std::vector image_buffer(buffer_size, 0); + constexpr int kBufferSize = kTileSizeInPixel * kTileSizeInPixel * 4; + std::vector image_buffer(kBufferSize, 0); // No design loaded — return blank tile. if (!getBlock()) { @@ -794,7 +794,7 @@ std::vector TileGenerator::renderTileBuffer( } // Per-layer colors: routing level 1=blue, 2=red, then distinct hues - static const Color palette[] = { + static const Color kPalette[] = { // clang-format off // NOLINTBEGIN(modernize-use-designated-initializers) { 70, 130, 210, 180}, // moderate blue @@ -808,7 +808,7 @@ std::vector TileGenerator::renderTileBuffer( // NOLINTEND(modernize-use-designated-initializers) // clang-format on }; - static constexpr int palette_size = sizeof(palette) / sizeof(palette[0]); + static constexpr int kPaletteSize = sizeof(kPalette) / sizeof(kPalette[0]); odb::dbTech* tech = db_->getTech(); odb::dbTechLayer* tech_layer = tech->findLayer(layer.c_str()); @@ -821,7 +821,7 @@ std::vector TileGenerator::renderTileBuffer( layer_index = std::distance(all_layers.begin(), it); } } - const Color color = palette[layer_index % palette_size]; + const Color color = kPalette[layer_index % kPaletteSize]; const Color obs_color = color.lighter(); // Determine our tile's bounding box in dbu coordinates. @@ -945,7 +945,7 @@ std::vector TileGenerator::renderTileBuffer( all_layers, std::string(pin_layer->getName())); if (it != all_layers.end()) { const int idx = std::distance(all_layers.begin(), it); - marker_color = palette[idx % palette_size]; + marker_color = kPalette[idx % kPaletteSize]; marker_color.a = 220; } } @@ -1024,10 +1024,10 @@ std::vector TileGenerator::renderTileBuffer( if (draw_pin_names) { const std::string name = term->getName(); const odb::Point anchor_pt = xfm.getOffset(); - constexpr int text_scale = 2; - const int text_w = getBitmapTextWidth(name, text_scale); - const int text_h = getBitmapTextHeight(text_scale); - const int text_margin_px = text_scale + 1; + constexpr int kTextScale = 2; + const int text_w = getBitmapTextWidth(name, kTextScale); + const int text_h = getBitmapTextHeight(kTextScale); + const int text_margin_px = kTextScale + 1; const bool rotated = (arg_min == 2 || arg_min == 3); // For rotated text, width/height swap. @@ -1067,10 +1067,10 @@ std::vector TileGenerator::renderTileBuffer( .a = 255}; if (rotated) { drawBitmapTextRotated( - image_buffer, px, py, name, text_scale, text_color); + image_buffer, px, py, name, kTextScale, text_color); } else { drawBitmapText( - image_buffer, px, py, name, text_scale, text_color); + image_buffer, px, py, name, kTextScale, text_color); } } } @@ -1405,7 +1405,7 @@ std::vector TileGenerator::renderTileBuffer( .r = 60, .g = 180, .b = 60, .a = 180}; // green outlines // Lambda to draw a rectangle outline. - auto drawOutline = [&](const odb::Rect& rect) { + auto draw_outline = [&](const odb::Rect& rect) { const odb::Rect draw = toPixels(scale, rect, dbu_tile); for (int ix = draw.xMin(); ix <= draw.xMax(); ++ix) { blendPixel(image_buffer, ix, 255 - draw.yMin(), row_color); @@ -1428,7 +1428,7 @@ std::vector TileGenerator::renderTileBuffer( } // Always draw the row outline. - drawOutline(row_rect); + draw_outline(row_rect); // Draw individual sites when zoomed in enough (site >= 5px). // Matches GUI nominalViewableResolution threshold. @@ -1460,7 +1460,7 @@ std::vector TileGenerator::renderTileBuffer( const odb::Rect site_rect( pt.x(), pt.y(), pt.x() + site_w, pt.y() + site_h); if (site_rect.overlaps(dbu_tile)) { - drawOutline(site_rect); + draw_outline(site_rect); } if (horizontal) { pt.addX(spacing); @@ -1579,8 +1579,8 @@ std::vector TileGenerator::generateHeatMapTile( const int x, int y) const { - constexpr int buffer_size = kTileSizeInPixel * kTileSizeInPixel * 4; - std::vector image_buffer(buffer_size, 0); + constexpr int kBufferSize = kTileSizeInPixel * kTileSizeInPixel * 4; + std::vector image_buffer(kBufferSize, 0); const double num_tiles_at_zoom = pow(2, z); if (x < 0 || y < 0 || x >= num_tiles_at_zoom || y >= num_tiles_at_zoom) { @@ -1596,8 +1596,8 @@ std::vector TileGenerator::generateHeatMapTile( const int dbu_y_max = hm_bounds.yMin() + std::ceil((y + 1) * tile_dbu_size); const odb::Rect dbu_tile(dbu_x_min, dbu_y_min, dbu_x_max, dbu_y_max); const double scale = kTileSizeInPixel / tile_dbu_size; - constexpr double text_rect_margin = 0.8; - constexpr int text_scale = 2; + constexpr double kTextRectMargin = 0.8; + constexpr int kTextScale = 2; const Color text_color{.r = 255, .g = 255, .b = 255, .a = 255}; for (const auto& map_point : source.getVisibleMap(dbu_tile, scale)) { @@ -1622,12 +1622,12 @@ std::vector TileGenerator::generateHeatMapTile( } const std::string text = source.formatValue(map_point.value, false); - const int text_width = getBitmapTextWidth(text, text_scale); - const int text_height = getBitmapTextHeight(text_scale); + const int text_width = getBitmapTextWidth(text, kTextScale); + const int text_height = getBitmapTextHeight(kTextScale); const double rect_width = map_point.rect.dx() * scale; const double rect_height = map_point.rect.dy() * scale; - if (text_width >= text_rect_margin * rect_width - || text_height >= text_rect_margin * rect_height) { + if (text_width >= kTextRectMargin * rect_width + || text_height >= kTextRectMargin * rect_height) { continue; } @@ -1646,7 +1646,7 @@ std::vector TileGenerator::generateHeatMapTile( pixel_x - text_width / 2, pixel_y - text_height / 2, text, - text_scale, + kTextScale, text_color); } @@ -2543,9 +2543,9 @@ void collectTimingPathShapes(odb::dbBlock* block, // Track nets already collected to avoid duplicates std::set seen_nets; - auto processNodes = [&](const std::vector& nodes, - const Color& clk_color, - const Color& data_color) { + auto process_nodes = [&](const std::vector& nodes, + const Color& clk_color, + const Color& data_color) { for (size_t i = 0; i + 1 < nodes.size(); i++) { auto [a_iterm, a_bterm] = resolvePin(block, nodes[i].pin_name); auto [b_iterm, b_bterm] = resolvePin(block, nodes[i + 1].pin_name); @@ -2563,10 +2563,10 @@ void collectTimingPathShapes(odb::dbBlock* block, }; // data_nodes: launch clock (is_clock=true) then signal portion - processNodes(path.data_nodes, kLaunchClkColor, kSignalColor); + process_nodes(path.data_nodes, kLaunchClkColor, kSignalColor); // capture_nodes: capture clock path - processNodes(path.capture_nodes, kCaptureClkColor, kCaptureClkColor); + process_nodes(path.capture_nodes, kCaptureClkColor, kCaptureClkColor); } void serializeTechResponse(JsonBuilder& b, const TileGenerator& gen) diff --git a/src/web/src/tile_generator.h b/src/web/src/tile_generator.h index d06599a4a5c..dab8cfcfd9f 100644 --- a/src/web/src/tile_generator.h +++ b/src/web/src/tile_generator.h @@ -114,7 +114,7 @@ struct TileVisibility // Rows (off by default, matching GUI) bool rows = false; - std::string raw_json_; // stored for dynamic per-site lookups + std::string raw_json; // stored for dynamic per-site lookups bool isSiteVisible(const std::string& site_name) const; // Tracks (off by default, matching GUI) diff --git a/src/web/src/web.cpp b/src/web/src/web.cpp index ba3c3450184..059f133ab98 100644 --- a/src/web/src/web.cpp +++ b/src/web/src/web.cpp @@ -48,7 +48,7 @@ namespace beast = boost::beast; namespace http = beast::http; namespace websocket = beast::websocket; namespace net = boost::asio; -using tcp = net::ip::tcp; +using Tcp = net::ip::tcp; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ @@ -61,33 +61,33 @@ static WebSocketRequest parse_web_socket_request(const std::string& msg) std::string type_str = extract_string(msg, "type"); if (type_str == "tile") { - req.type = WebSocketRequest::TILE; + req.type = WebSocketRequest::kTile; req.layer = extract_string(msg, "layer"); req.z = extract_int(msg, "z"); req.x = extract_int(msg, "x"); req.y = extract_int(msg, "y"); req.vis.parseFromJson(msg); } else if (type_str == "bounds") { - req.type = WebSocketRequest::BOUNDS; + req.type = WebSocketRequest::kBounds; } else if (type_str == "tech") { - req.type = WebSocketRequest::TECH; + req.type = WebSocketRequest::kTech; } else if (type_str == "inspect") { - req.type = WebSocketRequest::INSPECT; + req.type = WebSocketRequest::kInspect; req.select_id = extract_int(msg, "select_id"); } else if (type_str == "inspect_back") { - req.type = WebSocketRequest::INSPECT_BACK; + req.type = WebSocketRequest::kInspectBack; } else if (type_str == "hover") { - req.type = WebSocketRequest::HOVER; + req.type = WebSocketRequest::kHover; req.select_id = extract_int(msg, "select_id"); } else if (type_str == "tcl_eval") { - req.type = WebSocketRequest::TCL_EVAL; + req.type = WebSocketRequest::kTclEval; req.tcl_cmd = extract_string(msg, "cmd"); } else if (type_str == "tcl_complete") { - req.type = WebSocketRequest::TCL_COMPLETE; + req.type = WebSocketRequest::kTclComplete; req.tcl_complete_line = extract_string(msg, "line"); req.tcl_complete_cursor_pos = extract_int_or(msg, "cursor_pos", -1); } else if (type_str == "timing_report") { - req.type = WebSocketRequest::TIMING_REPORT; + req.type = WebSocketRequest::kTimingReport; req.timing_is_setup = extract_int_or(msg, "is_setup", 1); req.timing_max_paths = extract_int_or(msg, "max_paths", 100); req.timing_slack_min = extract_float_or( @@ -95,54 +95,54 @@ static WebSocketRequest parse_web_socket_request(const std::string& msg) req.timing_slack_max = extract_float_or(msg, "slack_max", std::numeric_limits::max()); } else if (type_str == "timing_highlight") { - req.type = WebSocketRequest::TIMING_HIGHLIGHT; + req.type = WebSocketRequest::kTimingHighlight; req.timing_path_index = extract_int_or(msg, "path_index", -1); req.timing_highlight_setup = extract_int_or(msg, "is_setup", 1); req.timing_pin_name = extract_string(msg, "pin_name"); } else if (type_str == "clock_tree") { - req.type = WebSocketRequest::CLOCK_TREE; + req.type = WebSocketRequest::kClockTree; } else if (type_str == "clock_tree_highlight") { - req.type = WebSocketRequest::CLOCK_TREE_HIGHLIGHT; + req.type = WebSocketRequest::kClockTreeHighlight; req.clock_tree_inst_name = extract_string(msg, "inst_name"); } else if (type_str == "slack_histogram") { - req.type = WebSocketRequest::SLACK_HISTOGRAM; + req.type = WebSocketRequest::kSlackHistogram; req.histogram_is_setup = extract_int_or(msg, "is_setup", 1); req.histogram_path_group = extract_string(msg, "path_group"); req.histogram_clock = extract_string(msg, "clock_name"); } else if (type_str == "chart_filters") { - req.type = WebSocketRequest::CHART_FILTERS; + req.type = WebSocketRequest::kChartFilters; } else if (type_str == "module_hierarchy") { - req.type = WebSocketRequest::MODULE_HIERARCHY; + req.type = WebSocketRequest::kModuleHierarchy; } else if (type_str == "set_module_colors") { - req.type = WebSocketRequest::SET_MODULE_COLORS; + req.type = WebSocketRequest::kSetModuleColors; req.vis.parseFromJson(msg); } else if (type_str == "set_focus_nets") { - req.type = WebSocketRequest::SET_FOCUS_NETS; + req.type = WebSocketRequest::kSetFocusNets; req.focus_action = extract_string(msg, "action"); req.focus_net_name = extract_string(msg, "net_name"); } else if (type_str == "set_route_guides") { - req.type = WebSocketRequest::SET_ROUTE_GUIDES; + req.type = WebSocketRequest::kSetRouteGuides; req.route_guide_action = extract_string(msg, "action"); req.route_guide_net_name = extract_string(msg, "net_name"); } else if (type_str == "schematic_cone") { - req.type = WebSocketRequest::SCHEMATIC_CONE; + req.type = WebSocketRequest::kSchematicCone; req.schematic_inst_name = extract_string(msg, "inst_name"); req.schematic_fanin_depth = extract_int_or(msg, "fanin_depth", 1); req.schematic_fanout_depth = extract_int_or(msg, "fanout_depth", 1); } else if (type_str == "schematic_full") { - req.type = WebSocketRequest::SCHEMATIC_FULL; + req.type = WebSocketRequest::kSchematicFull; } else if (type_str == "schematic_inspect") { - req.type = WebSocketRequest::SCHEMATIC_INSPECT; + req.type = WebSocketRequest::kSchematicInspect; req.schematic_inst_name = extract_string(msg, "inst_name"); } else if (type_str == "select") { - req.type = WebSocketRequest::SELECT; + req.type = WebSocketRequest::kSelect; req.select_x = extract_int(msg, "dbu_x"); req.select_y = extract_int(msg, "dbu_y"); req.select_zoom = extract_int_or(msg, "zoom", 0); req.visible_layers = extract_string_array(msg, "visible_layers"); req.vis.parseFromJson(msg); } else if (type_str == "snap") { - req.type = WebSocketRequest::SNAP; + req.type = WebSocketRequest::kSnap; req.snap_x = extract_int(msg, "dbu_x"); req.snap_y = extract_int(msg, "dbu_y"); req.snap_radius = extract_int(msg, "radius"); @@ -152,46 +152,46 @@ static WebSocketRequest parse_web_socket_request(const std::string& msg) req.visible_layers = extract_string_array(msg, "visible_layers"); req.vis.parseFromJson(msg); } else if (type_str == "heatmaps") { - req.type = WebSocketRequest::HEATMAPS; + req.type = WebSocketRequest::kHeatmaps; } else if (type_str == "set_active_heatmap") { - req.type = WebSocketRequest::SET_ACTIVE_HEATMAP; + req.type = WebSocketRequest::kSetActiveHeatmap; req.heatmap_name = extract_string(msg, "name"); } else if (type_str == "set_heatmap") { - req.type = WebSocketRequest::SET_HEATMAP; + req.type = WebSocketRequest::kSetHeatmap; req.heatmap_name = extract_string(msg, "name"); req.heatmap_option = extract_string(msg, "option"); req.heatmap_string_value = extract_string(msg, "value"); } else if (type_str == "heatmap_tile") { - req.type = WebSocketRequest::HEATMAP_TILE; + req.type = WebSocketRequest::kHeatmapTile; req.heatmap_name = extract_string(msg, "name"); req.z = extract_int(msg, "z"); req.x = extract_int(msg, "x"); req.y = extract_int(msg, "y"); } else if (type_str == "drc_categories") { - req.type = WebSocketRequest::DRC_CATEGORIES; + req.type = WebSocketRequest::kDrcCategories; } else if (type_str == "drc_markers") { - req.type = WebSocketRequest::DRC_MARKERS; + req.type = WebSocketRequest::kDrcMarkers; req.drc_category_name = extract_string(msg, "category"); } else if (type_str == "drc_load_report") { - req.type = WebSocketRequest::DRC_LOAD_REPORT; + req.type = WebSocketRequest::kDrcLoadReport; req.drc_file_path = extract_string(msg, "path"); } else if (type_str == "drc_update_marker") { - req.type = WebSocketRequest::DRC_UPDATE_MARKER; + req.type = WebSocketRequest::kDrcUpdateMarker; req.drc_marker_id = extract_int(msg, "marker_id"); req.drc_field = extract_string(msg, "field"); req.drc_field_value = extract_int_or(msg, "value", 0) != 0; } else if (type_str == "drc_update_category_visibility") { - req.type = WebSocketRequest::DRC_UPDATE_CATEGORY_VISIBILITY; + req.type = WebSocketRequest::kDrcUpdateCategoryVisibility; req.drc_category_name = extract_string(msg, "category"); req.drc_field_value = extract_int_or(msg, "visible", 1) != 0; } else if (type_str == "drc_highlight") { - req.type = WebSocketRequest::DRC_HIGHLIGHT; + req.type = WebSocketRequest::kDrcHighlight; req.drc_marker_id = extract_int_or(msg, "marker_id", -1); } else if (type_str == "list_dir") { - req.type = WebSocketRequest::LIST_DIR; + req.type = WebSocketRequest::kListDir; req.dir_path = extract_string(msg, "path"); } else { - req.type = WebSocketRequest::UNKNOWN; + req.type = WebSocketRequest::kUnknown; } return req; } @@ -257,7 +257,7 @@ static http::response handle_request( if (req.method() == http::verb::get && req.target() == "/bounds") { WebSocketRequest websocket_req; - websocket_req.type = WebSocketRequest::BOUNDS; + websocket_req.type = WebSocketRequest::kBounds; WebSocketResponse websocket_resp = dispatch_request(websocket_req, generator); res.set(http::field::content_type, "application/json"); @@ -265,7 +265,7 @@ static http::response handle_request( websocket_resp.payload.end()); } else if (req.method() == http::verb::get && req.target() == "/tech") { WebSocketRequest websocket_req; - websocket_req.type = WebSocketRequest::TECH; + websocket_req.type = WebSocketRequest::kTech; WebSocketResponse websocket_resp = dispatch_request(websocket_req, generator); res.set(http::field::content_type, "application/json"); @@ -274,7 +274,7 @@ static http::response handle_request( } else if (req.method() == http::verb::get && std::regex_match(target_path, match_pieces, tile_regex)) { WebSocketRequest websocket_req; - websocket_req.type = WebSocketRequest::TILE; + websocket_req.type = WebSocketRequest::kTile; websocket_req.layer = match_pieces[1].str(); websocket_req.z = std::stoi(match_pieces[2].str()); websocket_req.x = std::stoi(match_pieces[3].str()); @@ -347,7 +347,7 @@ class WebSocketSession : public std::enable_shared_from_this std::thread init_thread_; public: - WebSocketSession(tcp::socket&& socket, + WebSocketSession(Tcp::socket&& socket, std::shared_ptr generator, std::shared_ptr tcl_eval, std::shared_ptr timing_report, @@ -366,7 +366,7 @@ class WebSocketSession : public std::enable_shared_from_this }; WebSocketSession::WebSocketSession( - tcp::socket&& socket, + Tcp::socket&& socket, // NOLINTBEGIN(performance-unnecessary-value-param) std::shared_ptr generator, std::shared_ptr tcl_eval, @@ -482,77 +482,77 @@ void WebSocketSession::on_read(beast::error_code ec) auto self = shared_from_this(); switch (req.type) { - case WebSocketRequest::SELECT: + case WebSocketRequest::kSelect: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->select_handler_.handleSelect(req, self->state_)); }); break; - case WebSocketRequest::SNAP: + case WebSocketRequest::kSnap: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->select_handler_.handleSnap(req)); }); break; - case WebSocketRequest::INSPECT: + case WebSocketRequest::kInspect: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->select_handler_.handleInspect(req, self->state_)); }); break; - case WebSocketRequest::INSPECT_BACK: + case WebSocketRequest::kInspectBack: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->select_handler_.handleInspectBack( req, self->state_)); }); break; - case WebSocketRequest::HOVER: + case WebSocketRequest::kHover: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->select_handler_.handleHover(req, self->state_)); }); break; - case WebSocketRequest::SCHEMATIC_CONE: + case WebSocketRequest::kSchematicCone: net::post(websocket_.get_executor(), [self, req]() { self->queue_response(self->select_handler_.handleSchematicCone(req)); }); break; - case WebSocketRequest::SCHEMATIC_FULL: + case WebSocketRequest::kSchematicFull: net::post(websocket_.get_executor(), [self, req]() { self->queue_response(self->select_handler_.handleSchematicFull(req)); }); break; - case WebSocketRequest::SCHEMATIC_INSPECT: + case WebSocketRequest::kSchematicInspect: net::post(websocket_.get_executor(), [self, req]() { self->queue_response( self->select_handler_.handleSchematicInspect(req, self->state_)); }); break; - case WebSocketRequest::TCL_EVAL: + case WebSocketRequest::kTclEval: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->tcl_handler_.handleTclEval(req)); }); break; - case WebSocketRequest::TCL_COMPLETE: + case WebSocketRequest::kTclComplete: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->tcl_handler_.handleTclComplete(req)); }); break; - case WebSocketRequest::TIMING_REPORT: + case WebSocketRequest::kTimingReport: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->timing_handler_.handleTimingReport(req)); }); break; - case WebSocketRequest::TIMING_HIGHLIGHT: + case WebSocketRequest::kTimingHighlight: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { @@ -560,14 +560,14 @@ void WebSocketSession::on_read(beast::error_code ec) self->timing_handler_.handleTimingHighlight(req, self->state_)); }); break; - case WebSocketRequest::CLOCK_TREE: + case WebSocketRequest::kClockTree: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->clock_tree_handler_.handleClockTree(req)); }); break; - case WebSocketRequest::CLOCK_TREE_HIGHLIGHT: + case WebSocketRequest::kClockTreeHighlight: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( @@ -575,28 +575,28 @@ void WebSocketSession::on_read(beast::error_code ec) req, self->state_)); }); break; - case WebSocketRequest::SLACK_HISTOGRAM: + case WebSocketRequest::kSlackHistogram: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->timing_handler_.handleSlackHistogram(req)); }); break; - case WebSocketRequest::CHART_FILTERS: + case WebSocketRequest::kChartFilters: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->timing_handler_.handleChartFilters(req)); }); break; - case WebSocketRequest::MODULE_HIERARCHY: + case WebSocketRequest::kModuleHierarchy: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->tile_handler_.handleModuleHierarchy(req)); }); break; - case WebSocketRequest::SET_MODULE_COLORS: + case WebSocketRequest::kSetModuleColors: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { @@ -604,14 +604,14 @@ void WebSocketSession::on_read(beast::error_code ec) self->tile_handler_.handleSetModuleColors(req, self->state_)); }); break; - case WebSocketRequest::SET_FOCUS_NETS: + case WebSocketRequest::kSetFocusNets: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->select_handler_.handleSetFocusNets( req, self->state_)); }); break; - case WebSocketRequest::SET_ROUTE_GUIDES: + case WebSocketRequest::kSetRouteGuides: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { @@ -619,14 +619,14 @@ void WebSocketSession::on_read(beast::error_code ec) self->select_handler_.handleSetRouteGuides(req, self->state_)); }); break; - case WebSocketRequest::HEATMAPS: + case WebSocketRequest::kHeatmaps: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->tile_handler_.handleHeatMaps(req, self->state_)); }); break; - case WebSocketRequest::SET_ACTIVE_HEATMAP: + case WebSocketRequest::kSetActiveHeatmap: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { @@ -634,55 +634,55 @@ void WebSocketSession::on_read(beast::error_code ec) self->tile_handler_.handleSetActiveHeatMap(req, self->state_)); }); break; - case WebSocketRequest::SET_HEATMAP: + case WebSocketRequest::kSetHeatmap: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->tile_handler_.handleSetHeatMap(req, self->state_)); }); break; - case WebSocketRequest::HEATMAP_TILE: + case WebSocketRequest::kHeatmapTile: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->tile_handler_.handleHeatMapTile(req, self->state_)); }); break; - case WebSocketRequest::LIST_DIR: + case WebSocketRequest::kListDir: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(handleListDir(req)); }); break; - case WebSocketRequest::DRC_CATEGORIES: + case WebSocketRequest::kDrcCategories: net::post( websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->drc_handler_.handleDRCCategories(req)); }); break; - case WebSocketRequest::DRC_MARKERS: + case WebSocketRequest::kDrcMarkers: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( self->drc_handler_.handleDRCMarkers(req, self->state_)); }); break; - case WebSocketRequest::DRC_LOAD_REPORT: + case WebSocketRequest::kDrcLoadReport: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->drc_handler_.handleDRCLoadReport( req, self->state_)); }); break; - case WebSocketRequest::DRC_UPDATE_MARKER: + case WebSocketRequest::kDrcUpdateMarker: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response(self->drc_handler_.handleDRCUpdateMarker( req, self->state_)); }); break; - case WebSocketRequest::DRC_UPDATE_CATEGORY_VISIBILITY: + case WebSocketRequest::kDrcUpdateCategoryVisibility: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( @@ -690,7 +690,7 @@ void WebSocketSession::on_read(beast::error_code ec) req, self->state_)); }); break; - case WebSocketRequest::DRC_HIGHLIGHT: + case WebSocketRequest::kDrcHighlight: net::post(websocket_.get_executor(), [self = std::move(self), req = std::move(req)]() { self->queue_response( @@ -765,7 +765,7 @@ class HttpSession : public std::enable_shared_from_this utl::Logger* logger_; public: - HttpSession(tcp::socket&& socket, + HttpSession(Tcp::socket&& socket, std::shared_ptr generator, std::string doc_root, utl::Logger* logger); @@ -783,7 +783,7 @@ class HttpSession : public std::enable_shared_from_this void do_close(); }; -HttpSession::HttpSession(tcp::socket&& socket, +HttpSession::HttpSession(Tcp::socket&& socket, std::shared_ptr generator, std::string doc_root, utl::Logger* logger) @@ -862,7 +862,7 @@ void HttpSession::on_write(beast::error_code ec) void HttpSession::do_close() { beast::error_code ec; - stream_.socket().shutdown(tcp::socket::shutdown_send, ec); + stream_.socket().shutdown(Tcp::socket::shutdown_send, ec); } //------------------------------------------------------------------------------ @@ -882,7 +882,7 @@ class DetectSession : public std::enable_shared_from_this utl::Logger* logger_; public: - DetectSession(tcp::socket&& socket, + DetectSession(Tcp::socket&& socket, std::shared_ptr generator, std::shared_ptr tcl_eval, std::shared_ptr timing_report, @@ -896,7 +896,7 @@ class DetectSession : public std::enable_shared_from_this void on_read(beast::error_code ec); }; -DetectSession::DetectSession(tcp::socket&& socket, +DetectSession::DetectSession(Tcp::socket&& socket, std::shared_ptr generator, std::shared_ptr tcl_eval, std::shared_ptr timing_report, @@ -957,7 +957,7 @@ void DetectSession::on_read(beast::error_code ec) class Listener : public std::enable_shared_from_this { net::io_context& ioc_; - tcp::acceptor acceptor_; + Tcp::acceptor acceptor_; std::shared_ptr generator_; std::shared_ptr tcl_eval_; std::shared_ptr timing_report_; @@ -967,7 +967,7 @@ class Listener : public std::enable_shared_from_this public: Listener(net::io_context& ioc, - const tcp::endpoint& endpoint, + const Tcp::endpoint& endpoint, std::shared_ptr generator, std::shared_ptr tcl_eval, std::shared_ptr timing_report, @@ -979,11 +979,11 @@ class Listener : public std::enable_shared_from_this private: void do_accept(); - void on_accept(beast::error_code ec, tcp::socket socket); + void on_accept(beast::error_code ec, Tcp::socket socket); }; Listener::Listener(net::io_context& ioc, - const tcp::endpoint& endpoint, + const Tcp::endpoint& endpoint, std::shared_ptr generator, std::shared_ptr tcl_eval, std::shared_ptr timing_report, @@ -1028,12 +1028,12 @@ void Listener::do_accept() { acceptor_.async_accept( ioc_, - [self = shared_from_this()](beast::error_code ec, tcp::socket socket) { + [self = shared_from_this()](beast::error_code ec, Tcp::socket socket) { self->on_accept(ec, std::move(socket)); }); } -void Listener::on_accept(beast::error_code ec, tcp::socket socket) +void Listener::on_accept(beast::error_code ec, Tcp::socket socket) { if (ec) { debugPrint(logger_, utl::WEB, "http", 1, "accept error: {}", ec.message()); @@ -1164,8 +1164,8 @@ void WebServer::saveReport(const std::string& filename, // Pick z so the design fits in a typical panel (~500px). // In Leaflet CRS.Simple, the design spans 256 units = 256*2^z pixels. // z=1 → 512px, a good fit for most panel sizes. - constexpr int z = 1; - const int num_tiles = 1 << z; + constexpr int kZ = 1; + const int num_tiles = 1 << kZ; TileVisibility vis; // A 256x256 fully-transparent RGBA PNG is exactly 102 bytes with lodepng. @@ -1185,9 +1185,9 @@ void WebServer::saveReport(const std::string& filename, for (const auto& layer : all_layers) { for (int ty = 0; ty < num_tiles; ++ty) { for (int tx = 0; tx < num_tiles; ++tx) { - auto png = generator_->generateTile(layer, z, tx, ty, vis); + auto png = generator_->generateTile(layer, kZ, tx, ty, vis); if (png.size() > kEmptyPngSize) { - std::string key = layer + "/" + std::to_string(z) + "/" + std::string key = layer + "/" + std::to_string(kZ) + "/" + std::to_string(tx) + "/" + std::to_string(ty); tile_entries.emplace_back(std::move(key), base64Encode(png)); } @@ -1196,17 +1196,17 @@ void WebServer::saveReport(const std::string& filename, } logger_->info( - utl::WEB, 33, "Cached {} tiles at zoom {}.", tile_entries.size(), z); + utl::WEB, 33, "Cached {} tiles at zoom {}.", tile_entries.size(), kZ); // ── Render per-path overlay images ── - auto renderPathOverlays = [&](const std::vector& paths) { + auto render_path_overlays = [&](const std::vector& paths) { std::vector overlays; for (const auto& path : paths) { std::vector rects; std::vector lines; collectTimingPathShapes(block, path, rects, lines); - const int overlay_px = 256 * (1 << z); + const int overlay_px = 256 * (1 << kZ); auto png = generator_->renderOverlayPng(overlay_px, rects, lines); if (png.size() > kEmptyPngSize) { overlays.push_back(base64Encode(png)); @@ -1216,8 +1216,8 @@ void WebServer::saveReport(const std::string& filename, } return overlays; }; - const auto setup_overlays = renderPathOverlays(setup_paths); - const auto hold_overlays = renderPathOverlays(hold_paths); + const auto setup_overlays = render_path_overlays(setup_paths); + const auto hold_overlays = render_path_overlays(hold_paths); logger_->info(utl::WEB, 34, @@ -1256,7 +1256,7 @@ void WebServer::saveReport(const std::string& filename,