Commit Graph

52 Commits

Author SHA1 Message Date
Markus Ewald
374152cd63 Added XNA 4.0 for Windows Phone 7 project; updated Nuclex.Support to compile targeting Windows Phone 7
git-svn-id: file:///srv/devel/repo-conversion/nusu@203 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-09-17 15:29:22 +00:00
Markus Ewald
1aad371ece Added XNA 4.0 XBox 360 project; fixed compilation errors that would result from compiling Nuclex.Support on the XBox 360's special compact framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@202 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-09-17 01:43:00 +00:00
Markus Ewald
5f5b8b519b Updated license statement for the year 2010 ;-)
git-svn-id: file:///srv/devel/repo-conversion/nusu@201 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-07-08 12:37:39 +00:00
Markus Ewald
2b94c316f6 Split Scheduler class into two files, one containing only the static time source management code (which I might decide to put somewhere else after all); added an option for users of the scheduler to query the scheduler's time source; fixed typo
git-svn-id: file:///srv/devel/repo-conversion/nusu@191 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-03-03 20:47:45 +00:00
Markus Ewald
237fb57fc8 Added an interface for the scheduler service (this might be once candidate for replacement by different implementations); added a new helper class for the StringBuilder that allows garbage-free appending of integers and floats; added unit tests for most of the code
git-svn-id: file:///srv/devel/repo-conversion/nusu@188 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-02-11 21:07:04 +00:00
Markus Ewald
35b1ca742d OperationQueue now attempts to prevent deep call stack nesting levels by looping when an Operation fired its AsyncEnded event synchronously; the OperationQueue's current operation index is now handled using the Interlocked methods, fixing a possible thread safety issue
git-svn-id: file:///srv/devel/repo-conversion/nusu@170 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-08-28 20:27:15 +00:00
Markus Ewald
2472c892fb Added a note about an unexplained exception that happened one time whilst executing the unit tests
git-svn-id: file:///srv/devel/repo-conversion/nusu@169 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-08-05 21:25:28 +00:00
Markus Ewald
74bf351727 Changed all remaining COMPACTFRAMEWORK constants around serialization code to NO_SERIALIZATION
git-svn-id: file:///srv/devel/repo-conversion/nusu@157 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-26 20:17:59 +00:00
Markus Ewald
8f16d09c8a Fixed compilation error on XBox 360
git-svn-id: file:///srv/devel/repo-conversion/nusu@156 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-25 19:36:18 +00:00
Markus Ewald
5d36825fc8 Attempt to fix a possible bug in the generic time source class which could potentially attempt to construct an instance of System.DateTime with an invalid tick count
git-svn-id: file:///srv/devel/repo-conversion/nusu@155 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-24 20:24:21 +00:00
Markus Ewald
839d46ecf1 The CommandLine class didn't construct command lines with empty arguments correctly (these need to be passed as empty quotes to be recognizable as an argument), fixed; added unit tests that exposes this bug; some minor cosmetic fixes
git-svn-id: file:///srv/devel/repo-conversion/nusu@154 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-24 19:20:26 +00:00
Markus Ewald
ce9a6bc932 Added a unit tests that reproduces the bug fixed in the previous commit
git-svn-id: file:///srv/devel/repo-conversion/nusu@153 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-22 18:54:12 +00:00
Markus Ewald
f8adca9e17 Fixed a glaring bug in the Scheduler causing errors when the scheduler's last item in the queue is cancelled
git-svn-id: file:///srv/devel/repo-conversion/nusu@152 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-22 18:14:45 +00:00
Markus Ewald
4fd22afcc0 Fixed two small typos
git-svn-id: file:///srv/devel/repo-conversion/nusu@149 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-15 20:15:43 +00:00
Markus Ewald
6d7f4d11af Minor cosmetic fix in comment
git-svn-id: file:///srv/devel/repo-conversion/nusu@148 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-09 19:49:55 +00:00
Markus Ewald
d6ddf04f58 On very quickly scheduled recurrent notifications, it was still possible for the wait time to become negative due to the passage of time - now the scheduler will only use the WaitOne() method when the remaining time until notification is positive
git-svn-id: file:///srv/devel/repo-conversion/nusu@147 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-09 19:47:30 +00:00
Markus Ewald
6b8362d57d Fixed a nasty bug that would make the scheduler queue notifications using their delay time as absolute notification time, causing negative numbers to be passed to WaitOne(); updated unit test to expose this problem if it happens
git-svn-id: file:///srv/devel/repo-conversion/nusu@146 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-09 19:41:38 +00:00
Markus Ewald
a6f7749121 Moved the checkForTimeAdjustment() method in the generic time source behind the WaitOne() call because that's the most likely point for a date/time adjustment will have occurred at; WindowsTimeSource now exists on the XBox 360 as well, but will throw in its constructor and report Available as false (this simplifies things in other places); Scheduler class is fully working and 100% testable with simulated time (instead of waiting for scheduled notifications to be delivered in real time, which would make testing slow); added unit tests for Scheduler class and reached 100% coverage
git-svn-id: file:///srv/devel/repo-conversion/nusu@145 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-09 19:28:11 +00:00
Markus Ewald
4b9002b520 Renamed DefaultTimeSource to GenericTimeSource; the generic time source will now detect when the system date/time is adjusted; made some progress on the Scheduler implementation; wrote some unit tests for the Scheduler class
git-svn-id: file:///srv/devel/repo-conversion/nusu@144 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-08 20:32:14 +00:00
Markus Ewald
2426868cce Improved comments in various places; disabled all classes in the 'Services' namespace, including the type listers; added scheduler class which will act sort of like the cron daemon on unix machines; defined a time source interface so I can manually advance time instead of waiting in the unit tests; created two time sources, a generic one for all platforms and a windows specific one that will notice when the system time is adjusted
git-svn-id: file:///srv/devel/repo-conversion/nusu@143 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-06-04 19:32:15 +00:00
Markus Ewald
d0fe47239e Replaced all ExpectedExceptionAttributes with the new Assert.Throws<>() method to work around a compatibility issue between TeamCity 4.5 and NUnit 2.5 Final
git-svn-id: file:///srv/devel/repo-conversion/nusu@137 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-05-07 19:36:27 +00:00
Markus Ewald
7e9e0e2bf1 Made code in OperationQueue more readable; added new class PartialStream which wraps a segment of a larger stream as if it was a separate stream, allowing access to certain regions of a stream to be prohibited and headers of a stream to be cut off without requiring a lengthy copy operation
git-svn-id: file:///srv/devel/repo-conversion/nusu@134 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-05-05 19:31:05 +00:00
Markus Ewald
23c1b1587a Minor code reformat in command line parser; fixed Copy & Paste error in comments for exception unit test classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@127 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-04-03 19:19:10 +00:00
Markus Ewald
8dc15e8515 Upgraded Nuclex.Support to NUnit 2.5 Beta 1
git-svn-id: file:///srv/devel/repo-conversion/nusu@114 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-13 19:30:33 +00:00
Markus Ewald
0a483b4d44 Made Nuclex.Support compileable on the XBox 360; added new XNA 3.0 project to compile Nuclex.Support on the XBox 360; added my own AssemblyLoadEventArgs implementation since the XBox 360 XNA framework doesn't provide it; other minor fixes so Nuclex.Support can cope with the XBox 360 XNA framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@113 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-13 18:50:52 +00:00
Markus Ewald
6eb49ed0d2 Updated copyright statement to include the year 2009 =); finally decided to make some of the NUnit assert helper methods public and include it in Nuclex.Support (yes, that means those methods won't be there in a build with unit testing disabled, a compromise accepted now)
git-svn-id: file:///srv/devel/repo-conversion/nusu@111 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-07 19:05:29 +00:00
Markus Ewald
88b51ef0fa Eliminated warnings that still came up when compiling with the mono C# compiler; all classes in the Nuclex.Support.Scheduling namespace now have 100% test coverage
git-svn-id: file:///srv/devel/repo-conversion/nusu@103 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-07 19:36:29 +00:00
Markus Ewald
00caebf7e9 Achieved 100% test coverage for all classes in the Nuclex.Support.Tracking namespace; wrote unit tests for the AbortedException class
git-svn-id: file:///srv/devel/repo-conversion/nusu@102 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-07 19:01:43 +00:00
Markus Ewald
8c5f2d45f7 Renamed Waitable to Transaction (Progression -> Waitable -> Transaction -- might it be that this concept is no crispy enough and should be revisited? I think so!); increased test coverage for lots of classes in the tracking namespace, all but 3 are now 100% covered; eliminated redundant ProgressUpdate events from the ProgressTracker and adjusted unit tests so progress update events that re-report the current progress are optional; added a new idea for a replacement of the broken (quality-wise, at least) command line parser
git-svn-id: file:///srv/devel/repo-conversion/nusu@100 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-03 18:58:20 +00:00
Markus Ewald
b0e76b4800 Fixed 3 compiler warnings that were occurring in Nuclex.Support; minor improvements to the documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@90 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-14 21:14:40 +00:00
Markus Ewald
86d915f9f0 Moved packing algorithms, spatial partitioning system and serialization helpers from Nuclex.Support to Nuclex.Game; minor improvements in documentation; AbortedException no longer derives from ApplicationException; added document that gives an overview of several R-Tree splitting techniques I found on the 'net
git-svn-id: file:///srv/devel/repo-conversion/nusu@86 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-01 20:55:43 +00:00
Markus Ewald
7bff8c5d52 All remaining references to the old name of the waitable class, 'progression' changed to 'waitable'; QueueOperation renamed to OperationQueue; SetProgression renamed to WaitableGroup; improved documentation in various places
git-svn-id: file:///srv/devel/repo-conversion/nusu@78 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-11 20:28:08 +00:00
Markus Ewald
26cb8c08af Fixed errors introduced into the unit tests by the lengthy rename operation earlier this day
git-svn-id: file:///srv/devel/repo-conversion/nusu@68 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-27 18:45:09 +00:00
Markus Ewald
432ab888b9 Renamed ProgressionTracker to ProgressTracker; renamed most classes with 'Progression' in their name to use 'Waitable' instead; some minor documentation fixes
git-svn-id: file:///srv/devel/repo-conversion/nusu@65 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 21:20:52 +00:00
Markus Ewald
7dbfc3c422 Renamed ProgressUpdated event to ProgressChanged in order to conform with the status report naming convention; removed progress reporting from the Progression class; moved progress reporting into its own interface which is now optional to implement for any background task; renamed Progression to Waitable since it no longer has anything to do with progress; fixed unit tests
git-svn-id: file:///srv/devel/repo-conversion/nusu@64 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 21:03:49 +00:00
Markus Ewald
1161ef8f25 Trimmed down the Request class and provided it with a clear way to pass results to the user of the request
git-svn-id: file:///srv/devel/repo-conversion/nusu@63 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 20:20:38 +00:00
Markus Ewald
c21ba759cc Renamed FailableOperation to Request, this is a much shorter name that better represents the concept implemented by the class
git-svn-id: file:///srv/devel/repo-conversion/nusu@62 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 19:52:28 +00:00
Markus Ewald
533cbba3c5 Moved the failure handling of asynchronous processes from the Operation class into a new intermediate class, FailableProgression; renamed Begin() to Start() in Operation to keep it more in line with System.Threading.Thread; renamed End() method to Join() in the new FailableProgression class for the same reason; improved documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@61 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-02-07 21:25:34 +00:00
Markus Ewald
d59753b98d Moved all contents of the Nuclex.Plugins project into the Nuclex.Support project; added copyright notices to all files imported from Nuclex.Plugins; updated copyright span year in all copyright notices; minor documentation improvements
git-svn-id: file:///srv/devel/repo-conversion/nusu@59 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-01-07 18:04:02 +00:00
Markus Ewald
99312edc17 Removed commented out progression start events entirely in progress tracking framework, no cases found were it would have been of use
git-svn-id: file:///srv/devel/repo-conversion/nusu@46 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-05 20:09:35 +00:00
Markus Ewald
4b0d3d26cc Some lesser XML documentation improvements
git-svn-id: file:///srv/devel/repo-conversion/nusu@44 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-08-31 21:24:40 +00:00
Markus Ewald
caeee49f4a Added an empty line between the license section and the using statements; fixed a wrong comment in ObservableCollection.cs
git-svn-id: file:///srv/devel/repo-conversion/nusu@43 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-24 20:15:19 +00:00
Markus Ewald
acbb07d6b5 Some more unit tests; improved documentation; improve useless speed optimization of an exceptional case
git-svn-id: file:///srv/devel/repo-conversion/nusu@39 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-12 22:16:11 +00:00
Markus Ewald
ba1cee917d Redesigned the Collection framework to incorporate a more general variant of the ObservableCollection<> class; ParentingCollection class now makes use of this new inbetween class; ParentingCollection now has a cleaner way to dispose its members than the original InternalDispose() method
git-svn-id: file:///srv/devel/repo-conversion/nusu@37 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-10 19:25:18 +00:00
Markus Ewald
4933604495 Queue operation fully implemented; added small unit test for queue operation; some comment improvements in other code sections
git-svn-id: file:///srv/devel/repo-conversion/nusu@36 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-10 18:15:34 +00:00
Markus Ewald
850db0cded Fully implemented the ProgressionTracker and created some NMock-assisted unit tests for validating its proper functioning
git-svn-id: file:///srv/devel/repo-conversion/nusu@35 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-09 21:41:21 +00:00
Markus Ewald
344e5fac53 Began implementing the ProgressionTracker
git-svn-id: file:///srv/devel/repo-conversion/nusu@34 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-05 20:02:02 +00:00
Markus Ewald
46c0ac68af Found a probably good implementation for the Operation class
git-svn-id: file:///srv/devel/repo-conversion/nusu@33 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-04 19:19:48 +00:00
Markus Ewald
1ae0c7de63 Added an AsyncStarted event to the progression class, currently disabled for further consideration; set up the outline of a new spatial partitioning framework with an R*-Tree implementation; new AbortedException for indicating that a process was forcefully aborted
git-svn-id: file:///srv/devel/repo-conversion/nusu@31 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-01 19:27:40 +00:00
Markus Ewald
d09bb30cec Added a small rectangle packing library for optimally arranging smaller rectangles within one larger rectangle
git-svn-id: file:///srv/devel/repo-conversion/nusu@19 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-16 20:28:23 +00:00