Search Results

Search found 25727 results on 1030 pages for 'solution'.

Page 354/1030 | < Previous Page | 350 351 352 353 354 355 356 357 358 359 360 361  | Next Page >

  • Implementing a robust async stream reader

    - 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, but that is a detail and does not play an important role. 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. 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

  • ~saas license manager

    - by Steven
    Hi all, We're developing a saas app, which is almost finished. Being in the final stages we're wondering how we are going to charge customers for using our app, how we will enforce they will not pass on their logins and so on. Does anyone know a ready-made solution? We do have a budget for this. rough criteria: - enforcing multiple payment/licensing options (trial - license with grace periods, on demand, pay per use, etc) - integration with payment providers - tracking/preventing unauthorised usage - payment/license plans adjustable on a per customer(group) basis

    Read the article

  • iphone app emoticons

    - by Ayaz Alavi
    Hi, I have made an iphone application that allows users to send text messages for free to any mobile. I want to allow users to add emoticons into their message from standard set provided by me. What might be the best possible solution for this scenario? regards ayaz Alavi

    Read the article

  • How to check if a C++ COM or C# DLL is registered ?

    - by milan
    Hi all, I have .net solution (one project written in C++ COM others are written in C#) with its libraries. I would like to make some starttest-tool which would test if all C#, C++ libraries are correctlly registered. How I can do that ? How I can ask .NET if some C# or C++ COM library is regitered ? br, Milan.

    Read the article

  • How to skip callbacks on Mongoid Documents?

    - by jpemberthy
    My question is similar to this one http://stackoverflow.com/questions/1342761/how-to-skip-activerecord-callbacks but instead of AR I'm using Mongoid, It seems like that isn't implemented yet in the current version of Mongoid, so I'd like to know what should be an elegant solution to implement it. (if necessary).

    Read the article

  • Fortran 90 How to call a function in a subroutine in a module?

    - by Feynman
    I have a module that "contains" a subroutine that "contains" a function. I say "use themodule" in my main program and I can "call thesubroutine", but how to I get the function that is "contained" in the subroutine? The code looks like this: module useful integer, parameter :: N=2 double precision, parameter :: xmin=1, xmax=10, pi=3.1415926535898 double complex :: green(N,N), solution(N), k=(2.0,0.0) contains subroutine y(n1) contains function x(n1) real :: n1, x x=n1*(xmax-xmin)/N end function x end subroutine y end module useful

    Read the article

  • nested iFrame facebook app with facebooker on IE

    - by Ariel Akilie
    Hi all, I've tried to create simple facebook app with iFrame,, but I always get nested iFrame on every I click link on my application, I already tried a solution from site http://railsrant.com/2009/10/14/creating-a-facebook-iframe-app-using-ruby-on-rails-facebooker/ it's work on Firefox and Chrome, but doesn't work at IE Any idea or suggestion for this? Thanks

    Read the article

  • how a view controller know when it is dismissed or poped out of the navigation controller stack?

    - by Thanh-Cong Vo
    Hi all, My view controller needs to know when it is poped out of the navigation controller stack, so that it can retain itself, wait and release itself later with another notification. I intend to do like that when the view is sent dealloc message: - (void)dealloc { if (self.isPerformingSomeTask) { self.isPopedOut = YES; [self retain]; return; } [super dealloc]; } But I think this is not a good solution? Any idea?

    Read the article

  • Export multiple values from a single Combo Box? (Adobe Acrobat)

    - by metashockwave
    I'm trying to export 2 values from every single item from the combo box field. I have found two methods to insert items into a combo box: 1) insertItemAt http://www.verypdf.com/document/acrobat-forms-javascript/pg_0048.htm 2) setItems http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat9_HTMLHelp&file=JS_API_AcroJS.88.748.html but neither method allows two parameters (im always get "missing ) after argument list" error from the Acrobat JavaScript Debugger) Does anyone know of a better solution for this problem? Thanks!

    Read the article

  • Is there a way in PHP to keep a file open and process each line and subsequent lines?

    - by Chris Denman
    I want to write a php script that keeps the apache_log file open and "listen" to the log and deal with each log entry as it happens. I'm thinking that I need to open a file, get the number of lines, then do this again in a loop - and when the size is different, read the new lines and process them. Am I barking up the wrong tree, or is there a silly easy solution that I have missed? Chris

    Read the article

  • Generate reasonable length license key with asymmetric encryption?

    - by starkos
    I've been looking at this all day. I probably should have walked away from it hours ago; I might be missing something obvious at this point. Short version: Is there a way to generate and boil down an asymmetrically encrypted hash to a reasonable number of unambiguous, human readable characters? Long version: I want to generate license keys for my software. I would like these keys to be of a reasonable length (25-36 characters) and easily read and entered by a human (so avoid ambiguous characters like the number 0 and the capital letter O). Finally--and this seems to be the kicker--I'd really like to use asymmetric encryption to make it more difficult to generate new keys. I've got the general approach: concatenate my information (user name, product version, a salt) into a string and generate a SHA1() hash from that, then encrypt the hash with my private key. On the client, build the SHA1() hash from the same information, then decrypt the license with the public key and see if I've got a match. Since this is a Mac app, I looked at AquaticPrime, but that generates a relatively large license file rather than a string. I can work with that if I must, but as a user I really like the convenience of a license key that I can read and print. I also looked at CocoaFob which does generate a key, but it is so long that I'd want to deliver it as a file anyway. I fooled around with OpenSSL for a while but couldn't come up with anything of a reasonable length. So...am I missing something obvious here? Is there a way to generate and boil down an asymmetrically encrypted hash to a reasonable number of unambiguous, human readable characters? I'm open to buying a solution. But I work on a number of different of platforms, so I'd want something portable. Everything I've looked at so far has been platform specific. Many, many thanks for a solution! PS - Yes, I know it will still be cracked. I'm trying to come up with something reasonable that, as a user, I would still find friendly.

    Read the article

  • ignore firebug console when not installed

    - by Richard
    I use Firebug's console.log() for debugging my website. If I try viewing my website in browsers without Firebug then I get a console is not defined error. Is there a way to gracefully avoid this error? I found this potential solution, but it seems a bit cumbersome. And ideas?

    Read the article

  • Help - Three20 Distribution Build

    - by Lukas
    Hey there, I just wanted to build my App for submitting it to the AppStore - it includes the widely used three20 framework. As the Debug Versions on the Dev-Devices worked great, i'm having trouble compiling the project for distribution. XCode says: No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv6, VALID_ARCHS=i386). Any idea what's happening there? I've tried to google it, but i haven't found a solution yet. Thanks!

    Read the article

  • pager problem with drupal and taxonomy

    - by andersandersson666
    Ok, so this is probably a silly question, but i thought i'd put it out there anyway: I know it's a strange solution to a simple problem, but i needed to control the listing of the nodes in the taxonomy pages, which i didn't feel i got the traditional way. So i went ahead and created a module that fetches the nodes based on taxonomy (taxonomy_select_nodes()), and i wanted a pager to go along with that. Here's the code: function theModule_recipeList(){ $path = drupal_get_path_alias($_GET['q']); $args = explode("/",$path); $themePath = drupal_get_path("theme", "theTheme"); $term = taxonomy_get_term_by_name($args[1]); $tid = $term[0]->tid; $nodes = taxonomy_select_nodes(array($tid)); $output = "<div id='recipeListWrapper'>"; while($row = db_fetch_object($nodes)){ $node = node_load($row->nid); if($node->uid != 1){ $userClass="user"; } else{ $userClass="admin"; } $output .= " <div class='receptThumbnailWrapper'> <div class='wrapper'> <img src='".base_path().$themePath."/graphics/recept-default-small.png' /> <h3><a href='".base_path() . $node->path."'>".$node->title."</a></h3> <div class='recipeType $userClass'></div> </div> </div> "; } $output .= "</div>"; return $output; } Now, the module works as i planned and all (even though it is a duct tape sort of solution, i know), and the pager prints and works. The problem is that the pager prints before anything else. I suspect that it is because i call taxonomy_select_nodes before $output is returned, but i need it to get the nodes i want. Please, any suggestions is greatly appreciated. /Anders

    Read the article

  • Apostrophe turning to question mark when using php handler in .htaccess

    - by Tony Deefer
    I have a .htm page on a site, that for reasons I won't go into cannot be renamed .php I have added some php code to the top of the page, (sets a cookie and redirects to another page) and added the following to .htaccess to parse the .htm file as php AddHandler application/x-httpd-php5 .html .htm As soon as this is added to .htaccess all apostrophe's change into questions marks. Using charset UTF-8 Can anyone offer a solution that does not involve renaming the file .php? Many thanks

    Read the article

  • Finding whether two geo-coordinates lie on the same road

    - by Amarsh
    Hi there, Given two geo-coordinates in (latitude,longitude) format, is it possible to find out if they lie on the same road? I want to do this programatically not visually. I can perhaps extract addresses and compare the street name, but since streets can change names over a long distance, this solution doesnt sem to work :( Cheers Amarsh

    Read the article

< Previous Page | 350 351 352 353 354 355 356 357 358 359 360 361  | Next Page >