carbidesdk/com.nokia.carbide.cpp.sdk.doc.user/reference/api/com/nokia/carbide/cpp/epoc/engine/model/IView.html
author fturovic <frank.turovich@nokia.com>
Tue, 27 Jul 2010 15:28:19 -0500
changeset 1704 24ac5a5cf80c
parent 0 fb279309251b
permissions -rw-r--r--
updated copyright dates and fixed some css issues

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_15) on Tue Jan 06 17:31:53 CST 2009 -->
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>
IView (Carbide.c++ SDK API Reference)
</TITLE>

<META NAME="keywords" CONTENT="com.nokia.carbide.cpp.epoc.engine.model.IView interface">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="IView (Carbide.c++ SDK API Reference)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IView.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<b>Carbide.c++</b></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IOwnedModel.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewConfiguration.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../index.html?com/nokia/carbide/cpp/epoc/engine/model/IView.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IView.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.nokia.carbide.cpp.epoc.engine.model</FONT>
<BR>
Interface IView&lt;Model&gt;</H2>
<DL>
<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/bldinf/IBldInfView.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model.bldinf">IBldInfView</A>, <A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/makefile/image/IImageMakefileView.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model.makefile.image">IImageMakefileView</A>, <A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/makefile/IMakefileView.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model.makefile">IMakefileView</A>, <A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/mmp/IMMPView.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model.mmp">IMMPView</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>IView&lt;Model&gt;</B></DL>
</PRE>

<P>
The base interface for a filtered view onto a model.
 <p>
 It allows for transactions of changes to be applied back to the model's DOM.
 <p>
 Multiple views may hold changes at the same time (for instance, a dirty
 editor and a project change listener updating SOURCE statements).
 <p>
 The updating model follows the CVS model for handling simultaneous changes:
 <p>
 <li>Client makes changes to View A
 <li>Client makes changes to View B
 <li>Client commits View A. The #commit() call will synchronize on the IOwnedModel
 instance and apply changes, updating the DOM and document. Other existing
 views are out-of-sync (since they reference a stale filtered DOM and may hold
 changes that no longer apply). Also, due to the model’s document being
 changed, any other existing views may have unsynchronized cached source
 ranges into the document. The latter issue is not fatal – any DOM can be
 rewritten from scratch to recover the “essential” source, but obviously, we
 want to avoid this where possible.
 <li>The model notifies listeners (IModelListener#modelUpdated) that changes
 have occurred. The views themselves are always listeners and are always
 notified before client listeners.
 <li>View A ignores notification its own changes
 <li>View B, since it has changes, marks itself “out of sync”
 (#isUnsynchronized()). This disallows any commits.
 <li>Client for View A ignores listener for changes on its own view, if
 needed.
 <li>Client for View B periodically checks its synchronization state, or
 waits until it wants to commit. If out-of-sync on a commit,
 IllegalStateException is thrown. Finding it’s out of sync, the client decides
 whether to #revert() or #merge(). Usually it will #merge() to get an updated
 view combined with its current uncommitted changes. If its changes don’t
 merge cleanly, #merge() returns false. The listener may decide to show UI at
 this point. Only #revert(), a successful #merge(), or a #forceSynchronized()
 will clear the unsynchronized state and allow further writes.
 <li>Now both views are sync with the model.
<P>

<P>
<HR>

<P>

<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#addListener(com.nokia.carbide.cpp.epoc.engine.model.IViewListener)">addListener</A></B>(<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewListener.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IViewListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add listener, ignore duplicates</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#commit()">commit</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commits changes to the underlying translation unit (visible from IOwnedModel#getTranslationUnit() and IView#getFilteredTranslationUnit())
 
 When a view is committed, changes may or may not be made to the owning model's document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IPath</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#convertModelToProjectPath(IPath)">convertModelToProjectPath</A></B>(IPath&nbsp;prjPath)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert a model-relative path to an project-relative path.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IPath</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#convertProjectToModelPath(IPath)">convertProjectToModelPath</A></B>(IPath&nbsp;prjPath)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert a project-relative path to an model-relative path.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#dispose()">dispose</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispose view, removing its listeners and detaching it from model 
 and losing any changes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#forceSynchronized()">forceSynchronized</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Forces view to be marked synchronized, a last resort if #merge() 
 returns false and you don’t want to #revert().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IData.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IData</A>&lt;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IView</A>&lt;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html" title="type parameter in IView">Model</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#getData()">getData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a copy of cacheable data for the view.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IMessage[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#getMessages()">getMessages</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all messages associated with parsing the filtered TU.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html" title="type parameter in IView">Model</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#getModel()">getModel</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the model we're viewing</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IPath</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#getProjectPath()">getProjectPath</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the project root from the view configuration.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IPath[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#getReferencedFiles()">getReferencedFiles</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the array of filesystem paths for files read 
 while creating the filtered translation units</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewConfiguration.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IViewConfiguration</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#getViewConfiguration()">getViewConfiguration</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the configuration used to create the view</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#markUnsynchronized()">markUnsynchronized</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark a view out-of-sync due to changes in the model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#merge()">merge</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merges uncommitted changes with the current model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#needsSynchonize()">needsSynchonize</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tell whether the view needs to be synchronized (merged) with the model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#removeListener(com.nokia.carbide.cpp.epoc.engine.model.IViewListener)">removeListener</A></B>(<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewListener.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IViewListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove listener, ignore if not present</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#revert()">revert</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reverts changes to mirror model contents and marks the view synchronized.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#setDebug(boolean)">setDebug</A></B>(boolean&nbsp;debug)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable debugging, if supported.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getModel()"><!-- --></A><H3>
getModel</H3>
<PRE>
<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html" title="type parameter in IView">Model</A> <B>getModel</B>()</PRE>
<DL>
<DD>Get the model we're viewing
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="dispose()"><!-- --></A><H3>
dispose</H3>
<PRE>
void <B>dispose</B>()</PRE>
<DL>
<DD>Dispose view, removing its listeners and detaching it from model 
 and losing any changes.  All views must be disposed before the model
 can be disposed.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getViewConfiguration()"><!-- --></A><H3>
getViewConfiguration</H3>
<PRE>
<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewConfiguration.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IViewConfiguration</A> <B>getViewConfiguration</B>()</PRE>
<DL>
<DD>Get the configuration used to create the view
<P>
<DD><DL>

<DT><B>Returns:</B><DD>configuration (never null)</DL>
</DD>
</DL>
<HR>

<A NAME="getMessages()"><!-- --></A><H3>
getMessages</H3>
<PRE>
IMessage[] <B>getMessages</B>()</PRE>
<DL>
<DD>Get all messages associated with parsing the filtered TU.  This
 includes those from the problem nodes and additional diagnostics.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>array (never null)</DL>
</DD>
</DL>
<HR>

<A NAME="getReferencedFiles()"><!-- --></A><H3>
getReferencedFiles</H3>
<PRE>
IPath[] <B>getReferencedFiles</B>()</PRE>
<DL>
<DD>Get the array of filesystem paths for files read 
 while creating the filtered translation units
<P>
<DD><DL>

<DT><B>Returns:</B><DD>list of paths (never null)</DL>
</DD>
</DL>
<HR>

<A NAME="revert()"><!-- --></A><H3>
revert</H3>
<PRE>
void <B>revert</B>()</PRE>
<DL>
<DD>Reverts changes to mirror model contents and marks the view synchronized.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="commit()"><!-- --></A><H3>
commit</H3>
<PRE>
void <B>commit</B>()
            throws java.lang.IllegalStateException</PRE>
<DL>
<DD>Commits changes to the underlying translation unit (visible from IOwnedModel#getTranslationUnit() and IView#getFilteredTranslationUnit())
 <p>
 When a view is committed, changes may or may not be made to the owning model's document.  A
 document change event will be sent if the contents change, and that event will cause the model
 to mark any open views (except this one) unsynchronized.
 <p>
 During a commit, the contents of the view may be recreated.  Any references to objects provided
 by the view should be considered stale.
 <p>
 A commit can throw IllegalStateException if it is unsynchronized.  The code for a commit should
 be structured like this:
         <pre>
                // commit changes
                while (true) {
                        try { 
                                view.commit();
                                break;
                        } catch (IllegalStateException e) {  // happens when third party has committed in-between
                                // usually UI around this...
                                if (!view.merge()) {
                                        // worst case (could try view.forceSynchronized() too)
                                        view.revert();
                                }
                                // further failures should not occur, but loop just in case the
                                // UI above took long enough for someone else to sneak in
                        }
                }
         </pre>
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalStateException</CODE> - if out of sync<DT><B>See Also:</B><DD><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#needsSynchonize()"><CODE>needsSynchonize()</CODE></A>, 
<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#merge()"><CODE>merge()</CODE></A>, 
<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#revert()"><CODE>revert()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="markUnsynchronized()"><!-- --></A><H3>
markUnsynchronized</H3>
<PRE>
void <B>markUnsynchronized</B>()</PRE>
<DL>
<DD>Mark a view out-of-sync due to changes in the model.
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#needsSynchonize()"><CODE>needsSynchonize()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="needsSynchonize()"><!-- --></A><H3>
needsSynchonize</H3>
<PRE>
boolean <B>needsSynchonize</B>()</PRE>
<DL>
<DD>Tell whether the view needs to be synchronized (merged) with the model.
 <p>  
 A newly created view never needs synchronization, and a view 
 with changes does not necessarily need synchronization.
 <p>  
 Only when the model is changed underneath (e.g. other views commit, 
 the DOM is changed directly, or the document is changed) and 
 the view has uncommited changes and wants to commit is 
 synchronization needed.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true: view needs to be reverted or forced synchronized</DL>
</DD>
</DL>
<HR>

<A NAME="merge()"><!-- --></A><H3>
merge</H3>
<PRE>
boolean <B>merge</B>()</PRE>
<DL>
<DD>Merges uncommitted changes with the current model.  <p>
 Returns true if pending changes merge cleanly, with view 
 left in synchronized state.  
 Returns false otherwise, leaving view in a unsynchronized state, 
 possibly with partial updates.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>merge succeeded<DT><B>See Also:</B><DD><A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html#needsSynchonize()"><CODE>needsSynchonize()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="forceSynchronized()"><!-- --></A><H3>
forceSynchronized</H3>
<PRE>
void <B>forceSynchronized</B>()</PRE>
<DL>
<DD>Forces view to be marked synchronized, a last resort if #merge() 
 returns false and you don’t want to #revert().
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addListener(com.nokia.carbide.cpp.epoc.engine.model.IViewListener)"><!-- --></A><H3>
addListener</H3>
<PRE>
void <B>addListener</B>(<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewListener.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IViewListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Add listener, ignore duplicates
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="removeListener(com.nokia.carbide.cpp.epoc.engine.model.IViewListener)"><!-- --></A><H3>
removeListener</H3>
<PRE>
void <B>removeListener</B>(<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewListener.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IViewListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Remove listener, ignore if not present
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getProjectPath()"><!-- --></A><H3>
getProjectPath</H3>
<PRE>
IPath <B>getProjectPath</B>()</PRE>
<DL>
<DD>Get the project root from the view configuration.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>IPath absolute path to project root</DL>
</DD>
</DL>
<HR>

<A NAME="setDebug(boolean)"><!-- --></A><H3>
setDebug</H3>
<PRE>
void <B>setDebug</B>(boolean&nbsp;debug)</PRE>
<DL>
<DD>Enable debugging, if supported.  Dumps information to System.out.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>debug</CODE> - true to debug, false to stop</DL>
</DD>
</DL>
<HR>

<A NAME="convertProjectToModelPath(IPath)"><!-- --></A><H3>
convertProjectToModelPath</H3>
<PRE>
IPath <B>convertProjectToModelPath</B>(IPath&nbsp;prjPath)</PRE>
<DL>
<DD>Convert a project-relative path to an model-relative path.<p>
 Null or full paths returned as identity.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>prjPath</CODE> - project-relative path (or null or full path)
<DT><B>Returns:</B><DD>path adjusted to be model-relative (except for null or full path which are returned the same)</DL>
</DD>
</DL>
<HR>

<A NAME="convertModelToProjectPath(IPath)"><!-- --></A><H3>
convertModelToProjectPath</H3>
<PRE>
IPath <B>convertModelToProjectPath</B>(IPath&nbsp;prjPath)</PRE>
<DL>
<DD>Convert a model-relative path to an project-relative path.<p>
 Null or full paths returned as identity.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>modelPath</CODE> - model-relative path (or null or full path)
<DT><B>Returns:</B><DD>path adjusted to be project-relative (except for null or full path which are returned the same)</DL>
</DD>
</DL>
<HR>

<A NAME="getData()"><!-- --></A><H3>
getData</H3>
<PRE>
<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IData.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IData</A>&lt;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model">IView</A>&lt;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IView.html" title="type parameter in IView">Model</A>&gt;&gt; <B>getData</B>()</PRE>
<DL>
<DD>Get a copy of cacheable data for the view.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>instance of IData containing current data in the view, or <code>null</code> if such data cannot be created</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IView.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<b>Carbide.c++</b></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IOwnedModel.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../../com/nokia/carbide/cpp/epoc/engine/model/IViewConfiguration.html" title="interface in com.nokia.carbide.cpp.epoc.engine.model"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../index.html?com/nokia/carbide/cpp/epoc/engine/model/IView.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IView.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
<div id="footer">Copyright &copy; 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. <br>License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div>
</BODY>
</HTML>