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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Using the reading context</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Linux Trace Toolkit Viewer Developer Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="How to use the Linux Trace Toolkit Viewer's Reading Context"
HREF="c40.html"><LINK
REL="PREVIOUS"
TITLE="Why an event driven trace reader ?"
HREF="x46.html"><LINK
REL="NEXT"
TITLE="Linux Trace Toolkit Viewer Graphical Module Tutorial"
HREF="c67.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux Trace Toolkit Viewer Developer Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x46.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. How to use the Linux Trace Toolkit Viewer's Reading Context</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="c67.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN50"
>2.3. Using the reading context</A
></H1
><P
> If you have read the tutorials about writing a text and a graphic module, you
should be fairly ready to use the information provided to your hook by the
reading API.
</P
><P
> The data structures of the reading context are based on the gobject, a
object-oriented library from the glib. Some evolved types that are found in the
context also comes from the "glib" (GArray, GHashTable and so on). For detailed
information about "gobjects" and the "glib", see the <A
HREF="http://www.gtk.org"
TARGET="_top"
>www.gtk.org</A
> website. They provide a complete
API reference about the data types they provide.
</P
><P
> The reading context is object oriented. It is described by the lttv/tracecontext.h
header. Is can be illustrated with this UML class diagram :
</P
><P
> <DIV
CLASS="mediaobject"
><P
><IMG
SRC="lttv-context.png"
ALIGN="center"><DIV
CLASS="caption"
><P
>Linux Trace Toolkit Viewer Reading Context Class Diagram</P
></DIV
></P
></DIV
>
</P
><P
> Though, for performance's sake, navigating through it is not as encapsulated as
it could. Consider the class attributes to be all public (no get/set functions).
Sometimes, iteration upon a specific element can be uneasy. For example, you may
have to get the number of tracefiles in a trace from the "vt" field of the trace
context to be able to iterate over all the tracefiles contained by the trace.
</P
><P
> To facilitate the common operations on the reading context, LTTV now provides a
header that consists of simple macros : lttv/contextmacros.h. It gives an object
look-and-feel to the context classes. Simple "GET" macros can be used to easily
access the different fields are iterate over the elements (and get the total
number of elements too).
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x46.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="c67.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Why an event driven trace reader ?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="c40.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Linux Trace Toolkit Viewer Graphical Module Tutorial</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
|