{"action":"opened","issue":{"url":"https://api.github.com/repos/catapult-project/catapult/issues/833","labels_url":"https://api.github.com/repos/catapult-project/catapult/issues/833/labels{/name}","comments_url":"https://api.github.com/repos/catapult-project/catapult/issues/833/comments","events_url":"https://api.github.com/repos/catapult-project/catapult/issues/833/events","html_url":"https://github.com/catapult-project/catapult/issues/833","id":98630718,"number":833,"title":"Add classes for internal memory representation.","user":{"login":"catapult-bot","id":13457154,"avatar_url":"https://avatars.githubusercontent.com/u/13457154?v=3","gravatar_id":"","url":"https://api.github.com/users/catapult-bot","html_url":"https://github.com/catapult-bot","followers_url":"https://api.github.com/users/catapult-bot/followers","following_url":"https://api.github.com/users/catapult-bot/following{/other_user}","gists_url":"https://api.github.com/users/catapult-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/catapult-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catapult-bot/subscriptions","organizations_url":"https://api.github.com/users/catapult-bot/orgs","repos_url":"https://api.github.com/users/catapult-bot/repos","events_url":"https://api.github.com/users/catapult-bot/events{/privacy}","received_events_url":"https://api.github.com/users/catapult-bot/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-02T19:28:29Z","updated_at":"2015-08-02T19:28:29Z","closed_at":null,"body":"<a href=\"https://github.com/petrcermak\"><img src=\"https://avatars.githubusercontent.com/u/2546601?v=3\" align=\"left\" width=\"96\" height=\"96\" hspace=\"10\"></img></a> **Issue by [petrcermak](https://github.com/petrcermak)**\n_Thursday Mar 19, 2015 at 20:28 GMT_\n_Originally opened as https://github.com/google/trace-viewer/pull/833_\n\n----\n\nThis patch adds memory tree classes for *internal memory representation* (as described in https://docs.google.com/a/chromium.org/document/d/1utHiD8aio6Vt_TMGNGJL6uIbMFG-RgxXJiBbN8Bu308/edit?usp=sharing). The diagram below describes the new class hierarchy:\r\n\r\n![untitled drawing](https://cloud.githubusercontent.com/assets/2546601/6740232/5c5af3f2-ce76-11e4-864f-590cb64c71ca.png)\r\n\r\nIn a nutshell, a <tt>MemoryTree</tt> encapsulates both:\r\n\r\n* the *data* (stored in a hierarchy of <tt>MemoryTreeNode</tt> objects corresponding to *rows* in a nested table) and\r\n* its *representation* (described using <tt>MemoryTreeFieldSpecifier</tt> objects corresponding to *columns* in a nested table).\n\n----\n\n_**[petrcermak](https://github.com/petrcermak)** included the following code: https://github.com/google/trace-viewer/pull/833/commits_\n"}}