USBLoggerController.h [plain text]
#import <Cocoa/Cocoa.h>
#import <Security/Authorization.h>
#import <Security/AuthorizationTags.h>
#import <sys/wait.h>
#import "USBLogger.h"
#define LOGGER_REFRESH_INTERVAL 0.1
@interface LoggerEntry : NSObject
{
NSString * _text;
int _level;
}
+ (void)initialize;
+ (void)replenishFreshEntries;
+ (LoggerEntry *)cachedFreshEntry;
- init;
- initWithText:(NSString *)text level:(int)level;
- (void)setText:(NSString *)text level:(int)level;
- (NSString *)text;
- (int)level;
@end
@interface USBLoggerController : NSObject <USBLoggerListener>
{
IBOutlet id DumpCheckBox;
IBOutlet id FilterTextField;
IBOutlet id FilterProgressIndicator;
IBOutlet id LoggerOutputTV;
IBOutlet id LoggingLevelPopUp;
IBOutlet id StartStopButton;
NSMutableArray * _outputLines;
NSMutableString * _outputBuffer;
NSLock * _bufferLock;
NSLock * _outputLock;
NSString * _currentFilterString;
FILE * _dumpingFile;
USBLogger * _logger;
NSTimer * _refreshTimer;
BOOL _klogKextisPresent;
BOOL _klogKextIsCorrectRevision;
}
- (void)setupRecentSearchesMenu;
- (IBAction)ChangeLoggingLevel:(id)sender;
- (IBAction)ClearOutput:(id)sender;
- (IBAction)MarkOutput:(id)sender;
- (IBAction)SaveOutput:(id)sender;
- (IBAction)Start:(id)sender;
- (void)actuallyStartLogging;
- (IBAction)Stop:(id)sender;
- (IBAction)ToggleDumping:(id)sender;
- (IBAction)FilterOutput:(id)sender;
- (BOOL)isKlogKextPresent;
- (BOOL)isKlogCorrectRevision;
- (BOOL)installKLogKext;
- (BOOL)removeAndinstallKLogKext;
- (NSArray *)logEntries;
- (NSArray *)displayedLogLines;
- (void)scrollToVisibleLine:(NSString *)line;
- (void)handlePendingOutput:(NSTimer *)timer;
- (void)appendOutput:(NSString *)aString atLevel:(NSNumber *)level;
- (void)appendLoggerEntry:(LoggerEntry *)entry;
- (void)usbLoggerTextAvailable:(NSString *)text forLevel:(int)level;
@end