Search Results

Search found 3293 results on 132 pages for 'reader poll'.

Page 17/132 | < Previous Page | 13 14 15 16 17 18 19 20 21 22 23 24  | Next Page >

  • Implementing a robust async stream reader for a console

    - 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 Stream in an event-based manner. The stream, in my scenario, is guaranteed to be a FileStream and there is also an associated StreamReader already present to leverage. The public interface of the class is this: public class MyStreamManager { public event EventHandler<ConsoleOutputReadEventArgs> StandardOutputRead; public void StartSendingEvents(); public void StopSendingEvents(); } Obviously this specific scenario has to do with a console's standard output. 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. Since we are only handing off data from the stream to a consumer, and that consumer may well have inside knowledge about the size and/or format of these chunks, I want to call event subscribers exactly once for each chunk. Otherwise the abstraction breaks down and the subscribers have to buffer the incoming data and reconstruct the chunks themselves using said knowledge. This is much less convenient to the calling code, and detracts from the usefulness of my class. Edit: There are comments below correctly stating that since the data is coming from a stream, there is absolutely nothing that the receiver can infer about the structure of the data unless it is fully prepared to parse it. What I am trying to do here is leverage the "flush the output" "structure" that the owner of the console imparts while writing on it. I am prepared to assume (better: allow my caller to have the option to assume) that the OS will pass me the data written between two flushes of the stream in exactly one piece. 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 (thus preserving the chunks). 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, 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) Maintains the "chunkiness" of the data; this allows the calling code to use inside knowledge of the data without doing any extra work Is almost agnostic to the buffer size (it will work correctly with any size buffer irrespective of the data being read) 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.

    Read the article

  • Html string reader

    - by Oakcool
    Hi all, I need to load HTML and parse it, I think that it should be something simple, I pass a string with a "HTML" it reads the string in a Dom like object, so I can search and parse the content of the HTML, facilitating scraping and things like that. Do you guys know about any thing like that. Thanks

    Read the article

  • What is wrong with this null check for data reader

    - by Phil
    c.Open() r = x.ExecuteReader If Not r("filename").IsDbnull Then imagepath = "<img src='images/'" & getimage(r("filename")) & " border='0' align='absmiddle'" End If c.Close() r.Close() I have also tried; If r("filename") Is DBNull.Value Then imagepath = String.Empty Else imagepath = "<img src='images/'" & getimage(r("filename")) & " border='0' align='absmiddle'" End If c.Close() r.Close() The error is: Invalid attempt to read when no data is present. The idea of my code is to build an img src string only when data is available. Help greatly appreciated. Thanks

    Read the article

  • pthreads: reader/writer locks, upgrading read lock to write lock

    - by ScaryAardvark
    I'm using read/write locks on Linux and I've found that trying to upgrade a read locked object to a write lock deadlocks. i.e. // acquire the read lock in thread 1. pthread_rwlock_rdlock( &lock ); // make a decision to upgrade the lock in threads 1. pthread_rwlock_wrlock( &lock ); // this deadlocks as already hold read lock. I've read the man page and it's quite specific. The calling thread may deadlock if at the time the call is made it holds the read-write lock (whether a read or write lock). What is the best way to upgrade a read lock to a write lock in these circumstances.. I don't want to introduce a race on the variable I'm protecting. Presumably I can create another mutex to encompass the releasing of the read lock and the acquiring of the write lock but then I don't really see the use of read/write locks. I might as well simply use a normal mutex. Thx

    Read the article

  • Idatareaders not returning values from database

    - by Phil
    In my codebehind I have this vb: Dim reader as idatareader = includes.SelectDepartmentID(PageID) While reader.Read Did = reader("departmentid") GroupingHeading = reader("heading") Folder = reader("folder") If reader("OwnBanner") Is DBNull.Value Then OwnBanner = String.Empty Else OwnBanner = reader("ownbanner") End If Then in my class I have: Public Function SelectDepartmentID(ByVal PageID As Integer) As IDataReader Dim Command As SqlCommand = db.GetSqlStringCommand("sql") db.AddInParameter(Command, "@pageid", Data.DbType.Int32, PageID) Dim reader As IDataReader = db.ExecuteReader(Command) reader.Read() Return reader End Function No Errors are being presented yet nothing is being returned by the reader. Is there an error in my code? Thanks.

    Read the article

  • need help in sms reader

    - by pranay
    i intend to develop an app which would speak to the user the message he desires in the inbox. I have successfully created an app where there is a text box and when the user finishes typing in it and presses a speak button, he can hear what he has written, now how do i extend this to the desired app? please could someone please guide me on this?

    Read the article

  • .Net in HTML tp return true if reader object not null, otherwise return false

    - by Phill Healey
    I'm using a DataList to show some data from the database and populating the fields on the html side. I now have a requirement to change the visibility of a panel based on whether or not a db field has data or not. I need to be able to show the panel if the relevant data field has content, and hide it if it doesn't. Eg: <asp:Panel ID="pnlNew" runat="server" Style="margin:0; padding:0; width:42px; height:18px; bottom:5px; right:10px; float:right; position:relative; background:url(../_imgVideoBadge.png) no-repeat;" Visible='<%# Eval("cheese") != null %>' ToolTip="available"></asp:Panel> Obviously this doesn't work in terms of the visible property. But hopefully it gives an idea of what I'm trying to achieve. Any help would be greatly appreciated. I've seen examples previously of doing something along the lines of: a ?? b:c How could this be applied to the above requirement?? Thanks in advance.

    Read the article

  • programming language xml reader

    - by matt
    Indentify a suitable programming language that will read the XML document and insert its contents into the database. i need help with this question i am getting really confused can some one show me and guide me thorught how to do this

    Read the article

  • PDF reader to capture regions

    - by Amitesh
    I need to build an application which can render a pdf document. The application should allow the user to draw rectangles on the pdf to define regions such as Address region, Invoice Number region and so on. The application will need to capture these regions and save them. I already have an application in which I can pass these region information with the pdf and it will get me the text back. My only problem at the moment is that I cannot get the region information from the user. So can anybody please point me to any application which can do the above (allow the user to draw rectangles to capture the regions).

    Read the article

  • How to add up amount of data from an external file in C# (Stream Reader)

    - by user2985995
    I'm new to this site, and pretty new to programming, at the moment I'm trying to display a count amount for the users names on my donation list, and then I also want to have a sum to work out the total amount of money the donation list contains, If someone could help me with creating a way to add up amount of donors on the donations.txt file that would be great help, I have no idea where to start, but so far this is my coding: string sName; double dAmount; string sTotalNames; double dAmountTotal; double dAmountAverage; using (StreamReader sr = new StreamReader("Donations.txt")) { while (sr.Peek() != -1) { sName = sr.ReadLine(); Console.WriteLine(sName); dAmount = Convert.ToDouble(sr.ReadLine()); Console.WriteLine(dAmount); } Console.WriteLine("Press any key to close"); Console.ReadKey(); }

    Read the article

  • jQuery reader() on downloaded content.

    - by David
    Hi all! jQuery.ready() allows us to wait for the construction of the webpage. Recently it has been added support to wait until CSS files are loaded. I would like to know if that feature can be used for downloaded content, because I fetch content via $.ajax() that holds CSS references and I would like to retrieve the content of the CSS before working with the retrieved content. Fetch with $.ajax() the html. -- Wait until all CSS is downloaded. Show to fetched content (already css'ed). Thank you very much for your help.

    Read the article

  • Adobe pdf icon disappeared!

    - by Nano8Blazex
    Starting last week I've noticed that all my pdf files now have a generic white document as an icon instead of the original Adobe pdf icon... I've reinstalled Adobe Reader, repaired it, and have had no success in getting the original icon back. The generic document icon is really getting into my head now... it's just... generic. Is there any way to fix this?

    Read the article

  • How to add a Favicon to RSS feeds using Wordpress?

    - by Josh
    A friend of mine wants to make her favicon visible when people user Google Reader to view the RSS of her Wordpress blog. Anyone have a quick tip on how / where to make that reference? Her current web host is Bluehost, and apparently that is the "icon" people see when using Google Reader. Any suggestions would be helpful.

    Read the article

  • Why "Reader" link doesn't show in Gmail in chrome?

    - by ablmf
    I use both chrome and firefox at the same time. As I always open Gmail first and then use the Reader link in upper left conner of Gmail to open Google Reader, I noticed that chomre hides the Google Reader Link. I can't find it anywhere in Gmail. Why doesn't chrome behave differently?

    Read the article

  • How does Safari's Reader work and when does it show up?

    - by TestSubject528491
    Safari's Reader feature is a cool little app that displays a web page as a newspaper article --- without all the distracting sidebars, comments, and ads. Sometimes it works and sometimes it doesn't, and I'm wondering how "it knows when to show up." On my personal website, one of the pages has this option. You can click the Reader button in the URL bar and it is displayed beautifully like a page in an iBook. However, none of my other web pages (on the same site) do this. I thought it had something to do with the <article> tag, but I removed that and it still works. Anyone know how this app works? Also, does anyone know of any Chrome extensions that are just like this? Google Reader is not the same thing. PS: From the cited Apple website: Safari Reader As you browse the web, Safari detects if you are on a web page with an article. Click the Reader button that appears in the Smart Address Field and an elegant view of the article appears — without any distracting content. Not much help, is it?

    Read the article

  • May I use full-texted feed for my News Reader app?

    - by Mahdi Ghiasi
    I'm creating a news reader app. (Users will choose sources, but not the exact feed addresses. for example, they can choose Gizmodo but they will not see the exact url of Gizmodo's feed) Some of sources are giving partial feeds, and user must go to their website to read the complete article. My question is, May I make a fulltext version of their feed (for example, using this service) and use it instead of their feed in my News reader categories? Am I legally/ethically allowed to do this? What about using some other service like Readability? (Readability gives HTML page instead of feed as input, but anyway, output will be clean article without any advertises or such) Please note that some of these partial feeds may have some advertises inside, but the fulltext feed generators usually remove that advertises.

    Read the article

  • How can I implement an EPUB reader in JavaScript?

    - by Vlad Nicula
    I'm wondering if I can create an EPUB (free and open e-book standard) reader in JavaScript. The basic requirements would be: Server parts of the EPUB reader from a server API. Read the EPUB data in JavaScript. Render it on page. Provide some extra functionality, like text highlights or page notes. I have no information about how I could do this. I'm willing to try a prototype project. What are the steps that I could take towards implementing such a thing?

    Read the article

  • How do I set a wine program (ex. Foxit Reader for Windows) as the default program?

    - by To Do
    I regularly annotate pdf files and unfortunately there is no good linux pdf reader that supports decent annotations. Evince has a very rudimentary and buggy annotation feature. So I'm stuck using a Windows viewer through wine. This works pretty well but, when I simply right-click a file (in this case a pdf), properties, open with and selected Foxit Reader, the Unity Launcher icon remained the wine icon instead of the application icon. Has anyone set a wine program as the default program for any file? Any ideas?

    Read the article

  • Open FDF document on Mac

    - by Corey Floyd
    I'm having the issue documented here: http://forums.adobe.com/thread/445594 When I try to open a FDF, I just get a pop up over and over again which asks me if I want to open the form. One possible solution is downgrading to Safari 3, but that is not proven to work. I thought maybe I could get the FDF to open in FireFox, but changing the default browser does not affect Reader, it still attempts to open the FDF in Safari (strange). So, does anyone know of a way to open this form? Thanks -Corey

    Read the article

< Previous Page | 13 14 15 16 17 18 19 20 21 22 23 24  | Next Page >