<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>MessageEncoder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/protocol/codec/MessageEncoder.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: MessageEncoder.java 169938 2005-05-13 04:48:26Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="comment"> *       <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/protocol/codec/package-summary.html">org.apache.mina.protocol.codec</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.util.Set;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolEncoder;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <em>/**<em>*</em></em>
<a name="26" href="#26">26</a>  <em> * Encodes messages of specific types specified by {@link #getMessageTypes()}.</em>
<a name="27" href="#27">27</a>  <em> * </em>
<a name="28" href="#28">28</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="29" href="#29">29</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="30" href="#30">30</a>  <em> * @version $Rev: 169938 $, $Date: 2005-05-13 13:48:26 +0900 (?, 13  5? 2005) $</em>
<a name="31" href="#31">31</a>  <em> * </em>
<a name="32" href="#32">32</a>  <em> * @see DemuxingProtocolCodecFactory</em>
<a name="33" href="#33">33</a>  <em> * @see MessageEncoderFactory</em>
<a name="34" href="#34">34</a>  <em> */</em>
<a name="35" href="#35">35</a>  <strong>public</strong> <strong>interface</strong> <a href="../../../../../org/apache/mina/protocol/codec/MessageEncoder.html">MessageEncoder</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolEncoder.html">ProtocolEncoder</a>
<a name="36" href="#36">36</a>  {  
<a name="37" href="#37">37</a>      <em>/**<em>*</em></em>
<a name="38" href="#38">38</a>  <em>     * Returns the set of message classes this encoder can encode.</em>
<a name="39" href="#39">39</a>  <em>     */</em>
<a name="40" href="#40">40</a>      Set getMessageTypes();
<a name="41" href="#41">41</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

