X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=blobdiff_plain;f=CheatServer.h;h=763197e22628ec91c9e1a4bf6999dd3750d6019a;hp=ad0c12a98d5cd0524e8b8127394d59d0e41d2d3a;hb=HEAD;hpb=5c3719dab502456afddef1ae919e73f06973012f diff --git a/CheatServer.h b/CheatServer.h index ad0c12a..763197e 100644 --- a/CheatServer.h +++ b/CheatServer.h @@ -1,105 +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; - int maxSearchResultsAmount; -} +@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