utilityclass.dot 1.73 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
digraph {
	rankdir=LR
	compound=true
	fontname="Inconsolata, Consolas"
	fontsize=10
	margin="0,0"
	ranksep=0.3
	nodesep=0.15
	penwidth=0.5
	colorscheme=spectral7
	
	node [shape=box, fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5, style=filled, fillcolor=white]
	edge [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]

	subgraph cluster0 {
		style=filled
		fillcolor=4

		Encoding [label="<<concept>>\nEncoding"]

		edge [arrowtail=onormal, dir=back]
		Encoding -> { UTF8; UTF16; UTF32; ASCII; AutoUTF }
		UTF16 -> { UTF16LE; UTF16BE }
		UTF32 -> { UTF32LE; UTF32BE }
	}

	subgraph cluster1 {
		style=filled
		fillcolor=5

		Stream [label="<<concept>>\nStream"]
		InputByteStream [label="<<concept>>\nInputByteStream"]
		OutputByteStream [label="<<concept>>\nOutputByteStream"]

		edge [arrowtail=onormal, dir=back]
		Stream -> { 
			StringStream; InsituStringStream; StringBuffer; 
			EncodedInputStream; EncodedOutputStream; 
			AutoUTFInputStream; AutoUTFOutputStream 
			InputByteStream; OutputByteStream
		}

		InputByteStream ->	{ MemoryStream; FlieReadStream }
		OutputByteStream -> { MemoryBuffer; FileWriteStream } 
	}

	subgraph cluster2 {
		style=filled
		fillcolor=3

		Allocator [label="<<concept>>\nAllocator"]

		edge [arrowtail=onormal, dir=back]
		Allocator -> { CrtAllocator; MemoryPoolAllocator }
	}

	{
		edge [arrowtail=odiamond, arrowhead=vee, dir=both]
		EncodedInputStream -> InputByteStream
		EncodedOutputStream -> OutputByteStream
		AutoUTFInputStream -> InputByteStream
		AutoUTFOutputStream -> OutputByteStream
		MemoryPoolAllocator -> Allocator [label="base", tailport=s]
	}

	{
		edge [arrowhead=vee, style=dashed]
		AutoUTFInputStream -> AutoUTF
		AutoUTFOutputStream -> AutoUTF
	}

	//UTF32LE -> Stream [style=invis]
}