--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/testconns/statdesktop/desktop/source/lib/inc/statengine.h Mon Oct 04 02:58:21 2010 +0300
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+#ifndef STATENGINE_H
+#define STATENGINE_H
+
+#include <statcommon.h>
+#include <CSTATLogfile.h>
+#include <CSTATDataFormatConverter.h>
+#include <CSTATImageVerify.h>
+#include <statcomms.h>
+#include <statscriptdecoder.h>
+#include <ini.h>
+
+#include "ScriptProgressMonitor.h"
+#include <winsock2.h>
+
+#define DOTTED_LINE "--------------------------------------------------------------------------------------------------------------"
+
+class CSTATEngine
+{
+public:
+ CSTATEngine();
+ ~CSTATEngine();
+ int Initialise(const STATCONNECTTYPE eConnect, const char *pAddress = NULL); // start everything
+ void SetCommandDelay(int iMillisecondDelay); // set delay between commands
+ int SetLogging(const CString& logfilename, const char* prefix,
+ bool append, bool bMessages, bool bFile, MessageReporter *const aMessageReporter); // set a log message
+ int GetCommandCount(CString file, int *pCount); // get amount of commands in script
+ int OpenScriptFile(CString file, bool bIsFile); // load the script
+ int RunScript(ScriptProgressMonitor *const monitor); // run the script
+ int Release(void); // release all resources
+ const char* GetErrorText(int iCode) { return pLog->Text(iCode); } // convert an error code into a text message
+ const char* GetReceivedData(void);
+ int GetDeviceReturnCode() { return iDeviceCode; } // get device return code
+ void SetMultithreaded(bool bState = true) { bMultithreaded = bState; } // set multithreaded check
+
+ static LPTSTR ToUnicode(const char *string); // convert ANSI to Unicode
+ static char * ToAnsi(LPCTSTR string); // convert Unicode to ANSI
+ static void CreateAllDirectories(CString &fullpath); // create sub folders
+
+ CSTATDataFormatConverter *pConverter; // bitmap conversion
+ CSTATImageVerify *pImageVerify; // image verification
+ STAT_STATE eStopProcessing; // flag to pause/stop processing
+ int iCurrentCommand; // index of the current command being processed
+ char *pDeviceInfo; // pointer to device information
+ char *iTEFSharedData; // pointer to TEF shared data information
+ int iMaxTimeLimit; // max time to wait for a command
+
+private:
+
+
+
+ void SetScreenshotDirectory(const char *szScreenshotDir) { cScreenshotDirectory = szScreenshotDir; }
+ int SetScreenshotDefaultDirectory(void);
+ int SendCommand(CSTATScriptCommand *pCommand, CSTATScriptCommand **ppRecvCommand);
+ int SendSingleCommand(CSTATScriptCommand *pCommand, CSTATScriptCommand **ppRecvCommand);
+ int ReadTransferFile(const char *pFile, CSTATScriptCommand *pCommand);
+ int SaveTransferFile(const char *pFile, char *pContents, unsigned long ulLength);
+ void LogDetails(const char *prefix, CSTATScriptCommand *pCommand);
+ int ConvertAndSaveScreeenshot(CString &file, const char *pContents, const unsigned long ulLength);
+ int SaveTheFile(CString path, const char *pContents, const unsigned long ulLength);
+ void Message(const char *pMsg, ...);
+ bool StopProcessing();
+ bool RemoveLeftoverMBMFiles();
+ void AppendCommandToSTATLog(char *heading, char *log, unsigned long length);
+ void StoreData( char* aData, unsigned long aLength, char*& aOutputPtr );
+ CString GetConnection(STATCONNECTTYPE eConnectType);
+
+ CSTATScriptCommand oRecvCommand; // last received command
+ STATComms *pComms; // transport
+ CSTATScriptDecoder *pDecoder; // script decoder
+ CSTATLogFile *pLog; // log file
+ CString cScreenshotDirectory; // screenshot location
+ int iDelay; // command delay
+ const int minimumdelay;
+ const int maximumdelay;
+ char szAddress[256]; // the name of the port we are using
+ STATCONNECTTYPE eConnectType; // current connection type
+ int iDeviceCode; // device return code
+ bool bMultithreaded; // flag if operating in multithreaded environment
+ CStatIniFile statIniFile; // ini file reader
+ CString receivedData;
+
+ void WriteToSocket(const char *data, int *length);
+ void ReadFromSocket(char *data, int *length);
+ int SetSocket(const char *ip, const int port);
+ int ReleaseSocket();
+
+ bool settingSocket;
+ SOCKET dataSocket;
+ WSADATA wsaData;
+
+};
+
+inline const char* CSTATEngine::GetReceivedData(void)
+{
+ return ( receivedData.operator LPCTSTR( ) );
+}
+
+
+
+//----------------------------------------------------------------------------
+// our thread-safe mechanism - this must be defined, initialised and destroyed by
+// the code using CSTATEngine. See STATMember.cpp for an example
+extern CRITICAL_SECTION CriticalSection;
+//----------------------------------------------------------------------------
+
+#endif