private static async Task HandleClient(TcpClient tcpClientSocket) { var isClientConnected = true; IClientDataAccess clientDataAccess = new ClientDataAccess(); IClientService clientService = new ClientService(clientDataAccess); DateTime hour = DateTime.Now; string connectionHour = hour.Hour + ":" + hour.Minute; int token = clientService.AddClient(connectionHour); try { using (var networkStream = tcpClientSocket.GetStream()) { SendMenu(networkStream); IFrameHandler frameHandler = new FrameHandler(networkStream); while (isClientConnected) { var frame = await frameHandler.ReadDataAsync(); var printiame = Encoding.ASCII.GetString(frame); Console.WriteLine("Now handeling: " + printiame); isClientConnected = HandleRequest(frame, networkStream); } clientService.RemoveClient(token); } } catch (SocketException) { Console.WriteLine("The client connection was interrupted"); } }
public void TestIsMultithreaded() { FrameHandler frameHandler = new FrameHandler(0, ActionFrame); frameHandler.IsMultithreaded = false; Assert.IsFalse(frameHandler.IsMultithreaded); }
public static void GetFrame(FrameHandler handler) { using (var frame = Camera._cameraCapture.QueryFrame()) { handler(frame); } }
/// <summary> /// The execute. /// </summary> /// <param name="request"> /// The request. /// </param> /// <returns> /// The <see cref="ChromelyResponse"/>. /// </returns> private ChromelyResponse Execute(ChromelyRequest request) { var response = new ChromelyResponse(request.Id) { ReadyState = (int)ReadyState.ResponseIsReady, Status = (int)System.Net.HttpStatusCode.OK, StatusText = "OK", Data = DateTime.Now.ToLongDateString() }; try { var scriptInfo = new ScriptInfo(request.PostData); var frame = FrameHandler.GetFrame(scriptInfo.FrameName); if (frame == null) { response.Data = $"Frame {scriptInfo.FrameName} does not exist."; return(response); } frame.ExecuteJavaScript(scriptInfo.Script, null, 0); response.Data = "Executed script :" + scriptInfo.Script; return(response); } catch (Exception e) { response.Data = e.Message; response.ReadyState = (int)ReadyState.RequestReceived; response.Status = (int)System.Net.HttpStatusCode.BadRequest; response.StatusText = "Error"; } return(response); }
private void CommandAction(string path, IDictionary <string, string[]> queryParameters) { try { var data = new LitJson.JsonData(); data["Path"] = path; if (queryParameters == null || !queryParameters.Any()) { data["QueryParams"] = "No query parameters"; } else { var qdata = LitJson.JsonMapper.ToJson(queryParameters); var encodedQdata = qdata.JavaScriptStringEncode(); data["QueryParams"] = encodedQdata; } var script = string.Format(COMMANDRESPONSESCRIPTFORMAT, data.ToJson()); CefFrame frame = FrameHandler.GetFrame("alldemoframe"); if (frame == null) { var errorMsg = $"Frame alldemoframe does not exist."; Log.Error(errorMsg); return; } frame.ExecuteJavaScript(script, null, 0); } catch (Exception e) { Log.Error(e); } }
public void TestFrameArrivedSingleThread() { FrameHandler frameHandler = new FrameHandler(1, ActionFrame, false); frameHandler.Handler_FrameArrived(sender, eventArgs); Assert.AreEqual(1, counter); }
public void Read() { try { while (true) { if (!Connected) { return; } var l = _stream.Read(this._readBuffer, 0, this._readBuffer.Length); if (l <= 0) { this.Disconnect(); return; } FrameHandler.Receive(new ArraySegment <byte>(this._readBuffer, 0, (int)l)); Array.Clear(this._readBuffer, 0, l); } } catch { this.Disconnect(); } }
private byte[] GetTagBytes(Id3Tag tag) { var bytes = new List <byte>(); bytes.AddRange(AsciiEncoding.GetBytes("ID3")); bytes.AddRange(new byte[] { 3, 0, 0 }); foreach (Id3Frame frame in tag.Frames) { if (frame.IsAssigned) { FrameHandler mapping = FrameHandlers[frame.GetType()]; if (mapping != null) { byte[] frameBytes = mapping.Encoder(frame); bytes.AddRange(AsciiEncoding.GetBytes(GetFrameIdFromFrame(frame))); bytes.AddRange(SyncSafeNumber.EncodeNormal(frameBytes.Length)); bytes.AddRange(new byte[] { 0, 0 }); bytes.AddRange(frameBytes); } } } int framesSize = bytes.Count - 6; bytes.InsertRange(6, SyncSafeNumber.EncodeSafe(framesSize)); return(bytes.ToArray()); }
public void TestFrameArrivedMultithread() { FrameHandler frameHandler = new FrameHandler(1, ActionFrame); frameHandler.Handler_FrameArrived(sender, eventArgs); finishedEvent.Wait(); Assert.AreEqual(1, counter); }
public void AddClient(FrameHandler callback) { lock (this) { if(FrameReceived == null) SendMessage("start"); FrameReceived += callback; } }
public void RemoveClient(FrameHandler callback) { lock (this) { FrameReceived -= callback; if (FrameReceived == null) SendMessage("stop"); } }
public void TestFrameArrivedNullMultiSourceFrame() { Isolate.WhenCalled(() => eventArgs.FrameReference.AcquireFrame()).WillReturn(null); FrameHandler frameHandler = new FrameHandler(1, ActionFrame, false); frameHandler.Handler_FrameArrived(sender, eventArgs); Assert.AreEqual(0, counter); Assert.AreEqual(0, frameId); }
public void TestFrameArrivedFinished() { FrameHandler frameHandler = new FrameHandler(0, ActionFrame, false); frameHandler.Finished += Finished; frameHandler.Handler_FrameArrived(sender, eventArgs); Assert.IsTrue(isFinished); Assert.AreEqual(0, counter); Assert.AreEqual(0, frameId); }
public void Read() { try { while (true) { if (!Connected) { return; } var op = _reader.LoadAsync(1024 * 320); op.Completed = async(info, status) => { switch (status) { case AsyncStatus.Completed: uint byteCount = _reader.UnconsumedBufferLength; //byte[] buffer = new byte[byteCount]; _reader.ReadBytes(((Communication)this)._readBuffer); if (byteCount <= 0) { await this.Disconnect(); } else { FrameHandler.Receive(new ArraySegment <byte>(((Communication)this)._readBuffer, 0, (int)byteCount)); Array.Clear(((Communication)this)._readBuffer, 0, (int)byteCount); } break; case AsyncStatus.Error: await this.Disconnect(); break; case AsyncStatus.Canceled: await this.Disconnect(); break; } }; } } catch { this.Disconnect(); } }
public void _02_GetCurrentFrameName() { test = extent .StartTest("GetCurrentFrameName ", "Searches for frame name " + "menu_page") .AssignCategory("Frames"); try { Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("menu_page"), "Frame name was not 'menu_page' "); test.Log(LogStatus.Pass, "The frame is titled " + "'menu_page'"); } catch (Exception ex) { test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>"); throw; } }
public void _05_MoveToParentFrame() { test = extent .StartTest("MoveToParentFrame", "Moves to frame " + "'main_page'") .AssignCategory("Frames"); try { FrameHandler.MoveToParentFrame(_driver); Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("main_page"), "Frame name was not 'main_page' "); test.Log(LogStatus.Pass, "The current frame is " + "'main_page'"); } catch (Exception ex) { test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>"); throw; } }
public void _03_GetDefaultContext() { test = extent .StartTest("GetDefaultContent", "Moves to Default Content") .AssignCategory("Frames"); try { FrameHandler.MoveToDefaultContext(_driver); Assert.Null(FrameHandler.GetCurrentFrameName(_driver), "Failed to move to default Content "); test.Log(LogStatus.Pass, "Moved properly to default content"); } catch (Exception ex) { test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>"); throw; } }
public void _06_MoveToSiblingFrame() { test = extent .StartTest("MoveToSiblingFrame", " Moves to frame " + "'main_frame2'") .AssignCategory("Frames"); test.Log(LogStatus.Info, "Final Test in 'FrameHandlerTest' series"); try { FrameHandler.MoveToChildFrame(_driver, By.Name("main_frame1")); FrameHandler.MoveToSiblingFrame(_driver, By.Name("main_frame2")); Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("main_frame2"), "Frame name was not 'main_frame2' "); test.Log(LogStatus.Pass, "The current frame is " + "'main_frame2'"); } catch (Exception ex) { test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>"); throw; } }
public void TestFailed_FrameHandler_SetThirdBowlForFrame_FrameIsNull() { //-- Arrange FrameHandler frameHandler = new FrameHandler(); var kickedPinsCount = 1; //-- Act try { frameHandler.SetThirdBowlForFrame(null, kickedPinsCount); } catch (ArgumentNullException) { return; } //-- Assert Assert.Fail("Call did NOT throw the Argument Exception"); }
public void _01_MoveToChildFrame() { test = extent .StartTest("MoveToChildFrame", "Verifies the link is displayed") .AssignCategory("Frames"); test.Log(LogStatus.Info, "Move to appropriate frame and discover link"); try { FrameHandler.MoveToChildFrame(_driver, By.Name("menu_page")); Assert.True(_driver.FindElement(By.Id("googleLink")).Displayed, "Link was not found in 'menu_page'"); test.Log(LogStatus.Pass, "The link " + "menu_page" + " is displayed "); } catch (Exception ex) { test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>"); throw; } }
/// <summary> /// /// </summary> /// <param name="frame"></param> /// <param name="duration">Milliseconds</param> /// <param name="onDone"></param> public static void Animate(FrameHandler frame, double duration, Action onDone = null) { int? start = null; Action<int> step = null; step = timestamp => { start = start ?? timestamp; var progress = (timestamp - start.Value) / duration; frame(progress); if (progress < 1) { Browser.Window.RequestAnimationFrame(step); } else { onDone(); } }; Browser.Window.RequestAnimationFrame(step); }
public void _04_MoveToChildFrameArray() { test = extent .StartTest("MovedToChildFrameArray", "Moves into " + "'main_frame1'") .AssignCategory("Frames"); try { By locatorParentFrame = By.Name("main_page"); By locatorChildFrame = By.Name("main_frame1"); FrameHandler.MoveToChildFrame(_driver, new By[] { locatorParentFrame, locatorChildFrame }); Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("main_frame1"), "Failed to move to 'main_frame1' "); test.Log(LogStatus.Pass, "The current frame is " + "main_frame1"); } catch (Exception ex) { test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>"); throw; } }
/// <summary> /// The evaluate. /// </summary> /// <param name="request"> /// The request. /// </param> /// <returns> /// The <see cref="ChromelyResponse"/>. /// </returns> private ChromelyResponse Evaluate(ChromelyRequest request) { var response = new ChromelyResponse(request.Id) { ReadyState = (int)ReadyState.ResponseIsReady, Status = (int)System.Net.HttpStatusCode.OK, StatusText = "OK", Data = DateTime.Now.ToLongDateString() }; try { var scriptInfo = new ScriptInfo(request.PostData); var frame = FrameHandler.GetFrame(scriptInfo.FrameName); if (frame == null) { response.Data = $"Frame {scriptInfo.FrameName} does not exist."; return(response); } var javascriptResponse = frame.EvaluateScriptAsync(scriptInfo.Script); javascriptResponse.Wait(); var status = javascriptResponse.Result.Success ? "Successfully executed :" : "Error in executing :"; response.Data = string.IsNullOrEmpty(javascriptResponse.Result?.Result?.ToString()) ? status + scriptInfo.Script : javascriptResponse.Result?.Result?.ToString(); return(response); } catch (Exception exception) { response.Data = exception.Message; response.ReadyState = (int)ReadyState.RequestReceived; response.Status = (int)System.Net.HttpStatusCode.BadRequest; response.StatusText = "Error"; } return(response); }
/// <summary> /// /// </summary> /// <param name="frame"></param> /// <param name="duration">Milliseconds</param> /// <param name="onDone"></param> public static void Animate(FrameHandler frame, double duration, Action onDone = null) { int? start = null; Action <int> step = null; step = timestamp => { start = start ?? timestamp; var progress = (timestamp - start.Value) / duration; frame(progress); if (progress < 1) { Browser.Window.RequestAnimationFrame(step); } else { onDone(); } }; Browser.Window.RequestAnimationFrame(step); }
static void SendMenu(NetworkStream networkStream) { IMenuDataAccess menuDA = new MenuDataAccess(); IMenuService menuService = new MenuService(menuDA); IFrameHandler frameHandler = new FrameHandler(networkStream); var items = menuService.GetMenuItems(); string menu = ""; int count = 1; foreach (var item in items) { menu += count + ") " + item + "\n"; count++; } byte[] data = Encoding.UTF8.GetBytes(menu); frameHandler.SendMessageAsync(data); }
public async Task GivenDicomFileWithFrames_WhenRetrievingWithTransferSyntax_ThenTranscoderShouldBeInvokedAsExpected(bool originalTransferSyntaxRequested, string requestedRepresentation, bool shouldBeInvoked) { (DicomFile file, Stream stream) = StreamAndStoredFileFromDataset(GenerateDatasetsFromIdentifiers(), 1).Result; ITranscoder transcoder = Substitute.For <ITranscoder>(); transcoder.TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>()).Returns(_recyclableMemoryStreamManager.GetStream()); FrameHandler frameHandler = new FrameHandler(transcoder, _recyclableMemoryStreamManager); IReadOnlyCollection <Stream> result = await frameHandler.GetFramesResourceAsync(stream, new int[] { 0 }, originalTransferSyntaxRequested, requestedRepresentation); // Call Position of LazyTransformReadOnlyStream so that transcoder.TranscodeFrame is invoked long pos = result.First().Position; if (shouldBeInvoked) { transcoder.Received().TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>()); } else { transcoder.DidNotReceive().TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>()); } }
private static void RunResponseScript(string script) { try { Task.Run(() => { var frame = FrameHandler.GetMainFrame(); if (frame == null) { var errorMsg = $"Cannot get frame to run {script}."; Log.Error(errorMsg); return; } frame.ExecuteJavaScript(script, null, 0); }); } catch (Exception e) { Log.Error(e); } }
private static void RunResponseScriptAsync(string script) { try { Task.Run(async() => { var frame = FrameHandler.GetMainFrame(); if (frame == null) { var errorMsg = $"Cannot get frame to run {script}."; Log.Error(errorMsg); return; } await frame.EvaluateScriptAsync(script).ConfigureAwait(false); }); } catch (Exception e) { Log.Error(e); } }
internal override Id3Tag ReadTag(Stream stream) { if (!HasTag(stream)) { return(null); } var tag = new Id3Tag { MajorVersion = 2, MinorVersion = 3, Family = Id3TagFamily.Version2x, IsSupported = true, }; stream.Seek(4, SeekOrigin.Begin); var headerBytes = new byte[6]; stream.Read(headerBytes, 0, 6); var headerContainer = new Id3v2Header(); tag.AdditionalData = headerContainer; byte flags = headerBytes[1]; var header = new Id3v2StandardHeader { Revision = headerBytes[0], Unsyncronization = (flags & 0x80) > 0, ExtendedHeader = (flags & 0x40) > 0, Experimental = (flags & 0x20) > 0 }; headerContainer.Header = header; int tagSize = SyncSafeNumber.DecodeSafe(headerBytes, 2, 4); var tagData = new byte[tagSize]; stream.Read(tagData, 0, tagSize); int currentPos = 0; if (header.ExtendedHeader) { SyncSafeNumber.DecodeSafe(tagData, currentPos, 4); currentPos += 4; var extendedHeader = new Id3v2ExtendedHeader { PaddingSize = SyncSafeNumber.DecodeNormal(tagData, currentPos + 2, 4) }; if ((tagData[currentPos] & 0x80) > 0) { extendedHeader.Crc32 = SyncSafeNumber.DecodeNormal(tagData, currentPos + 6, 4); currentPos += 10; } else { currentPos += 6; } headerContainer.ExtendedHeader = extendedHeader; } while (currentPos < tagSize && tagData[currentPos] != 0x00) { string frameId = AsciiEncoding.GetString(tagData, currentPos, 4); currentPos += 4; int frameSize = SyncSafeNumber.DecodeNormal(tagData, currentPos, 4); currentPos += 4; var frameFlags = (ushort)((tagData[currentPos] << 0x08) + tagData[currentPos + 1]); currentPos += 2; var frameData = new byte[frameSize]; Array.Copy(tagData, currentPos, frameData, 0, frameSize); FrameHandler mapping = FrameHandlers[frameId]; if (mapping != null && mapping.Decoder != null) { Id3Frame frame = mapping.Decoder(frameData); tag.Frames.Add(frame); } currentPos += frameSize; } return(tag); }
public StarlingGameSpriteBase() { instance = this; gametime.Start(); this.Content = new Sprite().AttachTo(this); this.Content_layer0_ground = new Sprite().AttachTo(this.Content); this.Content_layer0_tracks = new Sprite().AttachTo(this.Content); this.Content_layer2_shadows = new Sprite().AttachTo(this.Content); this.Content_layer3_buildings = new Sprite().AttachTo(this.Content); this.Content_layer10_hiddenforgoggles = new Sprite().AttachTo(this.Content); this.Content_layer10_hiddenforgoggles.visible = false; this.info = new TextField( 800, 400, "Welcome to Starling!" ) { hAlign = HAlign.LEFT, vAlign = VAlign.TOP }; // i can see text, cannot see images? info.AttachTo(this); //info.MoveTo(72, 8); this.stagescale = internalscale; onresize( (w, h) => { stagex = w * 0.5; stagey = h * 0.8; stagescale = internalscale * (w) / (800.0); } ); #region Source0 var SourceBitmapData0 = new ScriptCoreLib.ActionScript.flash.display.BitmapData( // 28MB //64 * 2, //64 * 2, // 50 MB 2048, 2048, true, 0x00000000 ); var Source0TextureCount = 0; // where to start? var Source0TextureTop = 0; var Source0TextureLeft = 0; // fighting mipmapping var Source0Padding = 4; // ? var Source0 = new XLazy<TextureAtlas>( delegate { var SourceTexture = Texture.fromBitmapData(SourceBitmapData0); var Source = new TextureAtlas(SourceTexture); return Source; } ); #endregion #region new_tex_crop this.new_tex_crop = (asset, alpha, flipx, innersize, adjustAlpha, filter) => { var shape = ScriptCoreLib.ActionScript.Extensions.KnownEmbeddedResources.Default[asset].ToSprite(); return new_texsprite_crop(shape, alpha, flipx, innersize, adjustAlpha, filter); }; this.new_texsprite_crop = (shape, alpha, flipx, innersize, adjustAlpha, filter) => { //var innersize = 64; // outer 400, inner 64 // do we need to wrap? if ((Source0TextureLeft + innersize) >= 2048) { // if so, goto next line Source0TextureTop = Source0TextureMaxBottom; Source0TextureLeft = 0; } var rect = new Rectangle(Source0TextureLeft, Source0TextureTop, innersize, innersize); { if (filter != null) shape.filters = new[] { filter }; // this does not work! //shape.alpha = 0.3; // next image will appear right to us + padding to prevent bleed Source0TextureLeft += innersize + Source0Padding; Source0TextureMaxBottom = Source0TextureMaxBottom.Max(Source0TextureTop + innersize + Source0Padding); var m = new Matrix(); // flip vertical? if (flipx) { m.translate(-400, 0); m.scale(-1, 1); } m.translate( // where to draw? we need packer algorithm? -(400 - rect.width) / 2 + rect.left, -(400 - rect.height) / 2 + rect.top ); // http://stackoverflow.com/questions/8035717/actionscript-3-draw-with-transparency-on-a-bitmap if (adjustAlpha == null) adjustAlpha = new ColorTransform(); adjustAlpha.alphaMultiplier = alpha; // public void draw(IBitmapDrawable source, Matrix matrix, ColorTransform colorTransform, string blendMode, Rectangle clipRect); //SourceBitmapData0.draw(shape, m, adjustAlpha, clipRect: rect); SourceBitmapData0.draw(shape, m, adjustAlpha, null, rect); } var TextureIndex = Source0TextureCount; Source0TextureCount++; // Error 5 Cannot convert anonymous method to type 'FlashHeatZeeker.UnitPed.Library.Lazy<starling.textures.TextureAtlas>' because it is not a delegate type X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\FlashHeatZeeker.UnitPed\Library\StarlingGameSpriteWithPed.cs 178 43 FlashHeatZeeker.UnitPed var y = new XLazy<TextureAtlas>( delegate { Source0.Content.addRegion(TextureIndex.ToString(), rect); return Source0.Content; } ); // ??? return () => y.Content.getTexture(TextureIndex.ToString()); }; #endregion #region new_tex96 this.new_tex96 = (shape, innersize) => { // outer 400, inner 64 // do we need to wrap? if ((Source0TextureLeft + innersize) >= 2048) { // if so, goto next line Source0TextureTop = Source0TextureMaxBottom; Source0TextureLeft = 0; } var rect = new Rectangle(Source0TextureLeft, Source0TextureTop, innersize, innersize); { // this does not work! //shape.alpha = 0.3; // next image will appear right to us Source0TextureLeft += innersize + Source0Padding; Source0TextureMaxBottom = Source0TextureMaxBottom.Max(Source0TextureTop + innersize + Source0Padding); var m = new Matrix(); m.translate( // where to draw? we need packer algorithm? rect.left, rect.top ); //m.scale(64 / 400.0, 64 / 400.0); // http://stackoverflow.com/questions/8035717/actionscript-3-draw-with-transparency-on-a-bitmap var adjustAlpha = new ColorTransform(); adjustAlpha.alphaMultiplier = alpha; SourceBitmapData0.draw(shape, m, adjustAlpha); } var TextureIndex = Source0TextureCount; Source0TextureCount++; // Error 5 Cannot convert anonymous method to type 'FlashHeatZeeker.UnitPed.Library.Lazy<starling.textures.TextureAtlas>' because it is not a delegate type X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\FlashHeatZeeker.UnitPed\Library\StarlingGameSpriteWithPed.cs 178 43 FlashHeatZeeker.UnitPed var y = new XLazy<TextureAtlas>( delegate { Source0.Content.addRegion(TextureIndex.ToString(), rect); return Source0.Content; } ); return () => y.Content.getTexture(TextureIndex.ToString()); }; #endregion //var __bmd = new ScriptCoreLib.ActionScript.flash.display.BitmapData(96, 96, true, 0x00000000); //__bmd.draw(new white_jsc()); var LogoTexture = new_tex96(new white_jsc()); onbeforefirstframe += delegate { //var count = 64; var count = DefaultLogoCount; for (int i = 0; i < count; i++) for (int yi = 0; yi < count; yi++) { var logo = new Image(LogoTexture()) { }.AttachTo(Content); { var cm = new Matrix(); cm.rotate(random.NextDouble() * Math.PI); cm.translate(i * 96, yi * 96); logo.transformationMatrix = cm; } } }; // http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display3D/Context3D.html#driverInfo //Text = Starling.current.context.driverInfo; Text = "driverInfo missing"; // how expensive is delegate call in a frame? onframe += (stage, starling) => { if (this.frameid == 0) { if (this.onbeforefirstframe != null) this.onbeforefirstframe(stage, starling); } this.frameid++; if (!this.DisableDefaultContentDransformation) { var cm = new Matrix(); cm.scale(stagescale, stagescale); if (autorotate) cm.rotate(this.gametime.ElapsedMilliseconds * 0.001); cm.translate(stagex, stagey); this.Content.transformationMatrix = cm; } // does this cost us 40FPS?? //var texmem = (this.Source0TextureMaxBottom * 100 / 2048) + "%"; //this.info.text = new { this.frameid, texmem, this.Text }.ToString(); }; }
public void HookScript(FrameHandler handler, Action <IUIObject, object, object, object, object> function) { this.scriptHandler.HookScript(handler, function); }
static async Task Main(string[] args) { try { var tcpClient = await ClientConnectAsync().ConfigureAwait(false); var keepConnection = true; using (var networkStream = tcpClient.GetStream()) { FrameHandler frameHandler = new FrameHandler(networkStream); var serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false); var menu = Encoding.ASCII.GetString(serverResponse); Console.WriteLine(menu); while (keepConnection) { var frameToBeSent = ""; while (frameToBeSent == "") { frameToBeSent = Console.ReadLine(); } if (frameToBeSent.Equals("exit")) { keepConnection = false; var exitFrame = Encoding.UTF8.GetBytes("REQFF0000"); var tarea = frameHandler.SendMessageAsync(exitFrame); serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false); var asciiResponse = (Encoding.ASCII.GetString(serverResponse)); Console.WriteLine(asciiResponse); } else { var encodedFrame = Encoding.UTF8.GetBytes(frameToBeSent); var tarea = frameHandler.SendMessageAsync(encodedFrame); serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false); var asciiResponse = (Encoding.ASCII.GetString(serverResponse)); string[] separator = { "@" }; string[] splittedResponse = asciiResponse.Split(separator, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine(splittedResponse[0]); if (splittedResponse[0].Equals("Sending file...")) { IFileFunctions fileFunctions = new FileFunctions(); IFileHandler fileHandler = new FileHandler(networkStream); IFileService fileService = new FileService(fileFunctions, fileHandler); try { fileService.SendFile(splittedResponse[1]); serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false); asciiResponse = (Encoding.ASCII.GetString(serverResponse)); Console.WriteLine(asciiResponse); } catch (BussinesLogicException e) { Console.WriteLine(e.Message); } } if (asciiResponse.Equals("Goodbye")) { keepConnection = false; } } } } tcpClient.Close(); } catch (Exception e) { Console.WriteLine("Ha ocurrido un error de conexion verifique su app config o que el servidor este levantado"); Console.ReadLine(); } }
internal override Id3Tag ReadTag(Stream stream, out object additionalData) { if (!HasTag(stream)) { additionalData = null; return(null); } Id3Tag tag = CreateTag(); stream.Seek(4, SeekOrigin.Begin); var headerBytes = new byte[6]; stream.Read(headerBytes, 0, 6); var headerContainer = new Id3V2Header(); additionalData = headerContainer; byte flags = headerBytes[1]; var header = new Id3V2StandardHeader { Revision = headerBytes[0], Unsyncronization = (flags & 0x80) > 0, ExtendedHeader = (flags & 0x40) > 0, Experimental = (flags & 0x20) > 0 }; headerContainer.Header = header; int tagSize = SyncSafeNumber.DecodeSafe(headerBytes, 2, 4); var tagData = new byte[tagSize]; stream.Read(tagData, 0, tagSize); var currentPos = 0; if (header.ExtendedHeader) { SyncSafeNumber.DecodeSafe(tagData, currentPos, 4); currentPos += 4; var extendedHeader = new Id3V2ExtendedHeader { PaddingSize = SyncSafeNumber.DecodeNormal(tagData, currentPos + 2, 4) }; if ((tagData[currentPos] & 0x80) > 0) { extendedHeader.Crc32 = SyncSafeNumber.DecodeNormal(tagData, currentPos + 6, 4); currentPos += 10; } else { currentPos += 6; } headerContainer.ExtendedHeader = extendedHeader; } while (currentPos < tagSize && tagData[currentPos] != 0x00) { string frameId = Encoding.ASCII.GetString(tagData, currentPos, 4); currentPos += 4; int frameSize = SyncSafeNumber.DecodeNormal(tagData, currentPos, 4); currentPos += 4; var frameFlags = (ushort)((tagData[currentPos] << 0x08) + tagData[currentPos + 1]); currentPos += 2; var frameData = new byte[frameSize]; Array.Copy(tagData, currentPos, frameData, 0, frameSize); FrameHandler mapping = FrameHandlers[frameId]; if (mapping != null) { Id3Frame frame = mapping.Decoder(frameData); tag.AddUntypedFrame(frame); } currentPos += frameSize; } return(tag); }
private static bool HandleRequest(byte[] frame, NetworkStream networkStream) { try { IFrameHandler frameHandler = new FrameHandler(networkStream); ICodification <HeaderStructure> header = new Header(); var logManager = new SenderService(); int logSize = 0; HeaderStructure headerStructure = header.Decode(frame); if (!IsHeaderStructureOk(headerStructure, frame)) { return(true); } var command = headerStructure.CommandType; switch (command) { case CommandType.AG: ServerGenreManager.UploadGenre(frame); ServerResponse(frameHandler, "Genre Uploaded"); logSize = 2; break; case CommandType.BG: ServerGenreManager.DeleteGenre(frame); ServerResponse(frameHandler, "Genre Deleted"); logSize = 1; break; case CommandType.MG: ServerGenreManager.ModifyGenre(frame); ServerResponse(frameHandler, "Genre modified"); logSize = 3; break; case CommandType.AP: ServerMovieManager.Upload(frame); ServerResponse(frameHandler, "Movie uploaded"); logSize = 3; break; case CommandType.BP: ServerMovieManager.Delete(frame); ServerResponse(frameHandler, "Movie deleted"); logSize = 1; break; case CommandType.MP: ServerMovieManager.Modify(frame); ServerResponse(frameHandler, "Movie updated"); logSize = 4; break; case CommandType.AS: ServerAsociationManager.AsociateGenreToMovie(frame); ServerResponse(frameHandler, "Movie and genre associated"); logSize = 2; break; case CommandType.DS: ServerAsociationManager.DeAsociateGenreToMovie(frame); ServerResponse(frameHandler, "Movie and genre deassociated"); logSize = 2; break; case CommandType.AD: ServerDirectorManager.UploadDirector(frame); ServerResponse(frameHandler, "Director uploaded"); logSize = 4; break; case CommandType.BD: ServerDirectorManager.DeleteDirector(frame); ServerResponse(frameHandler, "Director deleted"); logSize = 1; break; case CommandType.MD: ServerDirectorManager.ModifyDirector(frame); ServerResponse(frameHandler, "Director updated"); logSize = 5; break; case CommandType.SA: string fileName = ServerMovieManager.SaveFile(frame, networkStream); ServerResponse(frameHandler, "Sending file...@" + fileName); ServerMovieManager.ReceiveFile(networkStream); logSize = 2; ServerResponse(frameHandler, "File sent"); break; case CommandType.DM: ServerAsociationManager.AsociateDirectorToMovie(frame); ServerResponse(frameHandler, "Director and movie asociated"); logSize = 2; break; case CommandType.DD: ServerAsociationManager.DeAsociateDirectorToMovie(frame); ServerResponse(frameHandler, "Director and movie deasociated"); logSize = 2; break; case CommandType.FF: ServerResponse(frameHandler, "Goodbye"); logSize = 1; return(false); default: ServerResponse(frameHandler, "Formato de trama invalido vuelva a enviar"); break; } logManager.CreateLog(command.ToString().ToUpper(), frame, logSize); return(true); } catch (Exception ex) { var logManager = new SenderService(); logManager.CreateLog("EX", frame, 1); if (ex is FormatException || ex is ArgumentException) { IFrameHandler frameHandler = new FrameHandler(networkStream); ServerResponse(frameHandler, "La trama recibida fue invalida"); } else if (ex is IndexOutOfRangeException) { IFrameHandler frameHandler = new FrameHandler(networkStream); ServerResponse(frameHandler, "El objeto solicitado en el Data esta mal construido"); } else if (ex is BussinesLogicException || ex is AsociatedClassException) { IFrameHandler frameHandler = new FrameHandler(networkStream); ServerResponse(frameHandler, ex.Message); } else if (ex is DataBaseException || ex is EntityBeingModifiedException) { IFrameHandler frameHandler = new FrameHandler(networkStream); ServerResponse(frameHandler, ex.Message); } else { IFrameHandler frameHandler = new FrameHandler(networkStream); ServerResponse(frameHandler, "Ha ocurrido un error inesperado vuelva a mandar su trama"); } return(true); } }