public override void PopulateElement(JStream stream) { if (stream.Char == '"') { stream.Next(); } else { throw new Exception(string.Format("String cannot start with '{0}' character", stream.Char)); } var builder = new StringBuilder(); while (stream.Char != '"') { if (stream.Char == '\\') { builder.Append(stream.Char); stream.Next(); } builder.Append(stream.Char); stream.Next(); } value = builder.ToString(); stream.Next(); }
public void close() { try { if (ins != null && !in_dontclose) { ins.Close(); } ins = null; } catch (Exception ee) {} try { if (outs != null && !out_dontclose) { outs.Close(); } outs = null; } catch (Exception ee) {} try { if (outs_ext != null && !outs_ext_dontclose) { outs_ext.Close(); } outs_ext = null; } catch (Exception ee) {} }
public void setExtOutputStream(Stream outs) { if (outs != null) { this.outs_ext = new JStream(outs); } else { this.outs_ext = null; } }
public override void PopulateElement(JStream stream) { if (stream.GetSubString(Constants.Null.Length) == Constants.Null) { stream.NextTimes(Constants.Null.Length); } else { throw new ArgumentException("Cannot parse null value"); } }
public override void PopulateElement(JStream stream) { var builder = new StringBuilder(); while (Array.IndexOf(AvailableChars, stream.Char) >= 0) { builder.Append(stream.Char); stream.Next(); } value = double.Parse(builder.ToString(), CultureInfo.InvariantCulture); }
public override void PopulateElement(JStream stream) { var posibleValueStr = stream.Char == TrueValue[0] ? TrueValue : FalseValue; if (stream.GetSubString(posibleValueStr.Length) == posibleValueStr) { value = posibleValueStr == TrueValue; stream.NextTimes(posibleValueStr.Length); } else { throw new Exception(string.Format("Cannot parse boolean value ({0})", stream.GetSubString(20))); } }
public void setInputStream(Stream ins) { //ConsoleStream low buffer patch if (ins != null) { if (ins.GetType() == Type.GetType("System.IO.__ConsoleStream")) { ins = new Tamir.Streams.ProtectedConsoleStream(ins); } else if (ins.GetType() == Type.GetType("System.IO.FileStream")) { ins = new Tamir.Streams.ProtectedConsoleStream(ins); } this.ins = new JStream(ins); } else { this.ins = null; } }
public override void PopulateElement(JStream stream) { if (stream.Char == '[') { stream.Next(); } else { throw new Exception(string.Format("Cannot parse Array first character '{0}'", stream.Char)); } value.Clear(); var first = true; stream.SkipSpaces(); while (stream.Char != ']') { if (!first) { if (stream.Char != ',') { throw new Exception("Cannot parse array, no , (comma) found"); } stream.Next(); stream.SkipSpaces(); } var element = StringFactory.GetJElementFromJSON(stream); value.Add(element); stream.SkipSpaces(); first = false; } stream.Next(); }
public override void PopulateElement(JStream stream) { if (stream.Char == '{') { stream.Next(); } else { throw new Exception(string.Format("Cannot parse Object first character '{0}'", stream.Char)); } value.Clear(); stream.SkipSpaces(); var first = true; while (stream.Char != '}') { if (!first) { if (stream.Char != ',') { throw new Exception("Cannot parse object, no ,(comma) found"); } stream.Next(); stream.SkipSpaces(); } value.Add(ParseKeyValuePair(stream)); stream.SkipSpaces(); first = false; } stream.Next(); }
public void close() { try { if (ins != null && !in_dontclose) ins.Close(); ins = null; } catch (Exception) { } try { if (outs != null && !out_dontclose) outs.Close(); outs = null; } catch (Exception) { } try { if (outs_ext != null && !outs_ext_dontclose) outs_ext.Close(); outs_ext = null; } catch (Exception) { } }
private KeyValuePair <string, Element> ParseKeyValuePair(JStream stream) { //TODO: just temporary var stringKey = new StringElement(); stringKey.PopulateElement(stream); stream.SkipSpaces(); if (stream.Char != ':') { throw new Exception("Cannot parse object, not found :"); } stream.Next(); stream.SkipSpaces(); var key = stringKey.Value; var element = StringFactory.GetJElementFromJSON(stream); return(new KeyValuePair <string, Element>(key, element)); }
public void close() { try { if (ins != null) { ins.close(); } if (outs != null) { outs.close(); } if (socket != null) { socket.close(); } } catch (Exception) { } ins = null; outs = null; socket = null; }
public void Connect(SocketFactory socketFactory, String host, int port, int timeout) { try { if (socketFactory == null) { Socket = Util.createSocket(Host, Port, timeout); inputStream = new JStream(Socket.getInputStream()); outputStream = new JStream(Socket.getOutputStream()); } else { Socket = socketFactory.createSocket(Host, Port); inputStream = new JStream(socketFactory.getInputStream(Socket)); outputStream = new JStream(socketFactory.getOutputStream(Socket)); } if (timeout > 0) { Socket.setSoTimeout(timeout); } Socket.setTcpNoDelay(true); outputStream.Write(("CONNECT " + host + ":" + port + " HTTP/1.0\r\n").GetBytes()); if (User != null && Password != null) { byte[] _code = (User + ":" + Password).GetBytes(); _code = Util.toBase64(_code, 0, _code.Length); outputStream.Write("Proxy-Authorization: Basic ".GetBytes()); outputStream.Write(_code); outputStream.Write("\r\n".GetBytes()); } outputStream.Write("\r\n".GetBytes()); outputStream.flush(); int foo = 0; StringBuilder sb = new StringBuilder(); while (foo >= 0) { foo = inputStream.read(); if (foo != 13) { sb.Append((char)foo); continue; } foo = inputStream.read(); if (foo != 10) { continue; } break; } if (foo < 0) { throw new IOException(); } String response = sb.ToString(); String reason = "Unknow reason"; int code = -1; try { foo = response.IndexOf(' '); int bar = response.IndexOf(' ', foo + 1); code = Int32.Parse(response.Substring(foo + 1, bar)); reason = response.Substring(bar + 1); } catch (Exception) { } if (code != 200) { throw new IOException("proxy error: " + reason); } int count = 0; while (true) { count = 0; while (foo >= 0) { foo = inputStream.read(); if (foo != 13) { count++; continue; } foo = inputStream.read(); if (foo != 10) { continue; } break; } if (foo < 0) { throw new IOException(); } if (count == 0) { break; } } } catch (Exception e) { try { if (Socket != null) { Socket.Close(); } } catch (Exception) { } String message = "ProxyHTTP: " + e; throw e; } }
public void setInputStream(Stream ins) { //ConsoleStream low buffer patch if (ins != null) { if (ins.GetType() == Type.GetType("System.IO.__ConsoleStream")) { ins = new ProtectedConsoleStream(ins); } else if (ins.GetType() == Type.GetType("System.IO.FileStream")) { ins = new ProtectedConsoleStream(ins); } this.ins = new JStream(ins); } else { this.ins = null; } }
public void connect(SocketFactory socket_factory, String host, int port, int timeout) { try { if (socket_factory == null) { socket = Util.createSocket(proxy_host, proxy_port, timeout); ins = new JStream(socket.getInputStream()); outs = new JStream(socket.getOutputStream()); } else { socket = socket_factory.createSocket(proxy_host, proxy_port); ins = new JStream(socket_factory.getInputStream(socket)); outs = new JStream(socket_factory.getOutputStream(socket)); } if (timeout > 0) { socket.setSoTimeout(timeout); } socket.setTcpNoDelay(true); outs.write(new String("CONNECT " + host + ":" + port + " HTTP/1.0\r\n").getBytes()); if (user != null && passwd != null) { byte[] _code = (user + ":" + passwd).getBytes(); _code = Util.toBase64(_code, 0, _code.Length); outs.write(new String("Proxy-Authorization: Basic ").getBytes()); outs.write(_code); outs.write(new String("\r\n").getBytes()); } outs.write(new String("\r\n").getBytes()); outs.flush(); int foo = 0; var sb = new StringBuffer(); while (foo >= 0) { foo = ins.read(); if (foo != 13) { sb.append((char)foo); continue; } foo = ins.read(); if (foo != 10) { continue; } break; } if (foo < 0) { throw new IOException(); } String response = sb.toString(); String reason = "Unknow reason"; int code = -1; try { foo = response.indexOf(' '); int bar = response.indexOf(' ', foo + 1); code = Integer.parseInt(response.substring(foo + 1, bar)); reason = response.substring(bar + 1); } catch (Exception) { } if (code != 200) { throw new IOException("proxy error: " + reason); } /* * while(foo>=0){ * foo=in.read(); if(foo!=13) continue; * foo=in.read(); if(foo!=10) continue; * foo=in.read(); if(foo!=13) continue; * foo=in.read(); if(foo!=10) continue; * break; * } */ int count = 0; while (true) { count = 0; while (foo >= 0) { foo = ins.read(); if (foo != 13) { count++; continue; } foo = ins.read(); if (foo != 10) { continue; } break; } if (foo < 0) { throw new IOException(); } if (count == 0) { break; } } } catch (RuntimeException e) { throw e; } catch (Exception e) { try { if (socket != null) { socket.close(); } } catch (Exception) { } String message = "ProxyHTTP: " + e.toString(); throw e; } }
public void connect(SocketFactory socket_factory, String host, int port, int timeout) { try { if (socket_factory == null) { socket = Util.createSocket(proxy_host, proxy_port, timeout); ins = new JStream(new NetworkStream(socket)); outs = new JStream(new NetworkStream(socket)); } else { socket = socket_factory.createSocket(proxy_host, proxy_port); ins = new JStream(socket_factory.getInputStream(socket)); outs = new JStream(socket_factory.getOutputStream(socket)); } if (timeout > 0) { socket.ReceiveTimeout = timeout; socket.SendTimeout = timeout; } socket.NoDelay = true; outs.write("CONNECT " + host + ":" + port + " HTTP/1.0\r\n"); if (user != null && passwd != null) { byte[] _code = Encoding.UTF8.GetBytes(user + ":" + passwd); _code = Util.toBase64(_code, 0, _code.Length); outs.write("Proxy-Authorization: Basic "); outs.write(_code); outs.write("\r\n"); } outs.write("\r\n"); outs.flush(); int foo = 0; string sb = ""; while (foo >= 0) { foo = ins.read(); if (foo != 13) { sb += ((char)foo); continue; } foo = ins.read(); if (foo != 10) { continue; } break; } if (foo < 0) { throw new System.IO.IOException(); } String response = sb; String reason = "Unknow reason"; int code = -1; try { foo = response.IndexOf(' '); int bar = response.IndexOf(' ', foo + 1); code = System.Convert.ToInt32(response.Substring(foo + 1, bar)); reason = response.Substring(bar + 1); } catch (Exception) { } if (code != 200) { throw new System.IO.IOException("proxy error: " + reason); } /* * while(foo>=0){ * foo=in.read(); if(foo!=13) continue; * foo=in.read(); if(foo!=10) continue; * foo=in.read(); if(foo!=13) continue; * foo=in.read(); if(foo!=10) continue; * break; * } */ int count = 0; while (true) { count = 0; while (foo >= 0) { foo = ins.read(); if (foo != 13) { count++; continue; } foo = ins.read(); if (foo != 10) { continue; } break; } if (foo < 0) { throw new System.IO.IOException(); } if (count == 0) { break; } } } catch (Exception e) { try{ if (socket != null) { socket.Close(); } } catch (Exception) { } String message = "ProxyHTTP: " + e.ToString(); throw e; } }