public byte[] ToByteArray() throws IOException { byte[] Result = new byte[Size]; int Idx = 0; // . byte[] BA = TDataConverter.ConvertInt32ToLEByteArray(id); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; BA = TDataConverter.ConvertInt32ToLEByteArray(DivX); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; BA = TDataConverter.ConvertInt32ToLEByteArray(DivY); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; BA = TDataConverter.ConvertDoubleToLEByteArray(SegmentWidth); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; BA = TDataConverter.ConvertDoubleToLEByteArray(SegmentHeight); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; BA = TDataConverter.ConvertDoubleToLEByteArray(VisibleMinScale); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; BA = TDataConverter.ConvertDoubleToLEByteArray(VisibleMaxScale); System.arraycopy(BA, 0, Result, Idx, BA.length); Idx += BA.length; // . return Result; }
public byte[] ToByteArrayV1() throws IOException { ByteArrayOutputStream BOS = new ByteArrayOutputStream(1024); try { BOS.write(super.ToByteArrayV1()); // . BOS.write(N0.ToByteArray()); BOS.write(N1.ToByteArray()); BOS.write(N2.ToByteArray()); BOS.write(N3.ToByteArray()); // . byte[] BA = TDataConverter.ConvertInt32ToLEByteArray(Width); BOS.write(BA); BA = TDataConverter.ConvertInt32ToLEByteArray(Height); BOS.write(BA); // . int DataSize = 0; if (Levels != null) DataSize = Levels.length * TLevelParams.Size; BA = TDataConverter.ConvertInt32ToLEByteArray(DataSize); BOS.write(BA); if (DataSize > 0) for (int I = 0; I < Levels.length; I++) BOS.write(Levels[I].ToByteArray()); // . return BOS.toByteArray(); // . -> } finally { BOS.close(); } }
public byte[] ToByteArray() throws IOException { byte[] BA; byte[] B1A = new byte[1]; byte[] Int64Space = new byte[4]; ByteArrayOutputStream BOS = new ByteArrayOutputStream(1024); try { BA = TDataConverter.ConvertInt32ToLEByteArray(ID); BOS.write(BA); BOS.write(Int64Space); // . BA = TDataConverter.ConvertInt16ToLEByteArray(Level); BOS.write(BA); // . BA = TDataConverter.ConvertInt16ToLEByteArray(InfoComponent_Type); BOS.write(BA); // . BA = TDataConverter.ConvertInt32ToLEByteArray(InfoComponent_ID); BOS.write(BA); BOS.write(Int64Space); // . BA = TDataConverter.ConvertDoubleToLEByteArray(BindingPointX); BOS.write(BA); // . BA = TDataConverter.ConvertDoubleToLEByteArray(BindingPointY); BOS.write(BA); // . BA = TDataConverter.ConvertDoubleToLEByteArray(BaseSquare); BOS.write(BA); // . BA = TDataConverter.ConvertInt32ToLEByteArray(InfoImageDATAFileID); BOS.write(BA); BOS.write(Int64Space); // . B1A[0] = (byte) InfoString.length(); BOS.write(B1A); if (B1A[0] > 0) BOS.write(InfoString.getBytes("windows-1251")); // . BA = TDataConverter.ConvertInt32ToLEByteArray(InfoStringFontColor); BOS.write(BA); // . B1A[0] = InfoStringFontSize; BOS.write(B1A); // . B1A[0] = (byte) InfoStringFontName.length(); BOS.write(B1A); if (B1A[0] > 0) BOS.write(InfoStringFontName.getBytes("windows-1251")); // . return BOS.toByteArray(); } finally { BOS.close(); } }
public void Save() throws IOException { if (Items != null) { FileOutputStream FOS = new FileOutputStream(ElectedPlaceFileName); try { byte[] BA = TDataConverter.ConvertInt32ToLEByteArray(ElectedPlaceFileVersion); FOS.write(BA); int ItemsCount = Items.size(); BA = TDataConverter.ConvertInt32ToLEByteArray(ItemsCount); FOS.write(BA); for (int I = 0; I < ItemsCount; I++) { BA = Items.get(I).ToByteArray(); FOS.write(BA); } } finally { FOS.close(); } } else { File F = new File(ElectedPlaceFileName); F.delete(); } }
public synchronized void SaveItems() throws IOException { FileOutputStream FOS = new FileOutputStream(HintsFileName); try { byte[] ItemsCountBA = TDataConverter.ConvertInt32ToLEByteArray(ItemsCount); FOS.write(ItemsCountBA); TSpaceHint Item = Items; while (Item != null) { byte[] BA = Item.ToByteArray(); short ItemDataSize = (short) BA.length; byte[] ItemDataSizeBA = TDataConverter.ConvertInt16ToLEByteArray(ItemDataSize); FOS.write(ItemDataSizeBA); FOS.write(BA); // . Item = Item.Next; } } finally { FOS.close(); } }
@SuppressWarnings({"null", "unused"}) public void GetHintsFromServer(TReflectionWindow ReflectionWindow, TCanceller Canceller) throws Exception { if (Reflector.flOffline) return; // . -> TReflectionWindowStruc RW = ReflectionWindow.GetWindow(); TReflectorSpaceLays Lays = ReflectionWindow.getLays(); TReflectionWindowActualityInterval ActualityInterval = ReflectionWindow.GetActualityInterval(); // . String URL1 = Reflector.Server.Address; // . add command path URL1 = "http://" + URL1 + "/" + "Space" + "/" + "2" /*URLProtocolVersion*/ + "/" + Long.toString(Reflector.User.UserID); String URL2 = "SpaceWindow.png"; // . add command parameters URL2 = URL2 + "?" + "5" /*command version*/ + "," + Double.toString(RW.X0) + "," + Double.toString(RW.Y0) + "," + Double.toString(RW.X1) + "," + Double.toString(RW.Y1) + "," + Double.toString(RW.X2) + "," + Double.toString(RW.Y2) + "," + Double.toString(RW.X3) + "," + Double.toString(RW.Y3) + ","; short[] InvisibleLays = Lays.GetDisabledLaysIndexes(); short InvisibleLaysCount; if (InvisibleLays != null) InvisibleLaysCount = (short) InvisibleLays.length; else InvisibleLaysCount = 0; URL2 = URL2 + Integer.toString(InvisibleLaysCount) + ","; for (int I = 0; I < InvisibleLaysCount; I++) URL2 = URL2 + Integer.toString(InvisibleLays[I]) + ','; URL2 = URL2 + Integer.toString(Reflector.VisibleFactor) + ","; URL2 = URL2 + "1" /*Dynamic hint data version*/ + ","; // . Visualization UserData int TSVUserDataSize = 0; byte[] TSVUserData = null; if (TSVUserData != null) TSVUserDataSize = TSVUserData.length; int Idx = 0; byte[] UserData = new byte[4 /*SizeOf(TSVUserDataSize)*/ + TSVUserDataSize]; byte[] BA = TDataConverter.ConvertInt32ToLEByteArray(TSVUserDataSize); System.arraycopy(BA, 0, UserData, Idx, BA.length); Idx += BA.length; if (TSVUserDataSize > 0) { System.arraycopy(TSVUserData, 0, UserData, Idx, TSVUserData.length); Idx += TSVUserData.length; } String UserDataString; ByteArrayOutputStream BOS = new ByteArrayOutputStream(); try { Base64OutputStream B64S = new Base64OutputStream(BOS, Base64.URL_SAFE); try { B64S.write(UserData); } finally { B64S.close(); } UserDataString = new String(BOS.toByteArray()); } finally { BOS.close(); } URL2 = URL2 + UserDataString + ","; // . URL2 = URL2 + Double.toString(ActualityInterval.GetBeginTimestamp()) + "," + Double.toString(ActualityInterval.EndTimestamp) + ","; // . URL2 = URL2 + Integer.toString(RW.Xmn) + "," + Integer.toString(RW.Ymn) + "," + Integer.toString(RW.Xmx) + "," + Integer.toString(RW.Ymx); boolean flUpdateProxySpace = false; if (flUpdateProxySpace) URL2 = URL2 + "," + "1" /*flUpdateProxySpace = true*/; // . byte[] URL2_Buffer; try { URL2_Buffer = URL2.getBytes("windows-1251"); } catch (Exception E) { URL2_Buffer = null; } byte[] URL2_EncryptedBuffer = Reflector.User.EncryptBufferV2(URL2_Buffer); // . encode string StringBuffer sb = new StringBuffer(); for (int I = 0; I < URL2_EncryptedBuffer.length; I++) { String h = Integer.toHexString(0xFF & URL2_EncryptedBuffer[I]); while (h.length() < 2) h = "0" + h; sb.append(h); } URL2 = sb.toString(); // . String URL = URL1 + "/" + URL2 + ".png"; // . HttpURLConnection Connection = Reflector.Server.OpenConnection(URL); try { InputStream in = Connection.getInputStream(); try { if (Canceller != null) Canceller.Check(); // . byte[] HintDataSizeBA = new byte[4]; TNetworkConnection.InputStream_ReadData( in, HintDataSizeBA, HintDataSizeBA.length, Canceller, Reflector.context); int HintDataSize = TDataConverter.ConvertLEByteArrayToInt32(HintDataSizeBA, 0); byte[] HintData = new byte[HintDataSize]; TNetworkConnection.InputStream_ReadData( in, HintData, HintDataSize, Canceller, Reflector.context); HintData = UnPackByteArray(HintData); ReviseItemsInReflectionWindow(RW, HintData, Canceller); FromByteArray(HintData, Canceller); } finally { in.close(); } } finally { Connection.disconnect(); } }