X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=blobdiff_plain;f=CheatServer.h;h=763197e22628ec91c9e1a4bf6999dd3750d6019a;hp=e313dbf56ee23c0de21bd7751155194a0cd943d6;hb=HEAD;hpb=42cf7bbe564d70233a0d73baee613f209eb00eb6 diff --git a/CheatServer.h b/CheatServer.h index e313dbf..763197e 100644 --- a/CheatServer.h +++ b/CheatServer.h @@ -1,104 +1,73 @@ -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Project: The Cheat -// -// File: CheatServer.h -// Created: Sun Sep 07 2003 -// -// Copyright: 2003 Chaz McGarvey. All rights reserved. -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/* + * The Cheat - The legendary universal game trainer for Mac OS X. + * http://www.brokenzipper.com/trac/wiki/TheCheat + * + * Copyright (c) 2003-2011, Charles McGarvey et al. + * + * Distributable under the terms and conditions of the 2-clause BSD + * license; see the file COPYING for the legal text of the license. + */ #import +#import "ChazLog.h" -#import "ServerDelegate.h" +#import "MySocket.h" -#include -#include +#import "ServerChild.h" -#include -#include -#include -#include -#include +@interface CheatServer : NSObject +{ + MySocket *_socket; // the socket that listens for connections + NSNetService *_netService; // for rendezvous broadcasting + + int _port; // port the socket is listening on + NSString *_name; // name the service is being broadcast as + + NSMutableArray *_children; // the server spawns + + id _delegate; +} -#include "cheat_types.h" -#include "cheat_net.h" +// initialization +- (id)initWithDelegate:(id)delegate; +// starting and stopping the server +// it will automatically be stopped on dealloc. +// pass nil for name to not broadcast. +- (BOOL)listenOnPort:(int)port broadcast:(NSString *)name; +- (void)stop; -@class SearchResults; +// accessing children +// children are spawned by the server to handle remote sessions. +// they are instances of the ServerChild class. +- (int)childCount; +- (NSArray *)children; +- (void)removeChildAtIndex:(unsigned)index; +// accessors +- (BOOL)isListening; +- (NSString *)host; +- (int)port; +- (NSString *)broadcast; -@interface CheatServer : NSObject -{ - id rootProxy; - int sockfd; +- (id)delegate; +- (void)setDelegate:(id)delegate; - pid_t processID; - vm_map_t processTask; +@end - BOOL processPaused; - NSMutableArray *searchResults; - NSMutableArray *searchResultsUndone; -} +@interface NSObject ( CheatServerDelegate ) -+ (NSConnection *)serverWithDelegate:(id)delegate socket:(int)sock; -+ (void)serverThread:(NSArray *)array; - -- (id)initWithRootProxy:(id)proxy; - -- (void)handleSocket:(int)sock; -- (void)run; - -- (void)setAddress:(NSString *)address; -- (void)setAction:(NSString *)action; - -- (void)firstSearchString8bit:(char const *)value size:(int)vsize; -- (void)firstSearchIntegerChar:(int8_t)value; -- (void)firstSearchIntegerShort:(int16_t)value; -- (void)firstSearchIntegerLong:(int32_t)value; -- (void)firstSearchDecimalFloat:(float)value; -- (void)firstSearchDecimalDouble:(double)value; - -- (void)searchString8bit:(char const *)value size:(int)vsize; -- (void)searchIntegerChar:(int8_t)value; -- (void)searchIntegerShort:(int16_t)value; -- (void)searchIntegerLong:(int32_t)value; -- (void)searchDecimalFloat:(float)value; -- (void)searchDecimalDouble:(double)value; - -- (void)changeString8bit:(char const *)value size:(int)vsize addresses:(TCaddress *)addresses count:(int)count; -- (void)changeIntegerChar:(int8_t)value addresses:(TCaddress *)addresses count:(int)count; -- (void)changeIntegerShort:(int16_t)value addresses:(TCaddress *)addresses count:(int)count; -- (void)changeIntegerLong:(int32_t)value addresses:(TCaddress *)addresses count:(int)count; -- (void)changeDecimalFloat:(float)value addresses:(TCaddress *)addresses count:(int)count; -- (void)changeDecimalDouble:(double)value addresses:(TCaddress *)addresses count:(int)count; - -- (void)sendProcessList; -- (void)sendSearchFinished; -- (void)sendVariableList:(TCaddress const *)data amount:(int)amount; -- (void)sendChangeFinished; -- (void)sendError:(NSString *)msg fatal:(BOOL)fatal; -- (void)sendVariableValue:(u_int32_t)index; -- (void)sendUndoFinished; -- (void)sendRedoFinished; -- (void)sendUndoRedoStatus; -- (void)sendAppLaunched:(NSDictionary *)appInfo; -- (void)sendAppQuit:(NSDictionary *)appInfo; -- (void)sendTargetAppQuit; -- (void)sendPauseFinished:(BOOL)paused; - -- (void)handleClearSearch; -- (void)handleSearch:(char const *)data size:(int)dataSize; -- (void)handleChange:(char const *)data size:(int)dataSize; -- (void)handlePauseTarget; -- (void)handleUndo; -- (void)handleRedo; -- (void)handleSetTargetPID:(char const *)data size:(int)size; - -- (void)unpause; -- (void)setPID:(pid_t)pid; +// when the server dies while running... would this ever happen? I doubt it. +- (void)serverDisconnectedUnexpectedly:(CheatServer *)theServer; -@end +// broadcast failed, this is much more likely to happen. +// note that the server will continue running. +- (void)server:(CheatServer *)theServer failedToBroadcastName:(NSString *)theName; +// a connection was made or lost with the server... +- (void)serverChildrenChanged:(CheatServer *)theServer; + +@end