| /* A simplified state diagram for HttpSM with API callout points */ | |
| /* */ | |
| digraph g { | |
| center=1; | |
| size = "7.5,10"; | |
| fontsize="20"; | |
| label = "Inktomi CONFIDENTIAL"; | |
| orientation = "portrait"; | |
| "ACCEPT" [ label = "Accept" ]; | |
| "RD_REQ_HDRS" [ label = "Read Req Headers" ]; | |
| "DNS" [ label = "DNS" ]; | |
| "C_LOOKUP" [ label = "Cache Lookup" ]; | |
| "CACHE_LOCK" [ label = "Lock URL in Cache" ]; | |
| "PICK_ADDR" [ label = "Pick Address" ]; | |
| "CACHE_MATCH" [ label = "Cache Match" ]; | |
| "CACHE_FRESH" [ label = "Cache Fresh" ]; | |
| "SND_REQ_HDRS" [ label = "Send Req Headers" ]; | |
| "SETUP_C_READ" [ label = "Setup Cache Read" ]; | |
| "SND_C_HDRS" [ label = "Send Cached Headers" ]; | |
| "CONNECT" [ label = "Try Connect" ]; | |
| "SND_REQ_HDRS" [ label = "Send Req Headers" ]; | |
| "RD_REP_HDRS" [ label = "Read Reply Headers" ]; | |
| "VALID" [ label = "Check Valid" ]; | |
| "SETUP_S_READ" [ label = "Setup Server Read" ]; | |
| "SETUP_CACHE_WRITE" [ label = "Setup Cache Write" ]; | |
| "SETUP_TRANS" [ label = "Setup Transform" ]; | |
| "SETUP_REQ_TRANS" [ label = "Setup Request Transform" ]; | |
| "SETUP_BODY_READ" [ label = "Setup POST/PUT Read" ]; | |
| "TUNNEL" [ label = "Tunnel Response" ]; | |
| "TUNNEL_REQ" [ label = "Tunnel Request Body" ]; | |
| "SND_REP_HDRS" [ label = "Send Reply Headers" ]; | |
| "API_START" [ label = "API - Start" shape=box ]; | |
| "API_RD_REQ_HDRS" [ label = "API - Read Req Headers" shape=box ]; | |
| "API_DNS" [ label = "API - DNS" shape=box ]; | |
| "API_CACHE_MATCH" [ label = "API - Cache Match" shape=box ]; | |
| "API_CACHE_READ_HDR" [ label = "API - Cache Read Header" shape=box ]; | |
| "API_SND_REQ_HDRS" [ label = "API - Send Req Headers" shape=box ]; | |
| "API_RD_REP_HDRS" [ label = "API - Read Reply Headers" shape=box ]; | |
| "API_SND_REP_HDRS" [ label = "API - Send Reply Headers" shape=box ]; | |
| "API_SHUTDOWN" [ label = "API - Shutdown" shape=box ]; | |
| "ACCEPT" -> "API_START"; | |
| "API_START" -> "RD_REQ_HDRS"; | |
| "RD_REQ_HDRS" -> "API_RD_REQ_HDRS"; | |
| "API_RD_REQ_HDRS" -> "DNS"; | |
| "DNS" -> "API_DNS"; | |
| "API_DNS" -> "C_LOOKUP"; | |
| "C_LOOKUP" -> "API_CACHE_MATCH" [ label = "hit" ]; | |
| "C_LOOKUP" -> "CACHE_LOCK" [ label = "miss" ]; | |
| "CACHE_LOCK" -> "PICK_ADDR"; | |
| "API_CACHE_MATCH" -> "CACHE_MATCH"; | |
| "CACHE_MATCH" -> "CACHE_LOCK" [ label = "no match" ]; | |
| "CACHE_MATCH" -> "API_CACHE_READ_HDR" [ label ="match" ]; | |
| "API_CACHE_READ_HDR" -> "CACHE_FRESH"; | |
| "CACHE_FRESH" -> "SND_C_HDRS" [ label ="fresh" ]; | |
| "CACHE_FRESH" -> "CACHE_LOCK" [ label ="stale" ]; | |
| "SND_C_HDRS" -> "SETUP_C_READ"; | |
| "SETUP_C_READ" -> "SETUP_TRANS"; | |
| "PICK_ADDR" -> "CONNECT"; | |
| "CONNECT" -> "PICK_ADDR" [ label = "fail" ]; | |
| "CONNECT" -> "API_SND_REQ_HDRS" [ label = "success" ]; | |
| "API_SND_REQ_HDRS" -> "SND_REQ_HDRS"; | |
| "SND_REQ_HDRS" -> "SETUP_BODY_READ" [label = "POST/PUT" ]; | |
| "SETUP_BODY_READ" -> "SETUP_REQ_TRANS"; | |
| "SETUP_REQ_TRANS" -> "TUNNEL_REQ"; | |
| "TUNNEL_REQ" -> "RD_REP_HDRS"; | |
| "SND_REQ_HDRS" -> "RD_REP_HDRS" [label = "GET" ]; | |
| "RD_REP_HDRS" -> "API_RD_REP_HDRS" | |
| "API_RD_REP_HDRS" -> "VALID"; | |
| "VALID" -> "PICK_ADDR" [ label = "no" ]; | |
| "VALID" -> "SETUP_S_READ" [ label = "yes" ]; | |
| "SETUP_S_READ" -> "SETUP_TRANS" [ label = "Uncachable" ]; | |
| "SETUP_S_READ" -> "SETUP_CACHE_WRITE" [ label = "Cacheable" ]; | |
| "SETUP_CACHE_WRITE" -> "SETUP_TRANS"; | |
| "SETUP_TRANS" -> "API_SND_REP_HDRS"; | |
| "API_SND_REP_HDRS" -> "SND_REP_HDRS"; | |
| "SND_REP_HDRS" -> "TUNNEL"; | |
| "TUNNEL" -> "API_SHUTDOWN" | |
| "API_SHUTDOWN" -> "ACCEPT"; | |
| } | |