Search Results

Search found 42646 results on 1706 pages for 'vbox question'.

Page 573/1706 | < Previous Page | 569 570 571 572 573 574 575 576 577 578 579 580  | 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

  • What problem does Peaberry for Guice solve?

    - by Benju
    I understand the problem that OSGI solved thanks to this question.... http://stackoverflow.com/questions/106222/what-does-osgi-solve And I am already convinved that Guice is amazing so I'm curious what this OSGI integration for Guice known as "peaberry" is supposed to do, it seems to be popping up everywhere, even in Maven 3 presentations. http://code.google.com/p/peaberry/

    Read the article

  • jquery tabs css fluid layout

    - by Eagletrophy
    hi guys, quick question. I have a tabbed interface for my site but I have all the parts of the site crashing into each other. How do I achieve a fluid layout where it simply resizes when the display is smaller. I read a few articles @ alistapart and made my containing div relative to the browser window and every other div within the d container relative and still nothing. any clues on what else I should be trying?

    Read the article

  • Which version of MSXML should I use?

    - by Cheeso
    Seems like this would be a common question, though I could not find it on SO. Which version of MSXML should I use in my applications, and more importantly, how should I decide? There is MSXML3, 4, 5 and 6. I recently posted some code in calling-wcf-service-by-vbscript that used MSXML v4. AnthonyWJones posted that I shouldn't use 4, but instead 3 or 6, but probably 3. Certainly not v5! Why? I'd like to know more about the criteria for selecting the version of MSXML to use in my apps. Bonus question: Does anyone have a summary of the differences between the various versions of MSXML over time? Summary so far: MSXML6 Should be first choice. was released in 2006, and includes perf and compliance fixes. Use this if you can. It's good. There are no merge modules; to bundle the MSXML6 runtime with your app, MS suggests packaging the MSXML6 msi file. MSXML6 is an upgrade from MSXML3/4 but does not replace them, because it discontinues some features. You can get the MSI here. MSXML3 Second choice. Most widely deployed version. Originally shipped in March 2000. Actively maintained, no new features. Currently supported, if you are on SP5 (shipped in 2005) or later. SP7 is current (also from 2005). MSXML5 was released only as part of MS-Office. Currently supported by Microsoft, but only as part of Office, not for building apps. Don't build apps that depend on MSXML5: Verboten. MSXML4 originally shipped? Currently in "maintenance mode". Microsoft is encouraging people to move off MSXML4 to MSXML6. Currently supported if you are on MSXML4SP2 or later, which shipped in 2003. download MSXML4SP2 here. Can be redisributed. Using the right version of MSXML in Internet Explorer is a good entry on the blog from Microsoft's xmlteam.

    Read the article

  • Irc server for ubuntu

    - by Ralphz
    The Ubuntu WIKI https://help.ubuntu.com/community/IrcServer it lists few IRC servers you can use in Ubuntu. My question is which one is you favorite one and more secure. I will also need one that will allow me to monitor rooms for regular expressions and run some scripts if regexp matches. Thanks

    Read the article

  • Protect .net Web Service URL

    - by Nirmal
    Hello All... I have created Web Service using Asp.net 3.5. Now it's working perfectly in live windows server, and giving me perfect xml while invoking it using some url like : http://www.somedomain.com/Service.asmx?op=fetchData Now My question is when I am accessing url like : http://www.somedomain.com/Service.asmx it's listing my created web services. What if I don't wanna list down the available web services to end users. Thanks in advance...

    Read the article

  • indentation preference and personality

    - by dreftymac
    This question is similar in spirit to : http://stackoverflow.com/questions/492178/links-between-personality-types-and-language-technology-preferences But it is based specifically on indentation (spaces vs tabs and the number of spaces). The reason I am asking here instead of searching is because I remember seeing a specific document writing about this. If I remember correctly, it also talked about why Linus prefers eight spaces.

    Read the article

  • How to escape trailing backslash in NVelocity

    - by Ben
    I am using NVelocity to process various PowerShell scripts before they are executed against a server. My question is how to escape a backslash trailing a variable: e.g. ls \\$computername\c$ $computername should be replaced with a valid computer name at runtime, but the trailing backslash (\c$) means that it does not. Thanks Ben

    Read the article

  • RTP session with Gstreamer

    - by Walidix
    I'm newbie with Gstreamer and I'm trying to use it in order to make a RTP session I can make a Gstrtpbin sender and a Gstrtpbin receiver separately but I can not make the same Gstrtpbin as sender and receiver in the same time. My question: Is it possible to do it ??? If it is, I will be thankful for a simple example with the C language.

    Read the article

  • Fast file search algorithm for IP addresses

    - by Dave Jarvis
    Question What is the fastest way to find if an IP address exists in a file that contains IP addresses sorted as: 219.93.88.62 219.94.181.87 219.94.193.96 220.1.72.201 220.110.162.50 220.126.52.187 220.126.52.247 Constraints No database (e.g., MySQL, PostgreSQL, Oracle, etc.). Infrequent pre-processing is allowed (see possibilities section) Would be nice not to have to load the file each query (131Kb) Uses under 5 megabytes of disk space File Details One IP address per line 9500+ lines Possible Solutions Create a directory hierarchy (radix tree?) then use is_dir() (sadly, this uses 87 megabytes)

    Read the article

  • TI MSP430 Interrupt source

    - by TheDelChop
    Guys, I know that when working with the MSP430F2619 and TI's CCSv4, I can get more than one interrupt to use the same interrupt handler with code that looks something like this: #pragma vector=TIMERA1_VECTOR #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void){ ServiceWatchdogTimer(); } My question is, when I find myself in that interrupt, is there a way to figure out which one of these interrupts got me here? Thank you, Joe

    Read the article

  • Running a Java daemon with a GWT front-end served by embedded Jetty

    - by BinaryMuse
    Greetings, coders, Background Info and Code I am trying to create a daemon-type program (e.g., it runs constantly, polling for things to do) that is managed by a GWT application (servlets in a WAR) which is in turn served by an embedded Jetty server (using a WebAppContext). I'm having problems making the GWT application aware of the daemon object. For testing things, I currently have two projects: The daemon and embedded Jetty server in one (EmbJetTest), and the GWT application in another (DefaultApp). This is the current state of the code: First, EmbJetTest creates an embedded Jetty server like so, using a ServletContextListener to inject the daemon object into the web application context: EmbJetTest.server = new Server(8080); // Create and start the daemon Daemon daemon = new Daemon(); Thread thread = new Thread(daemon); thread.start(); // war handler WebAppContext waContext = new WebAppContext(); waContext.setContextPath("/webapp"); waContext.setWar("./apps/DefaultApp.war"); waContext.addEventListener(new DaemonLoader(daemon)); // Add it to the server EmbJetTest.server.setHandler(waContext); EmbJetTest.server.setThreadPool(new QueuedThreadPool(10)); // Start the server; join() blocks until we shut down EmbJetTest.server.start(); EmbJetTest.server.join(); // Stop the daemon thread daemon.stopLoop(); Daemon is a very simple object with a couple properties, at the moment. DaemonLoader is the following ServletContextListener implementation: private Daemon daemon; public DaemonLoader(Daemon daemon) { this.daemon = daemon; } @Override public void contextDestroyed(ServletContextEvent arg0) { } @Override public void contextInitialized(ServletContextEvent arg0) { arg0.getServletContext().setAttribute("daemon", this.daemon); } Then, in one of my servlets in the GWT application, I have the following code: Daemon daemon = (Daemon) this.getServletContext().getAttribute("daemon"); However, when I visit localhost:8080/webapp/* and invoke the servlet, this code throws a ClassCastException, even though the classes are of the same type. This StackOverflow answer indicates that this is because the two classes are loaded with different classloaders. Question My question is twofold. Am I even on the right track here? Am I going about this completely the wrong way? Something tells me I am, but I can't think of another way to make the daemon available to both applications. Is there a better way to communicate with the daemon from the GWT application? Should the GWT app own the daemon and somehow start the daemon itself? The daemon needs to run even if no one visits the one of the GWT app's servlets--how could I do this? If I am on the right track, how can I get around the classloader issue? Thanks in advance.

    Read the article

  • How are hash functions like MD5 unique?

    - by Aly
    Im aware that MD5 has had some collisions but this is more of a high level question about hashing functions. If MD5 hashes any arbitrary string into a 32-digit hex value, then according to the Pigeonhole Principle surely this can not be unique as there are more unique arbitrary strings than there are unique 32-digit hex values

    Read the article

  • Embedding JARs into the OSGi bundle with maven-bundle-plugin

    - by Ivan Dubrov
    I’m trying to embed some JARs into single OSGi bundle using the feature of maven-bundle-plugin The thing that worries me is that all packages of embedded JARs are put into the Import-Package header of the generated MANIFEST.MF. If I specify explicitly to use only the packages I need, like in the following snippet: Import-Package: org.osgi.framework The build fails with BND error (unresolved references). So, the question here is how can I build the bundle with embedded JARs with "Import-Package" header I need?

    Read the article

  • Salesforce: Fire a SOAP Outbound Message using Apex

    - by codeulike
    I have an existing Workflow Rule that fires of a (SOAP) Outbound Message when a certain type of object is created or updated. That works fine. I want to extend it so that a similar Outbound Message is also sent when the objects are deleted. According to this discussion, Workflow Rules cannot be made to fire based on object deletions, so I have to write an Apex Trigger instead. So the question is, how do I kick off a SOAP Outbound Message from within Apex?

    Read the article

  • Specifying a flex-config.xml with Maven / Flex Mojos

    - by Sophistifunk
    I have to port an existing project to Maven, and it includes a resource called "config.xml" that is copied to the deploy directory alongside the SWF and HTML, and loaded at run-time to locate a bunch of WSDLs. Flex Mojos has taken it upon itself to assume that my xml file is a flex-config file with instructions for the compiler, which of course promptly gives up the ghost. The question is: How do I specify a named config file for the compiler so that Maven stops this nonsense (as well as specifying my compile-time options)?

    Read the article

  • Does constantly checking the documentation make you a bad coder?

    - by cdburgess
    When writing PHP code for any given project, do you find you can write code off the top of your head? Or do you make multiple round trips to php.net? If it is the later, can you still be considered a good coder. This is a legitimate question as I find I have difficulty always remembering all of the functions that are available to me so I find I use php.net as a crutch. Is there anyway to improve this?

    Read the article

  • Removing table prefixes on ASP.NET MVC DataModel entities

    - by Tim Shults
    My database tables have prefixes on them and when the DataModel generates the EntityObjects they have the prefixes at the beginning of the class name. Is there anyway that I can have those prefixes ignored when the DataModel is updating/creating the classes? I've found the below question, but with no solution. http://stackoverflow.com/questions/1800065/removing-table-prefix-in-linq2sql-setup/2525827#2525827 Thanks in advance, Tim Shults

    Read the article

  • working python xml

    - by ricardo
    hello all, my question is the following, which is the best way of working XML (kml) with python?, especially script serializable. thanks for your attention and answers

    Read the article

  • Octave datatypes - float & double

    - by mush
    I'm writing a framework for writing HDF files with JAVA (Using some existing framework). I need to keep compatibility with octave. That is, octave should be able to read the files my framework writes and vice versa. My question is, does Octave have two data types - float and double or it uses only double? thanks

    Read the article

< Previous Page | 569 570 571 572 573 574 575 576 577 578 579 580  | Next Page >