You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/05/13 06:48:26 UTC

svn commit: r169938 - in /directory/network: branches/api_integration/src/java/org/apache/mina/filter/codec/ trunk/src/java/org/apache/mina/protocol/codec/

Author: trustin
Date: Thu May 12 21:48:26 2005
New Revision: 169938

URL: http://svn.apache.org/viewcvs?rev=169938&view=rev
Log:
Resolved: DIRMINA-37


Added:
    directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoderFactory.java   (with props)
    directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoderFactory.java   (with props)
    directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoderFactory.java   (with props)
    directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoderFactory.java   (with props)
Modified:
    directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java
    directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoder.java
    directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoder.java
    directory/network/trunk/src/java/org/apache/mina/protocol/codec/DemuxingProtocolCodecFactory.java
    directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoder.java
    directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoder.java

Modified: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java?rev=169938&r1=169937&r2=169938&view=diff
==============================================================================
--- directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java (original)
+++ directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java Thu May 12 21:48:26 2005
@@ -18,8 +18,8 @@
  */
 package org.apache.mina.filter.codec;
 
-import java.util.HashMap;
 import java.util.HashSet;
+import java.util.IdentityHashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
@@ -43,12 +43,8 @@
  */
 public class DemuxingProtocolCodecFactory implements ProtocolCodecFactory {
 
-    private MessageDecoder[] decoders = new MessageDecoder[0];
-    private final Map encoders = new HashMap();
-    
-    private final ProtocolEncoder protocolEncoder = new ProtocolEncoderImpl();
-
-    private final ProtocolDecoder protocolDecoder = new ProtocolDecoderImpl();
+    private MessageDecoderFactory[] decoderFactories = new MessageDecoderFactory[0];
+    private MessageEncoderFactory[] encoderFactories = new MessageEncoderFactory[0];
     
     public DemuxingProtocolCodecFactory()
     {
@@ -56,37 +52,67 @@
     
     public void register( MessageEncoder encoder )
     {
-        Iterator it = encoder.getMessageTypes().iterator();
-        while( it.hasNext() )
+        register( new SingletonMessageEncoderFactory( encoder ) );
+    }
+    
+    public void register( MessageEncoderFactory factory )
+    {
+        if( factory == null )
         {
-            Class type = (Class) it.next();
-            encoders.put( type, encoder );
+            throw new NullPointerException( "factory" );
         }
+        MessageEncoderFactory[] encoderFactories = this.encoderFactories;
+        MessageEncoderFactory[] newEncoderFactories = new MessageEncoderFactory[ encoderFactories.length + 1 ];
+        System.arraycopy( encoderFactories, 0, newEncoderFactories, 0, encoderFactories.length );
+        newEncoderFactories[ encoderFactories.length ] = factory;
+        this.encoderFactories = newEncoderFactories;
     }
     
-    public void register( MessageDecoder decoder )
+    public void register( final MessageDecoder decoder )
     {
-        if( decoder == null )
+        register( new SingletonMessageDecoderFactory( decoder ) );
+    }
+    
+    public void register( MessageDecoderFactory factory )
+    {
+        if( factory == null )
         {
-            throw new NullPointerException( "decoder" );
+            throw new NullPointerException( "factory" );
         }
-        MessageDecoder[] decoders = this.decoders;
-        MessageDecoder[] newDecoders = new MessageDecoder[ decoders.length + 1 ];
-        System.arraycopy( decoders, 0, newDecoders, 0, decoders.length );
-        newDecoders[ decoders.length ] = decoder;
-        this.decoders = newDecoders;
+        MessageDecoderFactory[] decoderFactories = this.decoderFactories;
+        MessageDecoderFactory[] newDecoderFactories = new MessageDecoderFactory[ decoderFactories.length + 1 ];
+        System.arraycopy( decoderFactories, 0, newDecoderFactories, 0, decoderFactories.length );
+        newDecoderFactories[ decoderFactories.length ] = factory;
+        this.decoderFactories = newDecoderFactories;
     }
     
     public ProtocolEncoder newEncoder() {
-        return protocolEncoder;
+        return new ProtocolEncoderImpl();
     }
 
     public ProtocolDecoder newDecoder() {
-        return protocolDecoder;
+        return new ProtocolDecoderImpl();
     }
     
     private class ProtocolEncoderImpl implements ProtocolEncoder
     {
+        private final Map encoders = new IdentityHashMap();
+        
+        private ProtocolEncoderImpl()
+        {
+            MessageEncoderFactory[] encoderFactories = DemuxingProtocolCodecFactory.this.encoderFactories;
+            for( int i = encoderFactories.length - 1; i >= 0; i-- )
+            {
+                MessageEncoder encoder = encoderFactories[ i ].newEncoder();
+                Iterator it = encoder.getMessageTypes().iterator();
+                while( it.hasNext() )
+                {
+                    Class type = ( Class ) it.next();
+                    encoders.put( type, encoder );
+                }
+            }
+        }
+        
         public void encode( IoSession session, Object message,
                             ProtocolEncoderOutput out ) throws ProtocolViolationException
         {
@@ -143,11 +169,19 @@
     
     private class ProtocolDecoderImpl extends CumulativeProtocolDecoder
     {
+        private final MessageDecoder[] decoders;
         private MessageDecoder currentDecoder;
 
         protected ProtocolDecoderImpl()
         {
             super( 16 );
+            
+            MessageDecoderFactory[] decoderFactories = DemuxingProtocolCodecFactory.this.decoderFactories;
+            decoders = new MessageDecoder[ decoderFactories.length ];
+            for( int i = decoderFactories.length - 1; i >= 0; i-- )
+            {
+                decoders[ i ] = decoderFactories[ i ].newDecoder();
+            }
         }
 
         protected boolean doDecode( IoSession session, ByteBuffer in,
@@ -155,7 +189,7 @@
         {
             if( currentDecoder == null )
             {
-                MessageDecoder[] decoders = DemuxingProtocolCodecFactory.this.decoders;
+                MessageDecoder[] decoders = this.decoders;
                 int undecodables = 0;
                 for( int i = decoders.length - 1; i >= 0; i -- ) 
                 {
@@ -214,6 +248,44 @@
             {
                 throw new IllegalStateException( "Unexpected decode result (see your decode()): " + result );
             }
+        }
+    }
+    
+    private static class SingletonMessageEncoderFactory implements MessageEncoderFactory
+    {
+        private final MessageEncoder encoder;
+        
+        private SingletonMessageEncoderFactory( MessageEncoder encoder )
+        {
+            if( encoder == null )
+            {
+                throw new NullPointerException( "encoder" );
+            }
+            this.encoder = encoder;
+        }
+
+        public MessageEncoder newEncoder()
+        {
+            return encoder;
+        }
+    }
+
+    private static class SingletonMessageDecoderFactory implements MessageDecoderFactory
+    {
+        private final MessageDecoder decoder;
+        
+        private SingletonMessageDecoderFactory( MessageDecoder decoder )
+        {
+            if( decoder == null )
+            {
+                throw new NullPointerException( "decoder" );
+            }
+            this.decoder = decoder;
+        }
+
+        public MessageDecoder newDecoder()
+        {
+            return decoder;
         }
     }
 }

Modified: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoder.java?rev=169938&r1=169937&r2=169938&view=diff
==============================================================================
--- directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoder.java (original)
+++ directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoder.java Thu May 12 21:48:26 2005
@@ -29,6 +29,7 @@
  * @version $Rev$, $Date$
  * 
  * @see DemuxingProtocolCodecFactory
+ * @see MessageDecoderFactory
  */
 public interface MessageDecoder {
     /**

Added: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoderFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoderFactory.java?rev=169938&view=auto
==============================================================================
--- directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoderFactory.java (added)
+++ directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoderFactory.java Thu May 12 21:48:26 2005
@@ -0,0 +1,36 @@
+/*
+ *   @(#) $Id$
+ *
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.mina.filter.codec;
+
+/**
+ * A factory that creates a new instance of {@link MessageDecoder}.
+ * 
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ * 
+ * @see DemuxingProtocolCodecFactory
+ */
+public interface MessageDecoderFactory
+{
+    /**
+     * Creates a new message decoder.
+     */
+    MessageDecoder newDecoder();
+}

Propchange: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageDecoderFactory.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision

Modified: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoder.java?rev=169938&r1=169937&r2=169938&view=diff
==============================================================================
--- directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoder.java (original)
+++ directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoder.java Thu May 12 21:48:26 2005
@@ -28,6 +28,7 @@
  * @version $Rev$, $Date$
  * 
  * @see DemuxingProtocolCodecFactory
+ * @see MessageEncoderFactory
  */
 public interface MessageEncoder extends ProtocolEncoder
 {  

Added: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoderFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoderFactory.java?rev=169938&view=auto
==============================================================================
--- directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoderFactory.java (added)
+++ directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoderFactory.java Thu May 12 21:48:26 2005
@@ -0,0 +1,36 @@
+/*
+ *   @(#) $Id$
+ *
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.mina.filter.codec;
+
+/**
+ * A factory that creates a new instance of {@link MessageEncoder}.
+ * 
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ * 
+ * @see DemuxingProtocolCodecFactory
+ */
+public interface MessageEncoderFactory
+{
+    /**
+     * Creates a new message encoder.
+     */
+    MessageEncoder newEncoder();
+}

Propchange: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/MessageEncoderFactory.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision

Modified: directory/network/trunk/src/java/org/apache/mina/protocol/codec/DemuxingProtocolCodecFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/protocol/codec/DemuxingProtocolCodecFactory.java?rev=169938&r1=169937&r2=169938&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/protocol/codec/DemuxingProtocolCodecFactory.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/protocol/codec/DemuxingProtocolCodecFactory.java Thu May 12 21:48:26 2005
@@ -18,8 +18,8 @@
  */
 package org.apache.mina.protocol.codec;
 
-import java.util.HashMap;
 import java.util.HashSet;
+import java.util.IdentityHashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
@@ -49,12 +49,8 @@
  */
 public class DemuxingProtocolCodecFactory implements ProtocolCodecFactory {
 
-    private MessageDecoder[] decoders = new MessageDecoder[0];
-    private final Map encoders = new HashMap();
-    
-    private final ProtocolEncoder protocolEncoder = new ProtocolEncoderImpl();
-
-    private final ProtocolDecoder protocolDecoder = new ProtocolDecoderImpl();
+    private MessageDecoderFactory[] decoderFactories = new MessageDecoderFactory[0];
+    private MessageEncoderFactory[] encoderFactories = new MessageEncoderFactory[0];
     
     public DemuxingProtocolCodecFactory()
     {
@@ -62,37 +58,67 @@
     
     public void register( MessageEncoder encoder )
     {
-        Iterator it = encoder.getMessageTypes().iterator();
-        while( it.hasNext() )
+        register( new SingletonMessageEncoderFactory( encoder ) );
+    }
+    
+    public void register( MessageEncoderFactory factory )
+    {
+        if( factory == null )
         {
-            Class type = (Class) it.next();
-            encoders.put( type, encoder );
+            throw new NullPointerException( "factory" );
         }
+        MessageEncoderFactory[] encoderFactories = this.encoderFactories;
+        MessageEncoderFactory[] newEncoderFactories = new MessageEncoderFactory[ encoderFactories.length + 1 ];
+        System.arraycopy( encoderFactories, 0, newEncoderFactories, 0, encoderFactories.length );
+        newEncoderFactories[ encoderFactories.length ] = factory;
+        this.encoderFactories = newEncoderFactories;
     }
     
-    public void register( MessageDecoder decoder )
+    public void register( final MessageDecoder decoder )
     {
-        if( decoder == null )
+        register( new SingletonMessageDecoderFactory( decoder ) );
+    }
+    
+    public void register( MessageDecoderFactory factory )
+    {
+        if( factory == null )
         {
-            throw new NullPointerException( "decoder" );
+            throw new NullPointerException( "factory" );
         }
-        MessageDecoder[] decoders = this.decoders;
-        MessageDecoder[] newDecoders = new MessageDecoder[ decoders.length + 1 ];
-        System.arraycopy( decoders, 0, newDecoders, 0, decoders.length );
-        newDecoders[ decoders.length ] = decoder;
-        this.decoders = newDecoders;
+        MessageDecoderFactory[] decoderFactories = this.decoderFactories;
+        MessageDecoderFactory[] newDecoderFactories = new MessageDecoderFactory[ decoderFactories.length + 1 ];
+        System.arraycopy( decoderFactories, 0, newDecoderFactories, 0, decoderFactories.length );
+        newDecoderFactories[ decoderFactories.length ] = factory;
+        this.decoderFactories = newDecoderFactories;
     }
     
     public ProtocolEncoder newEncoder() {
-        return protocolEncoder;
+        return new ProtocolEncoderImpl();
     }
 
     public ProtocolDecoder newDecoder() {
-        return protocolDecoder;
+        return new ProtocolDecoderImpl();
     }
     
     private class ProtocolEncoderImpl implements ProtocolEncoder
     {
+        private final Map encoders = new IdentityHashMap();
+        
+        private ProtocolEncoderImpl()
+        {
+            MessageEncoderFactory[] encoderFactories = DemuxingProtocolCodecFactory.this.encoderFactories;
+            for( int i = encoderFactories.length - 1; i >= 0; i-- )
+            {
+                MessageEncoder encoder = encoderFactories[ i ].newEncoder();
+                Iterator it = encoder.getMessageTypes().iterator();
+                while( it.hasNext() )
+                {
+                    Class type = ( Class ) it.next();
+                    encoders.put( type, encoder );
+                }
+            }
+        }
+        
         public void encode( ProtocolSession session, Object message,
                             ProtocolEncoderOutput out ) throws ProtocolViolationException
         {
@@ -149,11 +175,19 @@
     
     private class ProtocolDecoderImpl extends CumulativeProtocolDecoder
     {
+        private final MessageDecoder[] decoders;
         private MessageDecoder currentDecoder;
 
         protected ProtocolDecoderImpl()
         {
             super( 16 );
+            
+            MessageDecoderFactory[] decoderFactories = DemuxingProtocolCodecFactory.this.decoderFactories;
+            decoders = new MessageDecoder[ decoderFactories.length ];
+            for( int i = decoderFactories.length - 1; i >= 0; i-- )
+            {
+                decoders[ i ] = decoderFactories[ i ].newDecoder();
+            }
         }
 
         protected boolean doDecode( ProtocolSession session, ByteBuffer in,
@@ -161,7 +195,7 @@
         {
             if( currentDecoder == null )
             {
-                MessageDecoder[] decoders = DemuxingProtocolCodecFactory.this.decoders;
+                MessageDecoder[] decoders = this.decoders;
                 int undecodables = 0;
                 for( int i = decoders.length - 1; i >= 0; i -- ) 
                 {
@@ -220,6 +254,44 @@
             {
                 throw new IllegalStateException( "Unexpected decode result (see your decode()): " + result );
             }
+        }
+    }
+    
+    private static class SingletonMessageEncoderFactory implements MessageEncoderFactory
+    {
+        private final MessageEncoder encoder;
+        
+        private SingletonMessageEncoderFactory( MessageEncoder encoder )
+        {
+            if( encoder == null )
+            {
+                throw new NullPointerException( "encoder" );
+            }
+            this.encoder = encoder;
+        }
+
+        public MessageEncoder newEncoder()
+        {
+            return encoder;
+        }
+    }
+
+    private static class SingletonMessageDecoderFactory implements MessageDecoderFactory
+    {
+        private final MessageDecoder decoder;
+        
+        private SingletonMessageDecoderFactory( MessageDecoder decoder )
+        {
+            if( decoder == null )
+            {
+                throw new NullPointerException( "decoder" );
+            }
+            this.decoder = decoder;
+        }
+
+        public MessageDecoder newDecoder()
+        {
+            return decoder;
         }
     }
 }

Modified: directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoder.java?rev=169938&r1=169937&r2=169938&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoder.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoder.java Thu May 12 21:48:26 2005
@@ -31,6 +31,7 @@
  * @version $Rev$, $Date$
  * 
  * @see DemuxingProtocolCodecFactory
+ * @see MessageDecoderFactory
  */
 public interface MessageDecoder {
     /**

Added: directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoderFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoderFactory.java?rev=169938&view=auto
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoderFactory.java (added)
+++ directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoderFactory.java Thu May 12 21:48:26 2005
@@ -0,0 +1,36 @@
+/*
+ *   @(#) $Id$
+ *
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.mina.protocol.codec;
+
+/**
+ * A factory that creates a new instance of {@link MessageDecoder}.
+ * 
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ * 
+ * @see DemuxingProtocolCodecFactory
+ */
+public interface MessageDecoderFactory
+{
+    /**
+     * Creates a new message decoder.
+     */
+    MessageDecoder newDecoder();
+}

Propchange: directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageDecoderFactory.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision

Modified: directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoder.java?rev=169938&r1=169937&r2=169938&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoder.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoder.java Thu May 12 21:48:26 2005
@@ -30,6 +30,7 @@
  * @version $Rev$, $Date$
  * 
  * @see DemuxingProtocolCodecFactory
+ * @see MessageEncoderFactory
  */
 public interface MessageEncoder extends ProtocolEncoder
 {  

Added: directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoderFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoderFactory.java?rev=169938&view=auto
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoderFactory.java (added)
+++ directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoderFactory.java Thu May 12 21:48:26 2005
@@ -0,0 +1,36 @@
+/*
+ *   @(#) $Id$
+ *
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.mina.protocol.codec;
+
+/**
+ * A factory that creates a new instance of {@link MessageEncoder}.
+ * 
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ * 
+ * @see DemuxingProtocolCodecFactory
+ */
+public interface MessageEncoderFactory
+{
+    /**
+     * Creates a new message encoder.
+     */
+    MessageEncoder newEncoder();
+}

Propchange: directory/network/trunk/src/java/org/apache/mina/protocol/codec/MessageEncoderFactory.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision