//
//  RootViewController.m
//  Creating Concurrency with Threads
//
//  Created by Vandad Nahavandipoor on 14/07/2011.
//  Copyright 2011 Pixolity Ltd. All rights reserved.
//

#import "RootViewController.h"

@implementation RootViewController

@synthesize myThread;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Miejsce na kod inicjalizacyjny.
    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Usunięcie widoków, które nie posiadają widoku nadrzędnego.
    [super didReceiveMemoryWarning];
    
    // Usunięcie wszelkich buforowanych danych, obrazów itd., które nie są obecnie używane.
}

#pragma mark - Cykl życiowy widoku

/* 1 */
//- (void) downloadNewFile:(id)paramObject{
//  
//  @autoreleasepool {
//    NSString *fileURL = (NSString *)paramObject;
//    
//    NSURL    *url = [NSURL URLWithString:fileURL];
//    
//    NSURLRequest *request = [NSURLRequest requestWithURL:url];
//    
//    NSURLResponse *response = nil;
//    NSError       *error = nil;
//    
//    NSData *downloadedData = 
//    [NSURLConnection sendSynchronousRequest:request
//                          returningResponse:&response
//                                      error:&error];
//    
//    if ([downloadedData length] > 0){
//      /* W pełni pobrane dane. */
//    } else {
//      /* Nie zostały pobrane żadne dane. Sprawdź wartość Error. */
//    }
//  }
//  
//}
//
//- (void)viewDidLoad {
//  [super viewDidLoad];
//  
//  NSString *fileToDownload = @"http://www.helion.pl";
//  
//  [NSThread detachNewThreadSelector:@selector(downloadNewFile:) 
//                           toTarget:self 
//                         withObject:fileToDownload];
//  
//}


/* 2 */
//- (void) firstCounter{
//  
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Pierwszy licznik = %lu", (unsigned long)counter);
//  }
//  
//}
//
//- (void) secondCounter{
//  
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Drugi licznik = %lu", (unsigned long)counter);
//  }
//  
//}
//
//- (void) thirdCounter{
//  
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Trzeci licznik = %lu", (unsigned long)counter);
//  }
//  
//}

/* 3 */
//- (void) firstCounter{
//  
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Pierwszy licznik = %lu", (unsigned long)counter);
//  }
//  
//}
//
//- (void) secondCounter{
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Drugi licznik = %lu", (unsigned long)counter);
//  }
//  
//}
//
//- (void) thirdCounter{
//  
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Trzeci licznik = %lu", (unsigned long)counter);
//  }
//  
//}
//
//- (void) viewDidLoad{
//  [super viewDidLoad];
//  [self firstCounter];
//  [self secondCounter];
//  [self thirdCounter];
//}

/* 4 */
//- (void) firstCounter{
//  
//  @autoreleasepool {
//    NSUInteger counter = 0;
//    for (counter = 0;
//         counter < 1000;
//         counter++){
//      NSLog(@"Pierwszy licznik = %lu", (unsigned long)counter);
//    }
//  }
//  
//}
//
//- (void) secondCounter{
//  
//  @autoreleasepool {
//    NSUInteger counter = 0;
//    for (counter = 0;
//         counter < 1000;
//         counter++){
//      NSLog(@"Drugi licznik = %lu", (unsigned long)counter);
//    }
//  }
//  
//}
//
//- (void) thirdCounter{
//  
//  NSUInteger counter = 0;
//  for (counter = 0;
//       counter < 1000;
//       counter++){
//    NSLog(@"Trzeci licznik = %lu", (unsigned long)counter);
//  }
//  
//}
//
//- (void)viewDidLoad {
//  
//  [super viewDidLoad];
//  
//  [NSThread detachNewThreadSelector:@selector(firstCounter)
//                           toTarget:self
//                         withObject:nil];
//  
//  
//  [NSThread detachNewThreadSelector:@selector(secondCounter)
//                           toTarget:self
//                         withObject:nil];
//  
//  /* Trzeci licznik będzie wykonany w wątku głównym. */
//  [self thirdCounter];
//  
//}

/* 5 */
//- (void) autoreleaseThread:(id)paramSender{
//  
//  NSBundle *mainBundle = [NSBundle mainBundle];
//  NSString *filePath = [mainBundle pathForResource:@"AnImage"
//                                            ofType:@"png"];
//  
//  UIImage *image = [UIImage imageWithContentsOfFile:filePath];
//  
//  /* Dowolne operacje na obrazie. */
//  NSLog(@"Obraz = %@", image);
//  
//}
//
//- (void)viewDidLoad {
//  
//  [super viewDidLoad];
//  
//  [NSThread detachNewThreadSelector:@selector(autoreleaseThread:)
//                           toTarget:self
//                         withObject:self];
//  
//}

/* 6 */
- (void) autoreleaseThread:(id)paramSender{
  
  @autoreleasepool {
    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *filePath = [mainBundle pathForResource:@"AnImage"
                                              ofType:@"png"];
    
    UIImage *image = [UIImage imageWithContentsOfFile:filePath];
    
    /* Dowolne operacje na obrazie. */
    NSLog(@"Obraz = %@", image);
  }
  
}

- (void)viewDidLoad {
  
  [super viewDidLoad];
  
  [NSThread detachNewThreadSelector:@selector(autoreleaseThread:)
                           toTarget:self
                         withObject:self];
  
}


//- (void)viewDidLoad {
//  
//  [super viewDidLoad];
//  
//  [NSThread detachNewThreadSelector:@selector(autoreleaseThread:)
//                           toTarget:self
//                         withObject:self];
//  
//}


//- (void)viewDidLoad {
//  
//  [super viewDidLoad];
//  
//  NSThread *newThread = 
//  [[NSThread alloc] initWithTarget:self
//                          selector:@selector(autoreleaseThread:)
//                            object:self];
//  
//  [newThread start];
//  self.myThread = newThread;
//  [newThread release];
//  
//  
//}


- (IBAction)      performButtonAction:(id)Sender{
  
}

/*
// Implementacja metody loadView w celu programowego utworzenia hierarchii widoku bez używania pliku nib.
- (void)loadView
{
}
*/

/*
// Implementacja metody viewDidLoad w celu przeprowadzenia wszelkiej konfiguacji dodatkowej po wczytaniu widoku, najczęściej z pliku nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
}
*/


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Zwrot wartości YES dla obsługiwanych układów.
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end
