root/doc/latex/classTypedUserInfo.tex @ 187

Revision 172, 8.9 kB (checked in by smidl, 16 years ago)

Latex doc

Line 
1\hypertarget{classTypedUserInfo}{
2\section{TypedUserInfo$<$ T $>$ Class Template Reference}
3\label{classTypedUserInfo}\index{TypedUserInfo@{TypedUserInfo}}
4}
5TypeUserInfo is still an abstract class, but contrary to the \hyperlink{classUserInfo}{UserInfo} class it is already templated. It serves as a bridge to non-abstract classes CompoundUserInfo$<$T$>$ or ValuedUserInfo$<$T$>$
6
7
8{\tt \#include $<$userinfo.h$>$}
9
10Inheritance diagram for TypedUserInfo$<$ T $>$:\nopagebreak
11\begin{figure}[H]
12\begin{center}
13\leavevmode
14\includegraphics[width=400pt]{classTypedUserInfo__inherit__graph}
15\end{center}
16\end{figure}
17Collaboration diagram for TypedUserInfo$<$ T $>$:\nopagebreak
18\begin{figure}[H]
19\begin{center}
20\leavevmode
21\includegraphics[width=137pt]{classTypedUserInfo__coll__graph}
22\end{center}
23\end{figure}
24\subsection*{Static Public Member Functions}
25\begin{CompactItemize}
26\item 
27{\footnotesize template$<$class T$>$ }\\static T $\ast$ \hyperlink{classUserInfo_0f090c6525a3e8fb11634a553f467ede}{Assembly} (DOMElement \&element, const string tagName)
28\item 
29{\footnotesize template$<$class T$>$ }\\static bool \hyperlink{classUserInfo_1d402661b82feccb5265a70f65c242e1}{Disassembly} (T \&\hyperlink{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{instance}, DOMElement \&element, const string tagName, const string help)
30\item 
31{\footnotesize template$<$class T$>$ }\\static bool \hyperlink{classUserInfo_917b2257abc31b94c89ef3cd270e4a42}{Disassembly} (T \&\hyperlink{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{instance}, DOMElement \&element, const string tagName)
32\end{CompactItemize}
33\subsection*{Protected Member Functions}
34\begin{CompactItemize}
35\item 
36\hypertarget{classTypedUserInfo_f4fe0532c1cdee3d6e00d96561efbdd5}{
37\hyperlink{classTypedUserInfo_f4fe0532c1cdee3d6e00d96561efbdd5}{TypedUserInfo} (const string \&userFriendlyTypeName)}
38\label{classTypedUserInfo_f4fe0532c1cdee3d6e00d96561efbdd5}
39
40\begin{CompactList}\small\item\em default constructor, which is intentionally declared as protected \item\end{CompactList}\item 
41\hypertarget{classTypedUserInfo_b1bb67b76a677f0cf33e923fd9147e9a}{
42\hyperlink{classTypedUserInfo_b1bb67b76a677f0cf33e923fd9147e9a}{$\sim$TypedUserInfo} ()}
43\label{classTypedUserInfo_b1bb67b76a677f0cf33e923fd9147e9a}
44
45\begin{CompactList}\small\item\em destructor \item\end{CompactList}\item 
46\hypertarget{classBindingFrame_2244bd5181c3d1e70f3a6be2b72e9424}{
47string \hyperlink{classBindingFrame_2244bd5181c3d1e70f3a6be2b72e9424}{XMLCh2str} (const XMLCh $\ast$const XMLCh\_\-str)}
48\label{classBindingFrame_2244bd5181c3d1e70f3a6be2b72e9424}
49
50\begin{CompactList}\small\item\em function which transcodes Xerces' XMLCh-based strings into C++ strings \item\end{CompactList}\item 
51\hypertarget{classBindingFrame_820e4df85c0dc545e3079e407fcdbbaa}{
52string \textbf{removeSpaces} (const string \&\hyperlink{classstr}{str})}
53\label{classBindingFrame_820e4df85c0dc545e3079e407fcdbbaa}
54
55\item 
56\hypertarget{classBindingFrame_c6d068c261d4fc3a0a4d1305ade1483d}{
57virtual void \hyperlink{classBindingFrame_c6d068c261d4fc3a0a4d1305ade1483d}{AssemblyComponentsFromXML} (DOMElement \&element)=0}
58\label{classBindingFrame_c6d068c261d4fc3a0a4d1305ade1483d}
59
60\begin{CompactList}\small\item\em This method parse DOMElement, finds proper DOMNode and fills binded data accordingly. \item\end{CompactList}\item 
61\hypertarget{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}{
62virtual void \hyperlink{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}{ReleaseMemory} ()}
63\label{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}
64
65\begin{CompactList}\small\item\em A method for releasing memory allocated within the 'AssemblyComponentsFromXML()' method. \item\end{CompactList}\item 
66virtual bool \hyperlink{classBindingFrame_0c207ed6e5a4c975ed5bc9a758a063ca}{DisassemblyComponentsToXML} (DOMElement \&element)=0
67\end{CompactItemize}
68\subsection*{Static Protected Attributes}
69\begin{CompactItemize}
70\item 
71static const \hyperlink{classTypedUserInfo}{TypedUserInfo}$<$ T $>$ \& \hyperlink{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{instance}
72\end{CompactItemize}
73
74
75\subsection{Detailed Description}
76\subsubsection*{template$<$typename T$>$ class TypedUserInfo$<$ T $>$}
77
78TypeUserInfo is still an abstract class, but contrary to the \hyperlink{classUserInfo}{UserInfo} class it is already templated. It serves as a bridge to non-abstract classes CompoundUserInfo$<$T$>$ or ValuedUserInfo$<$T$>$.
79
80There are two important features of this class. The first is a primitive mechanism bounding typeless methods DisassemblyTypelessInstance, resp. AssemblyTypelessInstance, to their typed virtual versions DisassemblyInstance, resp. AssemblyInstance. And the other is the only public attribute of this class, called 'instance', which is to be filled by the only instance of this class. Indeed, it is not possible to create any other instance outside this class (or its descendant classes), as the constructor is intentionally protected.
81
82\subsection{Member Function Documentation}
83\hypertarget{classUserInfo_0f090c6525a3e8fb11634a553f467ede}{
84\index{TypedUserInfo@{TypedUserInfo}!Assembly@{Assembly}}
85\index{Assembly@{Assembly}!TypedUserInfo@{TypedUserInfo}}
86\subsubsection[Assembly]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ static T$\ast$ UserInfo::Assembly (DOMElement \& {\em element}, \/  const string {\em tagName})\hspace{0.3cm}{\tt  \mbox{[}inline, static, inherited\mbox{]}}}}
87\label{classUserInfo_0f090c6525a3e8fb11634a553f467ede}
88
89
90This methods tries to assembly a new instance of type T (or some of its descendant types) according to a data stored in a DOMNode named tagName within a child nodes of the passed element. If an error occurs, it returns a NULL pointer.
91
92References Attribute::Get(), and Attribute::type.\hypertarget{classUserInfo_1d402661b82feccb5265a70f65c242e1}{
93\index{TypedUserInfo@{TypedUserInfo}!Disassembly@{Disassembly}}
94\index{Disassembly@{Disassembly}!TypedUserInfo@{TypedUserInfo}}
95\subsubsection[Disassembly]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ static bool UserInfo::Disassembly (T \& {\em instance}, \/  DOMElement \& {\em element}, \/  const string {\em tagName}, \/  const string {\em help})\hspace{0.3cm}{\tt  \mbox{[}inline, static, inherited\mbox{]}}}}
96\label{classUserInfo_1d402661b82feccb5265a70f65c242e1}
97
98
99This methods tries to disassembly an instance of type T (or some of its descendant types) and build DOM tree accordingly. Then, it creates a new DOMNode named according tagName and connecti it to the passed DOMElement as a new child node (with a help attribute filled).
100
101References Attribute::help, Attribute::Set(), and Attribute::type.
102
103Referenced by UserInfo::Disassembly(), and CompoundUserInfo$<$ T $>$::BindedElement$<$ U $>$::DisassemblyComponentsToXML().\hypertarget{classUserInfo_917b2257abc31b94c89ef3cd270e4a42}{
104\index{TypedUserInfo@{TypedUserInfo}!Disassembly@{Disassembly}}
105\index{Disassembly@{Disassembly}!TypedUserInfo@{TypedUserInfo}}
106\subsubsection[Disassembly]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ static bool UserInfo::Disassembly (T \& {\em instance}, \/  DOMElement \& {\em element}, \/  const string {\em tagName})\hspace{0.3cm}{\tt  \mbox{[}inline, static, inherited\mbox{]}}}}
107\label{classUserInfo_917b2257abc31b94c89ef3cd270e4a42}
108
109
110This methods tries to disassembly an instance of type T (or some of its descendant types) and build DOM tree accordingly. Then, it creates a new DOMNode named according tagName and connecti it to the passed DOMElement as a new child node.
111
112References UserInfo::Disassembly().\hypertarget{classBindingFrame_0c207ed6e5a4c975ed5bc9a758a063ca}{
113\index{TypedUserInfo@{TypedUserInfo}!DisassemblyComponentsToXML@{DisassemblyComponentsToXML}}
114\index{DisassemblyComponentsToXML@{DisassemblyComponentsToXML}!TypedUserInfo@{TypedUserInfo}}
115\subsubsection[DisassemblyComponentsToXML]{\setlength{\rightskip}{0pt plus 5cm}virtual bool BindingFrame::DisassemblyComponentsToXML (DOMElement \& {\em element})\hspace{0.3cm}{\tt  \mbox{[}pure virtual, inherited\mbox{]}}}}
116\label{classBindingFrame_0c207ed6e5a4c975ed5bc9a758a063ca}
117
118
119This method reads binded data, fill them into a new DOMNode, which then appends to the passed DOMElement
120
121Implemented in \hyperlink{classCompoundUserInfo_1_1BindedElement_6ef55cedb98f5d2dbcf92730f2fed939}{CompoundUserInfo$<$ T $>$::BindedElement$<$ U $>$}.
122
123\subsection{Member Data Documentation}
124\hypertarget{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{
125\index{TypedUserInfo@{TypedUserInfo}!instance@{instance}}
126\index{instance@{instance}!TypedUserInfo@{TypedUserInfo}}
127\subsubsection[instance]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ const {\bf TypedUserInfo}$<$T$>$\& {\bf TypedUserInfo}$<$ T $>$::{\bf instance}\hspace{0.3cm}{\tt  \mbox{[}static, protected\mbox{]}}}}
128\label{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}
129
130
131the only instance of this class (each type T has its own instance) which is used as a factory for processing related userinfos
132
133The documentation for this class was generated from the following file:\begin{CompactItemize}
134\item 
135work/git/mixpp/bdm/userinfo.h\end{CompactItemize}
Note: See TracBrowser for help on using the browser.