Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > ff187cb994c94c614ecc64c5a8528b1b > files > 4993

qt-doc-4.8.5-10.fc18.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qcopchannel_qws.cpp -->
  <title>Qt 4.8: QCopChannel Class Reference</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->

<script src="scripts/superfish.js" type="text/javascript"></script>
<script src="scripts/narrow.js" type="text/javascript"></script>

</head>
<body class="" onload="CheckEmptyAndLoadList();">
 <div class="header" id="qtdocheader">
    <div class="content"> 
    <div id="nav-logo">
      <a href="index.html">Home</a></div>
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
    <div id="narrowsearch"></div>
    <div id="nav-topright">
      <ul>
        <li class="nav-topright-home"><a href="http://qt.digia.com/">Qt HOME</a></li>
        <li class="nav-topright-dev"><a href="http://qt-project.org/">DEV</a></li>
        <li class="nav-topright-doc nav-topright-doc-active"><a href="http://qt-project.org/doc/">
          DOC</a></li>
        <li class="nav-topright-blog"><a href="http://blog.qt.digia.com/">BLOG</a></li>
      </ul>
    </div>
    <div id="shortCut">
      <ul>
        <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.8</a></span></li>
        <li class="shortCut-topleft-active"><a href="http://qt-project.org/doc/">ALL VERSIONS        </a></li>
      </ul>
     </div>
 <ul class="sf-menu" id="narrowmenu"> 
             <li><a href="#">API Lookup</a> 
                 <ul> 
                     <li><a href="classes.html">Class index</a></li> 
           <li><a href="functions.html">Function index</a></li> 
           <li><a href="modules.html">Modules</a></li> 
           <li><a href="namespaces.html">Namespaces</a></li> 
           <li><a href="qtglobal.html">Global Declarations</a></li> 
           <li><a href="qdeclarativeelements.html">QML elements</a></li> 
             </ul> 
             </li> 
             <li><a href="#">Qt Topics</a> 
                 <ul> 
                        <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>  
                        <li><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>  
                        <li><a href="qt-gui-concepts.html">UI Design with Qt</a></li>  
                        <li><a href="supported-platforms.html">Supported Platforms</a></li>  
                        <li><a href="technology-apis.html">Qt and Key Technologies</a></li>  
                        <li><a href="best-practices.html">How-To's and Best Practices</a></li>  
              </ul> 
                 </li> 
                 <li><a href="#">Examples</a> 
                     <ul> 
                       <li><a href="all-examples.html">Examples</a></li> 
                       <li><a href="tutorials.html">Tutorials</a></li> 
                       <li><a href="demos.html">Demos</a></li> 
                       <li><a href="qdeclarativeexamples.html">QML Examples</a></li> 
                </ul> 
                     </li> 
                 </ul> 
    </div>
  </div>
  <div class="wrapper">
    <div class="hd">
      <span></span>
    </div>
    <div class="bd group">
      <div class="sidebar">
        <div class="searchlabel">
          Search index:</div>
        <div class="search" id="sidebarsearch">
          <form id="qtdocsearch" action="" onsubmit="return false;">
            <fieldset>
              <input type="text" name="searchstring" id="pageType" value="" />
 <div id="resultdialog"> 
 <a href="#" id="resultclose">Close</a> 
 <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p> 
 <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p> 
 <ul id="resultlist" class="all"> 
 </ul> 
 </div> 
            </fieldset>
          </form>
        </div>
        <div class="box first bottombar" id="lookup">
          <h2 title="API Lookup"><span></span>
            API Lookup</h2>
          <div  id="list001" class="list">
          <ul id="ul001" >
              <li class="defaultLink"><a href="classes.html">Class index</a></li>
              <li class="defaultLink"><a href="functions.html">Function index</a></li>
              <li class="defaultLink"><a href="modules.html">Modules</a></li>
              <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
              <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
              <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
            </ul> 
          </div>
        </div>
        <div class="box bottombar" id="topics">
          <h2 title="Qt Topics"><span></span>
            Qt Topics</h2>
          <div id="list002" class="list">
            <ul id="ul002" >
               <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li> 
               <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li> 
               <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li> 
               <li class="defaultLink"><a href="supported-platforms.html">Supported Platforms</a></li>  
               <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li> 
               <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li> 
            </ul>  
          </div>
        </div>
        <div class="box" id="examples">
          <h2 title="Examples"><span></span>
            Examples</h2>
          <div id="list003" class="list">
        <ul id="ul003">
              <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
              <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
              <li class="defaultLink"><a href="demos.html">Demos</a></li>
              <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
            </ul> 
          </div>
        </div>
      </div>
      <div class="wrap">
        <div class="toolbar">
          <div class="breadcrumb toolblock">
            <ul>
              <li class="first"><a href="index.html">Home</a></li>
              <!--  Breadcrumbs go here -->
<li><a href="modules.html">Modules</a></li>
<li><a href="qtgui.html">QtGui</a></li>
<li>QCopChannel</li>
            </ul>
          </div>
          <div class="toolbuttons toolblock">
            <ul>
              <li id="smallA" class="t_button">A</li>
              <li id="medA" class="t_button active">A</li>
              <li id="bigA" class="t_button">A</li>
              <li id="print" class="t_button"><a href="javascript:this.print();">
                <span>Print</span></a></li>
            </ul>
        </div>
        </div>
        <div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#signals">Signals</a></li>
<li class="level1"><a href="#static-public-members">Static Public Members</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<h1 class="title">QCopChannel Class Reference</h1>
<!-- $$$QCopChannel-brief -->
<p>The QCopChannel class provides communication capabilities between clients in <a href="qt-embedded-linux.html">Qt for Embedded Linux</a>. <a href="#details">More...</a></p>
<!-- @@@QCopChannel -->
<pre class="cpp"> <span class="preprocessor">#include &lt;QCopChannel&gt;</span></pre><p><b>Inherits: </b><a href="qobject.html">QObject</a>.</p>
<ul>
<li><a href="qcopchannel-members.html">List of all members, including inherited members</a></li>
<li><a href="qcopchannel-qt3.html">Qt 3 support members</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#QCopChannel">QCopChannel</a></b> ( const QString &amp; <i>channel</i>, QObject * <i>parent</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#dtor.QCopChannel">~QCopChannel</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QString </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#channel">channel</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#receive">receive</a></b> ( const QString &amp; <i>message</i>, const QByteArray &amp; <i>data</i> )</td></tr>
</table>
<ul>
<li class="fn">29 public functions inherited from <a href="qobject.html#public-functions">QObject</a></li>
</ul>
<a name="signals"></a>
<h2>Signals</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#received">received</a></b> ( const QString &amp; <i>message</i>, const QByteArray &amp; <i>data</i> )</td></tr>
</table>
<ul>
<li class="fn">1 signal inherited from <a href="qobject.html#signals">QObject</a></li>
</ul>
<a name="static-public-members"></a>
<h2>Static Public Members</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#flush">flush</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#isRegistered">isRegistered</a></b> ( const QString &amp; <i>channel</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#send">send</a></b> ( const QString &amp; <i>channel</i>, const QString &amp; <i>message</i>, const QByteArray &amp; <i>data</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qcopchannel.html#send-2">send</a></b> ( const QString &amp; <i>channel</i>, const QString &amp; <i>message</i> )</td></tr>
</table>
<ul>
<li class="fn">7 static public members inherited from <a href="qobject.html#static-public-members">QObject</a></li>
</ul>
<h3>Additional Inherited Members</h3>
<ul>
<li class="fn">1 property inherited from <a href="qobject.html#properties">QObject</a></li>
<li class="fn">1 public slot inherited from <a href="qobject.html#public-slots">QObject</a></li>
<li class="fn">8 protected functions inherited from <a href="qobject.html#protected-functions">QObject</a></li>
</ul>
<a name="details"></a>
<!-- $$$QCopChannel-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QCopChannel class provides communication capabilities between clients in <a href="qt-embedded-linux.html">Qt for Embedded Linux</a>.</p>
<p>Note that this class is only available in <a href="qt-embedded-linux.html">Qt for Embedded Linux</a>.</p>
<p>The Qt COmmunication Protocol (QCOP) is a many-to-many protocol for transferring messages across registered channels. A channel is registered by name, and anyone who wants to can listen to the channel as well as send messages through it. The QCOP protocol allows clients to communicate both within the same address space and between different processes.</p>
<p>To send messages to a given channel, QCopChannel provides the static <a href="qcopchannel.html#send">send</a>() function. Using this function alone, the messages are queued until Qt re-enters the event loop. To immediately flush all queued messages to the registered listeners, call the static <a href="qcopchannel.html#flush">flush</a>() function.</p>
<p>To listen to the traffic on a given channel, you typically instantiate a QCopChannel object for the given channel and connect to its <a href="qcopchannel.html#received">received</a>() signal that is emitted whenever there is incoming data. Use the static <a href="qcopchannel.html#isRegistered">isRegistered</a>() function to query the server for the existence of a given channel. QCopChannel provides the <a href="qcopchannel.html#channel">channel</a>() function returning the name of this QCopChannel object's channel.</p>
<p>In additon, QCopChannel provides the virtual <a href="qcopchannel.html#receive">receive</a>() function that can be reimplemented to filter the incoming messages and data. The default implementation simply emits the <a href="qcopchannel.html#received">received</a>() signal.</p>
</div>
<p><b>See also </b><a href="qwsserver.html">QWSServer</a>, <a href="qwsclient.html">QWSClient</a>, and <a href="qt-embedded-architecture.html">Qt for Embedded Linux Architecture</a>.</p>
<!-- @@@QCopChannel -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QCopChannel[overload1]$$$QCopChannelconstQString&QObject* -->
<h3 class="fn"><a name="QCopChannel"></a>QCopChannel::<span class="name">QCopChannel</span> ( const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>channel</i>, <span class="type"><a href="qobject.html">QObject</a></span> * <i>parent</i> = 0 )</h3>
<p>Constructs a <a href="qcopchannel.html">QCopChannel</a> object for the specified <i>channel</i>, with the given <i>parent</i>. Once created, the channel is registered by the server.</p>
<p><b>See also </b><a href="qcopchannel.html#isRegistered">isRegistered</a>() and <a href="qcopchannel.html#channel">channel</a>().</p>
<!-- @@@QCopChannel -->
<!-- $$$~QCopChannel[overload1]$$$~QCopChannel -->
<h3 class="fn"><a name="dtor.QCopChannel"></a>QCopChannel::<span class="name">~QCopChannel</span> ()<tt> [virtual]</tt></h3>
<p>Destroys this <a href="qcopchannel.html">QCopChannel</a> object.</p>
<p>The server is notified that this particular listener has closed its connection. The server will keep the channel open until the last registered listener detaches.</p>
<p><b>See also </b><a href="qcopchannel.html#isRegistered">isRegistered</a>() and <a href="qcopchannel.html#channel">channel</a>().</p>
<!-- @@@~QCopChannel -->
<!-- $$$channel[overload1]$$$channel -->
<h3 class="fn"><a name="channel"></a><span class="type"><a href="qstring.html">QString</a></span> QCopChannel::<span class="name">channel</span> () const</h3>
<p>Returns the name of this object's channel.</p>
<p><b>See also </b><a href="qcopchannel.html#isRegistered">isRegistered</a>().</p>
<!-- @@@channel -->
<!-- $$$flush[overload1]$$$flush -->
<h3 class="fn"><a name="flush"></a><span class="type">bool</span> QCopChannel::<span class="name">flush</span> ()<tt> [static]</tt></h3>
<p>Flushes all queued messages to the registered listeners.</p>
<p>Note that this function returns false if no <a href="qapplication.html">QApplication</a> has been constructed, otherwise it returns true.</p>
<p>This function was introduced in Qt 4.2.</p>
<p><b>See also </b><a href="qcopchannel.html#send">send</a>().</p>
<!-- @@@flush -->
<!-- $$$isRegistered[overload1]$$$isRegisteredconstQString& -->
<h3 class="fn"><a name="isRegistered"></a><span class="type">bool</span> QCopChannel::<span class="name">isRegistered</span> ( const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>channel</i> )<tt> [static]</tt></h3>
<p>Queries the server for the existence of the given <i>channel</i>. Returns true if the channel is registered; otherwise returns false.</p>
<p><b>See also </b><a href="qcopchannel.html#channel">channel</a>() and <a href="qcopchannel.html#send">send</a>().</p>
<!-- @@@isRegistered -->
<!-- $$$receive[overload1]$$$receiveconstQString&constQByteArray& -->
<h3 class="fn"><a name="receive"></a><span class="type">void</span> QCopChannel::<span class="name">receive</span> ( const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>message</i>, const <span class="type"><a href="qbytearray.html">QByteArray</a></span> &amp; <i>data</i> )<tt> [virtual]</tt></h3>
<p>Processes the incoming <i>message</i> and <i>data</i>.</p>
<p>This function is called by the server when this object's channel receives new messages. Note that the default implementation simply emits the <a href="qcopchannel.html#received">received</a>() signal; reimplement this function to process the incoming <i>message</i> and <i>data</i>.</p>
<p>Note that the format of the given <i>data</i> has to be well defined in order to extract the information it contains. In addition, it is recommended to use the DCOP convention. This is not a requirement, but you must ensure that the sender and receiver agree on the argument types. For example:</p>
<pre class="cpp"> <span class="type">void</span> MyClass<span class="operator">::</span>receive(<span class="keyword">const</span> <span class="type"><a href="qstring.html">QString</a></span> <span class="operator">&amp;</span>message<span class="operator">,</span> <span class="keyword">const</span> <span class="type"><a href="qbytearray.html">QByteArray</a></span> <span class="operator">&amp;</span>data)
 {
     <span class="type"><a href="qdatastream.html">QDataStream</a></span> in(data);
     <span class="keyword">if</span> (message <span class="operator">=</span><span class="operator">=</span> <span class="string">&quot;execute(QString,QString)&quot;</span>) {
         <span class="type"><a href="qstring.html">QString</a></span> cmd;
         <span class="type"><a href="qstring.html">QString</a></span> arg;
         in <span class="operator">&gt;</span><span class="operator">&gt;</span> cmd <span class="operator">&gt;</span><span class="operator">&gt;</span> arg;
         <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
     } <span class="keyword">else</span> <span class="keyword">if</span> (message <span class="operator">=</span><span class="operator">=</span> <span class="string">&quot;delete(QString)&quot;</span>) {
         <span class="type"><a href="qstring.html">QString</a></span> fileName;
         in <span class="operator">&gt;</span><span class="operator">&gt;</span> fileName;
         <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
     } <span class="keyword">else</span> {
         <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
     }
 }</pre>
<p>The above code assumes that the <tt>message</tt> is a DCOP-style function signature and the <tt>data</tt> contains the function's arguments.</p>
<p><b>See also </b><a href="qcopchannel.html#send">send</a>(), <a href="qcopchannel.html#channel">channel</a>(), and <a href="qcopchannel.html#received">received</a>().</p>
<!-- @@@receive -->
<!-- $$$received[overload1]$$$receivedconstQString&constQByteArray& -->
<h3 class="fn"><a name="received"></a><span class="type">void</span> QCopChannel::<span class="name">received</span> ( const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>message</i>, const <span class="type"><a href="qbytearray.html">QByteArray</a></span> &amp; <i>data</i> )<tt> [signal]</tt></h3>
<p>This signal is emitted whenever this object's channel receives new messages (i.e&#x2e;, it is emitted by the <a href="qcopchannel.html#receive">receive</a>() function), passing the incoming <i>message</i> and <i>data</i> as parameters.</p>
<p><b>See also </b><a href="qcopchannel.html#receive">receive</a>() and <a href="qcopchannel.html#channel">channel</a>().</p>
<!-- @@@received -->
<!-- $$$send[overload1]$$$sendconstQString&constQString&constQByteArray& -->
<h3 class="fn"><a name="send"></a><span class="type">bool</span> QCopChannel::<span class="name">send</span> ( const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>channel</i>, const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>message</i>, const <span class="type"><a href="qbytearray.html">QByteArray</a></span> &amp; <i>data</i> )<tt> [static]</tt></h3>
<p>Sends the given <i>message</i> on the specified <i>channel</i> with the given <i>data</i>. The message will be distributed to all clients subscribed to the channel. Returns true if the message is sent successfully; otherwise returns false.</p>
<p>It is recommended to use the DCOP convention. This is not a requirement, but you must ensure that the sender and receiver agree on the argument types.</p>
<p>Note that <a href="qdatastream.html">QDataStream</a> provides a convenient way to fill the byte array with auxiliary data. For example:</p>
<pre class="cpp"> <span class="type"><a href="qbytearray.html">QByteArray</a></span> data;
 <span class="type"><a href="qdatastream.html">QDataStream</a></span> out(<span class="operator">&amp;</span>data<span class="operator">,</span> <span class="type"><a href="qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
 out <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="type"><a href="qstring.html">QString</a></span>(<span class="string">&quot;cat&quot;</span>) <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="type"><a href="qstring.html">QString</a></span>(<span class="string">&quot;file.txt&quot;</span>);
 <span class="type"><a href="qcopchannel.html">QCopChannel</a></span><span class="operator">::</span>send(<span class="string">&quot;System/Shell&quot;</span><span class="operator">,</span> <span class="string">&quot;execute(QString,QString)&quot;</span><span class="operator">,</span> data);</pre>
<p>In the code above the channel is <tt>&quot;System/Shell&quot;</tt>. The <tt>message</tt> is an arbitrary string, but in the example we've used the DCOP convention of passing a function signature. Such a signature is formatted as <tt>&quot;functionname(types)&quot;</tt> where <tt>types</tt> is a list of zero or more comma-separated type names, with no whitespace, no consts and no pointer or reference marks, i.e&#x2e; no &quot;*&quot; or &quot;&amp;&quot;.</p>
<p><b>See also </b><a href="qcopchannel.html#receive">receive</a>() and <a href="qcopchannel.html#isRegistered">isRegistered</a>().</p>
<!-- @@@send -->
<!-- $$$send$$$sendconstQString&constQString& -->
<h3 class="fn"><a name="send-2"></a><span class="type">bool</span> QCopChannel::<span class="name">send</span> ( const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>channel</i>, const <span class="type"><a href="qstring.html">QString</a></span> &amp; <i>message</i> )<tt> [static]</tt></h3>
<p>This is an overloaded function.</p>
<!-- @@@send -->
</div>
      </div>
    </div>
    </div> 
    <div class="ft">
      <span></span>
    </div>
  </div> 
  <div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2013 Digia Plc and/or its
      subsidiaries. Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Digia, Qt and their respective logos are trademarks of Digia Plc 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
  </div>

  <script src="scripts/functions.js" type="text/javascript"></script>
</body>
</html>