Ejemplo n.º 1
0
 public override bool SetParameter(StreamParameterOptions option, object value)
 {
     if (option == StreamParameterOptions.ReadTimeout)
     {
         int timeout = Convert.ObjectToInteger(value);
         socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout);
         socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout);
         return(true);
     }
     return(base.SetParameter(option, value));
 }
Ejemplo n.º 2
0
 public override bool SetParameter(StreamParameterOptions option, PhpValue value)
 {
     if (option == StreamParameterOptions.ReadTimeout)
     {
         int timeout = (int)(value.ToDouble() * 1000.0);
         Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout);
         Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout);
         return(true);
     }
     return(base.SetParameter(option, value));
 }
Ejemplo n.º 3
0
        public override bool SetParameter(StreamParameterOptions option, PhpValue value)
        {
            switch (option)
            {
            case StreamParameterOptions.ReadTimeout:
                // value is in seconds
                var timeout = (int)(value.ToDouble() * 1000.0);     // milliseconds
                Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout);
                Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout);
                return(true);

            case StreamParameterOptions.BlockingMode:
                // value is boolean indicating whether blocking should be enabled
                Socket.Blocking = (bool)value;
                return(true);
            }

            //
            return(base.SetParameter(option, value));
        }
Ejemplo n.º 4
0
		public override bool SetParameter(StreamParameterOptions option, object value)
		{
			if (option == StreamParameterOptions.ReadTimeout)
			{
                int timeout = (int)(Convert.ObjectToDouble(value) * 1000.0);
				socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout);
				socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout);
				return true;
			}
			return base.SetParameter(option, value);
		}
Ejemplo n.º 5
0
        public virtual bool SetParameter(StreamParameterOptions option, PhpValue value)
        {
            // Do not display error messages here, the caller will.
            // EX: will have to distinguish between failed and unsupported.
            // (use additional message when fails)

            // Descendants may call this default implementation for unhandled options
            switch (option)
            {
                case StreamParameterOptions.BlockingMode:
                    // Unimplemented in Win32 PHP.
                    return false;

                case StreamParameterOptions.ReadBufferSize:
                    // Unused option (only turns buffering off)
                    return false;

                case StreamParameterOptions.WriteBufferSize:
                    if (value.IsInteger())
                    {
                        // Let the write buffer reset on next write operation.
                        FlushWriteBuffer();
                        writeBuffer = null;
                        // Set the new size (0 to disable write buffering).
                        writeBufferSize = (int)value.ToLong();
                        if (writeBufferSize < 0) writeBufferSize = 0;
                        return true;
                    }
                    return false;

                case StreamParameterOptions.ReadTimeout:
                    // Set the read timeout for network-based streams (overrides DefaultTimeout).
                    this.readTimeout = (double)value;
                    return false;

                case StreamParameterOptions.SetChunkSize:
                    if (value.IsInteger())
                    {
                        // This setting will affect reading after the buffers are emptied.
                        readChunkSize = (int)value.ToLong();
                        if (readChunkSize < 1) readChunkSize = 1;
                        return true;
                    }
                    return false;

                case StreamParameterOptions.Locking:
                    return false;

                case StreamParameterOptions.MemoryMap:
                    return false;

                case StreamParameterOptions.Truncate:
                    // EX: [Truncate] Override SetParameter in NativeStream to truncate a local file.
                    return false;

                default:
                    Debug.Assert(false); // invalid option
                    return false;
            }
        }