Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ETAStream.h
- // ETAClient-iPhoneOS
- //
- // Created by Daniel Reed on 8/17/10.
- // Copyright 2010 N/a. All rights reserved.
- //
- #import <CoreLocation/CoreLocation.h>
- #import <Foundation/Foundation.h>
- #import "Blowfish.h"
- #import "Packet.h"
- #import "PacketQueue.h"
- #import "Event.h"
- #define NUMBER_OF_KEYS 4
- #define KEY_SIZE 4
- #define MAX_STATES 64
- #define LOGIN_SERVER @"svn.bce-inc.com"
- #define LOGIN_PORT 48355
- #define ETAStreamErrorDomain @"ETAStreamErrorDomain"
- @class ETAStream;
- typedef enum
- {
- ResponseCodeInvalid,
- ResponseCodeAccepted,
- ResponseCodeDeclined,
- ResponseCodeBanned,
- ResponseCodeInvalidAccount,
- ResponseCodeServersOffline
- } ResponseCode;
- typedef enum
- {
- kStreamStateInvalid,
- kStreamStateWaitForSessionKeys,
- kStreamStateConnectToLoginServer,
- kStreamStateLoggingIn,
- kStreamStateWaitingForLoginResponse,
- kStreamStateConnectToClientServer,
- kStreamStatePerformingHandshake,
- kStreamStateWaitingForHandshakeResponse,
- kStreamStateReady,
- kStreamStateLoginFailed,
- kStreamStateHandshakeFailed
- } StreamState;
- /**
- *
- */
- @protocol ETAStreamDelegate
- -(void) streamIsConnecting: (ETAStream*) stream;
- -(void) streamDidConnect: (ETAStream*) stream;
- -(void) streamDidDisconnect: (ETAStream*) stream;
- -(void) stream: (ETAStream*) stream willFailWithError: (NSError*) error;
- -(void) stream: (ETAStream*) stream didSpawnEvent: (Event*) event;
- -(void) stream: (ETAStream*) stream didUpdateEvent: (Event*) event;
- -(void) stream: (ETAStream*) stream didDestroyEvent: (Event*) event;
- -(void) stream: (ETAStream*) stream didReceivePacket: (Packet*) packet;
- -(void) streamDidUpdate: (ETAStream*) stream;
- /**
- * Notifies the delegate that it should display an alert for the
- * indicated event.
- *
- * @param stream
- * The source stream.
- *
- * @param event
- * Indicates the event for which the alert should be fired.
- */
- -(void) stream: (ETAStream*) stream shouldDisplayAlertForEvent: (Event*) event;
- @end
- @interface ETAStream : NSObject <NSStreamDelegate>
- {
- NSString* key;
- NSString* server;
- int port;
- NSString* username;
- NSString* password;
- CLLocationCoordinate2D coordinate;
- NSInputStream* inputStream;
- NSOutputStream* outputStream;
- Blowfish* blowfish;
- NSMutableData* buffer;
- PacketQueue* incomingPackets;
- PacketQueue* outgoingPackets;
- id <ETAStreamDelegate> delegate;
- NSMutableDictionary* eventDictionary;
- StreamState streamState;
- // Indicates the timestamp of the last request (Handshake, Login, etc).
- NSDate* lastRequest;
- //! Stream state stack index.
- int stackIndex;
- //! Stream states stack.
- StreamState states[MAX_STATES];
- }
- /**
- * Gets the username used for authenticating with the login server.
- */
- -(NSString*) username;
- /**
- * Sets the username used for authenticating with the login server.
- *
- * @param newUsername
- * Indicates the new username value.
- */
- -(void) setUsername: (NSString*) newUsername;
- /**
- * Gets the password used for authenticating with the login server.
- *
- * @return
- * MD5 hash representing the actual password.
- */
- -(NSString*) password;
- /**
- * Sets the password used for authenticating with the login server.
- * The value will be stored as an MD5 hash.
- *
- * @param newPassword
- * Indicates the new password value.
- */
- -(void) setPassword: (NSString*) newPassword;
- /**
- *
- */
- -(id <ETAStreamDelegate>) delegate;
- -(void) setDelegate: (id <ETAStreamDelegate>) newDelegate;
- -(StreamState) streamState;
- -(void) setStreamState: (StreamState) newStreamState;
- -(CLLocationCoordinate2D) coordinate;
- -(void) setCoordinate: (CLLocationCoordinate2D) newCoordinate;
- -(double) latitude;
- -(double) longitude;
- -(StreamState) currentState;
- -(void) pushState: (StreamState) state;
- -(StreamState) popState;
- -(void) connectToHost: (NSString*) host port: (int) port;
- -(void) disconnect;
- -(void) enqueuePacket: (Packet*) packet;
- -(void) sendPacket: (Packet*) packet;
- -(void) update;
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement