CodeClient.h

00001 /* START_LICENSE_HEADER
00002 
00003 Copyright (C) 2000 Martin Piper, original design and program code
00004 Copyright (C) 2001 Replica Software
00005 
00006 This program file is copyright (C) Replica Software and can only be used under license.
00007 For more information visit: http://www.replicanet.com/
00008 Or email: info@replicanet.com
00009 
00010 END_LICENSE_HEADER */
00011 #ifndef _CODECLIENT_H_
00012 #define _CODECLIENT_H_
00013 #include "RNPlatform/Inc/DLLExportAPI.h"
00014 #include "RNPlatform/Inc/Encryption.h"
00015 #include "RNPlatform/Inc/ThreadClass.h"
00016 #include "RNPlatform/Inc/Thread.h"
00017 #include "RNXPSockets/Inc/XPSockets.h"
00018 #include "RNLobby/Inc/CodeServer.h"
00019 #include "RNPlatform/Inc/SysTime.h"
00020 
00021 namespace RNReplicaNet
00022 {
00023 
00024 namespace RNLobby
00025 {
00026 
00028 class CodeClient : private ThreadClass , private Thread
00029 {
00030 public:
00031     CodeClient();
00032     virtual ~CodeClient();
00033 
00041     bool Start(const char *code,const int nOnce1 = 0,const int nOnce2 = 0);
00042 
00046     bool Stop(bool hardware = false);
00047 
00050     bool GetCompleted(void);
00051 
00054     CodeServer::Reply GetReply(void);
00055 
00058     int GetUserSuppliedReply(void);
00059 
00061     void GetNOnces(int &nOnce1,int &nOnce2);
00062 
00067     void SetEncryptionKey(const void *data,const int length);
00068 
00071     void SetServer(const XPAddress &address);
00072 
00073 private:
00074 
00075     int ThreadEntry(void);
00076     void CleanQuery(void);
00077 
00078     Encryption::Key mCryptoKey;
00079 
00080     volatile CodeServer::Reply mReply;
00081     volatile bool mGotReply;
00082     char *mCode;
00083     XPSocketUrgent *mSend;
00084     XPAddress mServerAddress;
00085     int mUserSuppliedReply;
00086     int mNOnce1;
00087     int mNOnce2;
00088     bool mServerAddressSet;
00089 };
00090 
00091 } // namespace RNLobby
00092 
00093 } // namespace RNReplicaNet
00094 
00095 #endif

Generated on Sat Jun 28 22:02:16 2008 for ReplicaNet and RNLobby by  doxygen 1.5.3