#import "HBOutputFileWriter.h"
+NS_ASSUME_NONNULL_BEGIN
+
@class HBJob;
/**
*/
@interface HBJobOutputFileWriter : HBOutputFileWriter
-- (instancetype)initWithJob:(HBJob *)job NS_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithJob:(HBJob *)job NS_DESIGNATED_INITIALIZER;
@end
+
+NS_ASSUME_NONNULL_END
@implementation HBJobOutputFileWriter
-- (instancetype)initWithJob:(HBJob *)job
+- (nullable instancetype)initWithJob:(HBJob *)job
{
NSURL *outputURL= job.destURL;
#import <Foundation/Foundation.h>
#import "HBOutputRedirect.h"
+NS_ASSUME_NONNULL_BEGIN
+
/**
* This class is used to listen to HBOutputRedirect
* and write the output to a file.
*/
@interface HBOutputFileWriter : NSObject <HBOutputRedirectListening>
-- (instancetype)initWithFileURL:(NSURL *)url;
+- (nullable instancetype)initWithFileURL:(NSURL *)url;
- (void)write:(NSString *)text;
- (void)clear;
@property (nonatomic, readonly) NSURL *url;
@end
+
+NS_ASSUME_NONNULL_END
FILE *f;
}
-- (instancetype)initWithFileURL:(NSURL *)url;
+- (nullable instancetype)initWithFileURL:(NSURL *)url;
{
self = [super init];
if (self)
{
-
- [[NSFileManager defaultManager] createDirectoryAtPath:url.URLByDeletingLastPathComponent.path
- withIntermediateDirectories:YES
- attributes:nil
- error:NULL];
+ NSError *error;
+ BOOL result;
+ result = [[NSFileManager defaultManager] createDirectoryAtPath:url.URLByDeletingLastPathComponent.path
+ withIntermediateDirectories:YES
+ attributes:nil
+ error:&error];
+ if (!result)
+ {
+ [HBUtilities writeToActivityLog:"Error: coudln't open activity log file, %@", error];
+ return nil;
+ }
_url = [url copy];
+
f = fopen(url.path.fileSystemRepresentation, "w");
+ if (!f)
+ {
+ return nil;
+ }
+
f = freopen(NULL, "a", f);
+ if (!f)
+ {
+ return nil;
+ }
[self writeHeaderForReason:@"Session"];
}
#import <Foundation/Foundation.h>
+NS_ASSUME_NONNULL_BEGIN
@protocol HBOutputRedirectListening <NSObject>
- (void)removeListener:(id <HBOutputRedirectListening>)aListener;
@end
+
+NS_ASSUME_NONNULL_END