Search Results

Search found 7595 results on 304 pages for 'functionality'.

Page 89/304 | < Previous Page | 85 86 87 88 89 90 91 92 93 94 95 96  | Next Page >

  • Implementing an async "read all currently available data from stream" operation

    - by Jon
    I recently provided an answer to this question: C# - Realtime console output redirection. As often happens, explaining stuff (here "stuff" was how I tackled a similar problem) leads you to greater understanding and/or, as is the case here, "oops" moments. I realized that my solution, as implemented, has a bug. The bug has little practical importance, but it has an extremely large importance to me as a developer: I can't rest easy knowing that my code has the potential to blow up. Squashing the bug is the purpose of this question. I apologize for the long intro, so let's get dirty. I wanted to build a class that allows me to receive input from a console's standard output Stream. Console output streams are of type FileStream; the implementation can cast to that, if needed. There is also an associated StreamReader already present to leverage. There is only one thing I need to implement in this class to achieve my desired functionality: an async "read all the data available this moment" operation. Reading to the end of the stream is not viable because the stream will not end unless the process closes the console output handle, and it will not do that because it is interactive and expecting input before continuing. I will be using that hypothetical async operation to implement event-based notification, which will be more convenient for my callers. The public interface of the class is this: public class ConsoleAutomator { public event EventHandler<ConsoleOutputReadEventArgs> StandardOutputRead; public void StartSendingEvents(); public void StopSendingEvents(); } StartSendingEvents and StopSendingEvents do what they advertise; for the purposes of this discussion, we can assume that events are always being sent without loss of generality. The class uses these two fields internally: protected readonly StringBuilder inputAccumulator = new StringBuilder(); protected readonly byte[] buffer = new byte[256]; The functionality of the class is implemented in the methods below. To get the ball rolling: public void StartSendingEvents(); { this.stopAutomation = false; this.BeginReadAsync(); } To read data out of the Stream without blocking, and also without requiring a carriage return char, BeginRead is called: protected void BeginReadAsync() { if (!this.stopAutomation) { this.StandardOutput.BaseStream.BeginRead( this.buffer, 0, this.buffer.Length, this.ReadHappened, null); } } The challenging part: BeginRead requires using a buffer. This means that when reading from the stream, it is possible that the bytes available to read ("incoming chunk") are larger than the buffer. Remember that the goal here is to read all of the chunk and call event subscribers exactly once for each chunk. To this end, if the buffer is full after EndRead, we don't send its contents to subscribers immediately but instead append them to a StringBuilder. The contents of the StringBuilder are only sent back whenever there is no more to read from the stream. private void ReadHappened(IAsyncResult asyncResult) { var bytesRead = this.StandardOutput.BaseStream.EndRead(asyncResult); if (bytesRead == 0) { this.OnAutomationStopped(); return; } var input = this.StandardOutput.CurrentEncoding.GetString( this.buffer, 0, bytesRead); this.inputAccumulator.Append(input); if (bytesRead < this.buffer.Length) { this.OnInputRead(); // only send back if we 're sure we got it all } this.BeginReadAsync(); // continue "looping" with BeginRead } After any read which is not enough to fill the buffer (in which case we know that there was no more data to be read during the last read operation), all accumulated data is sent to the subscribers: private void OnInputRead() { var handler = this.StandardOutputRead; if (handler == null) { return; } handler(this, new ConsoleOutputReadEventArgs(this.inputAccumulator.ToString())); this.inputAccumulator.Clear(); } (I know that as long as there are no subscribers the data gets accumulated forever. This is a deliberate decision). The good This scheme works almost perfectly: Async functionality without spawning any threads Very convenient to the calling code (just subscribe to an event) Never more than one event for each time data is available to be read Is almost agnostic to the buffer size The bad That last almost is a very big one. Consider what happens when there is an incoming chunk with length exactly equal to the size of the buffer. The chunk will be read and buffered, but the event will not be triggered. This will be followed up by a BeginRead that expects to find more data belonging to the current chunk in order to send it back all in one piece, but... there will be no more data in the stream. In fact, as long as data is put into the stream in chunks with length exactly equal to the buffer size, the data will be buffered and the event will never be triggered. This scenario may be highly unlikely to occur in practice, especially since we can pick any number for the buffer size, but the problem is there. Solution? Unfortunately, after checking the available methods on FileStream and StreamReader, I can't find anything which lets me peek into the stream while also allowing async methods to be used on it. One "solution" would be to have a thread wait on a ManualResetEvent after the "buffer filled" condition is detected. If the event is not signaled (by the async callback) in a small amount of time, then more data from the stream will not be forthcoming and the data accumulated so far should be sent to subscribers. However, this introduces the need for another thread, requires thread synchronization, and is plain inelegant. Specifying a timeout for BeginRead would also suffice (call back into my code every now and then so I can check if there's data to be sent back; most of the time there will not be anything to do, so I expect the performance hit to be negligible). But it looks like timeouts are not supported in FileStream. Since I imagine that async calls with timeouts are an option in bare Win32, another approach might be to PInvoke the hell out of the problem. But this is also undesirable as it will introduce complexity and simply be a pain to code. Is there an elegant way to get around the problem? Thanks for being patient enough to read all of this. Update: I definitely did not communicate the scenario well in my initial writeup. I have since revised the writeup quite a bit, but to be extra sure: The question is about how to implement an async "read all the data available this moment" operation. My apologies to the people who took the time to read and answer without me making my intent clear enough.

    Read the article

  • Looking for OnLog Event - log4net

    - by Mubashar Ahmad
    Dear Devs I am using Log4net to produce different kind of logs and using RollingFileAppenders which rolls on a given size. Now i have a new requirement that a log should be visible on a windows form therefore i am looking for some event that can be handled on each log entry within my application so i can display that particular log entry in my form as well. Or there may be some appender which gives such functionality. Any idea on this?

    Read the article

  • Can a Winforms/WPF app act as HTTP server?

    - by user46703
    Hi, I have a desktop written with Winforms. Now I have requests that people want to access the data from other machines. First I thought about a regular Client/Server app but now I think best would be if the app could act as HTTP server and send HTML to connected browsers. Does anybody know if there is a library available to add HTTP server functionality to an app? Ideally it would be able to serve ASP.NET content.

    Read the article

  • JQuery/JS Markdown plugin?

    - by Rosarch
    I'm writing a chat app, and I'd like to add some simple functionality where users use markup to affect text formatting, like bold or italics. I'm envisioning this would be like how it is done on Google Talk or StackOverflow. Does JQuery have any plugins to do this?

    Read the article

  • When should the BDD test scenarios be written?

    - by Si Keep
    I am looking into BDD testing within a scrum scenario and realise that the BDD scenarios are more akin to specifications than tests. Therefore should they be written before the developers go into pre-planning so that all of the functionality has been identified which would allow better estimating, prioritisation etc in that meeting?

    Read the article

  • DevExpress Refactor Pro vs JetBrains ReSharper

    - by ChrisV
    In my department, we are currently using ReSharper 4.0 and deciding whether to upgrade to 4.5 upon its release next week. I personally am a huge fan of ReSharper however a number of my colleagues have pointed out that they have been using a plug in from DevExpress called Refactor Pro that performs similar functionality. http://www.devexpress.com/Refactor http://www.jetbrains.com/resharper/beta.html Has anyone previously compared these tools and hold any strong views on which tool would give us the greatest increase in productivity and why?

    Read the article

  • Automatic incremental SQL Script generation for incremental, nightly builds when using Team Build in

    - by Steve Johnson
    hi all, hope that everybody here is OK. We are using VS 2008 as development tool, TFS 2008 as version control as well as build automation. Some of our developer use dbpro for databases changes and some use SQL Server management studio. I am trying to automate build for Web Application built using C# and VB.Net. Our scenario is such that we have a central database to which our web application connects. Whenever we supply our clients with a new functionality or a bug fix, we supply them incremental builds. The SQL script is checked into source control for every incremental build when they have made and tested there changes on our central DB Server. I want to generate Differential script that can be run at the client as an incremental update script. Now to come about it is a problem. Sometimes our developers tend to forget the database change-sets and the script in the source control is missing an SP or a two. Also, sometimes we need to insert default data into some of the tables that have strict stringent values and not test values. Like a table that contains Services provided by the panel, we add a new service name, signature, credentials and service address, etc etc in the ServiceTable. Besides this many other tables may have test data that may not be needed. If we use DataCompare, it will generate changeset for required data (important for client to enable certain services) and our test data that was added to the database as a result of our testing of the functionality or bug fix. Currently i am using SQLSchemaCompareTask (from Visual Studio 2008 Team Database Professional Power Tools API) in the TFSBuild.proj file of the build definition for TFS 2008. Using SQLSchemaCompareTask, the script generated contains database names like [dbo]. etc which are not desired as the script fails when run against SQL Server 2000 databses (Some of our client still use SQL Server 2000) databases as teh backend of the application. Also default data can't be generated by this process. To overcome this problem, i have to come up with a solution that can compare databases and generate script automatically that does not have to be manually reviewed again before being sent to the client. Please suggest effective methodology of such SQL script generation and suggest whether two different databases may be used or something ? Is there any toolkit or api that can enable build automation for SQL Server databases? Thank you all. Regards Steve

    Read the article

  • ASP.NET Adrotator Control Repeating For Length of Entire Page

    - by rofly
    Hello! I'm making a website that requires ads being repeated down the length of a page with dynamic length. I want the ads to be displayed down the entire length of the page, but I won't know that length until after the data has been displayed. Is there built in functionality for this in .NET? If not, does anyone see any workarounds I could employ to do this for me? Thanks!

    Read the article

  • Perl Tk: Clearing Frame Elements Value

    - by pavun_cool
    Hi All, In Perl tk I have designed one interface in that I have one frame . That frame has some Entry And Text box . When I am clicking the button those Entry and Text value has to clear in the Frame .I know that we can access each ( Entry , Text ) object then we can clear using delete function. I need some as like html reset functionality . How can do this things in Perl Tk...... Thanks ...

    Read the article

  • Dynamically create hierachical tableview from file structure

    - by Rob M
    Hi, I have a directory structure of directories and files that I want to render as a tableview in an iphone app. I'd rather have this generated dynamically rather than have to maintain a XML PLIST or whatever. i.e. replicate the Explorer functionality in windows where a user can traverse the structure and then select bundled image files for viewing. Is there any way to do this? Any advice would be appreicated.

    Read the article

  • NAPTR support for SLES

    - by egiakoum1984
    Do you know if there is a library in SLES9 or SLES10 which support NAPTR queries for ENUM functionality? The libadns doesn't support NAPTR. There are other libraries which support NAPTR queries but they aren't included in SLES.

    Read the article

  • Outlook 2003 Addons

    - by Mohit Nanda
    I want to create a custom Addon/plugin for Outlook 2003, to support integrated functionality with a task management system. I am unable to find many good development resources for the same. Can someone please explain Outlook 2003 architecure and development of a plugin. Good links/resources are also welcome.

    Read the article

  • Replacement for CAPICOM

    - by AlexLocust
    Hi, all! Now CAPICOM is deprecated, and MSDN recommends to use .net classes from System.Security.Cryptography. But I have one Lotus Notes application, which using CAPICOM from LotusScript code (very similar to VisualBasic) for displaying certificates to users, and get some cert info (Subject and ValidToDate fields). How can I replace CAPICOM functionality with .net or any other alternative?

    Read the article

  • Where to find changes from iphone OS 3.0 to 3.1.3

    - by Joe
    I've developed an app using the 3.1.3 SDK and I want to set the deployment target to OS 3.0. The app uses iPod functionality which I can't test on the Simulator so my question is: Is there somewhere I can find a list of the changes from 3.0 to 3.1.3 so I can check if anything might be broken on an OS 3.0 device? I've looked on Apple's website obviously but can't find anything. How do people normally test on old software releases?

    Read the article

  • Serve Images from Asset Host When Using CSS background-image property in Rails

    - by Moe
    I recently started serving static assets (mainly images) from an asset host for my Rails project. A small portion of my images are not being served from the asset host because they are displayed using the CSS background-image property rather than image_tag Is there are clean workaround for this? I'd rather not create a "stylesheets" controller because I'm using the asset-packager plugin and would like to preserve this functionality. Thanks! Moe

    Read the article

  • Software tools for allowing end users to reprogram interfaces

    - by iceman
    What would be the examples of commercial software products (specially web-services) which allow the end user to reprogram their user-interface? I mean end users who do not know programming and they are allowed to add more functionality. One way of doing it is allowing XML gadgets like iGoogle does. What are the other approaches and also the technologies enabling them? This would be a futuristic application like collaborative software development for users.

    Read the article

  • How to avoid re-drawing all views in an ArrayAdapter

    - by Hamy
    Hey all, I have an ArrayAdapter powering a ListView. I would like to change the data behind the ArrayAdapter and update the ListView's. Sounds like notifyDataSetChanged(); would be exactly what I am looking for, but it updates the entire ListView, and I would prefer to update on a row-by-row basis. Is there a way to do this with ArrayAdapter, or do I need to manage my data some other way if I want this functionality?

    Read the article

  • CakePHP counterCache

    - by Daniel
    I'm using counterCache to track the number of chapters that have been posted to their related stories. This all works fine, apart from the fact that when the chapter_count field in the database gets updated, the modified field for that record does not. Is there any way that I can set Cake to automatically update the modified field when the counterCache functionality runs? Thank you.

    Read the article

  • Visual Studio 2008 Report Designer - can't turn on gridlines

    - by bob
    Microsoft in their infinite wisdom have seen fit to remove the useful "Draw Grid" and "Snap to Grid" checkboxes in the report properties dialog that were in VS 2005 but are not in VS 2008. I'm assuming they put that functionality elsewhere but I can't find it after going through what seems like every menu option available. Does anybody know how to turn on the gridlines?

    Read the article

  • Codaset, Codebasehq, Unfuddle, Trac or Redmine?

    - by Alex
    I have a handful of small Git repositories I would like to host remotely. They're all private projects, most of them in Java. Codaset, Codebasehq, Unfuddle, Trac, Redmine.. There seems to be an abundance of solutions out there. They're all packed with features and useful functionality. Putting aside pricing and the glossy layouts, what is the best way of comparing these options?

    Read the article

< Previous Page | 85 86 87 88 89 90 91 92 93 94 95 96  | Next Page >