Server.Network.PacketWriter.ReleaseInstance C# (CSharp) Méthode

ReleaseInstance() public static méthode

public static ReleaseInstance ( PacketWriter pw ) : void
pw PacketWriter
Résultat void
		public static void ReleaseInstance( PacketWriter pw )
		{
			lock ( m_Pool )
			{
				if ( !m_Pool.Contains( pw ) )
				{
					m_Pool.Push( pw );
				}
				else
				{
					try
					{
						using ( StreamWriter op = new StreamWriter( "neterr.log" ) )
						{
							op.WriteLine( "{0}\tInstance pool contains writer", DateTime.Now );
						}
					}
					catch
					{
						Console.WriteLine( "net error" );
					}
				}
			}
		}

Usage Example

Exemple #1
0
        private void InternalCompile(bool compress)
        {
            if (m_Length == 0)
            {
                long streamLen = m_Stream.Length;

                m_Stream.Seek(1, SeekOrigin.Begin);
                m_Stream.Write((ushort)streamLen);
            }
            else if (m_Stream.Length != m_Length)
            {
                int diff = (int)m_Stream.Length - m_Length;

                Console.WriteLine("Packet: 0x{0:X2}: Bad packet length! ({1}{2} bytes)", m_PacketID, diff >= 0 ? "+" : "", diff);
            }

            MemoryStream ms = m_Stream.UnderlyingStream;

            m_CompiledBuffer = ms.GetBuffer();
            int length = (int)ms.Length;

            if (compress)
            {
                try
                {
                    Compression.Compress(m_CompiledBuffer, length, out m_CompiledBuffer, out length);
                }
                catch (IndexOutOfRangeException)
                {
                    Console.WriteLine("Warning: Compression buffer overflowed on packet 0x{0:X2} ('{1}') (length={2})", m_PacketID, GetType().Name, length);

                    m_CompiledBuffer = null;
                }
            }

            if (m_CompiledBuffer != null)
            {
                m_CompiledLength = length;

                byte[] old = m_CompiledBuffer;

                if (length > BufferSize || (m_State & State.Static) != 0)
                {
                    m_CompiledBuffer = new byte[length];
                }
                else
                {
                    m_CompiledBuffer = m_Buffers.AcquireBuffer();
                    m_State         |= State.Buffered;
                }

                Buffer.BlockCopy(old, 0, m_CompiledBuffer, 0, length);
            }

            PacketWriter.ReleaseInstance(m_Stream);
            m_Stream = null;
        }
All Usage Examples Of Server.Network.PacketWriter::ReleaseInstance