connectivity/com.nokia.tcf/native/TCFNative/TCFClient/TCAPIConnectionJni.cpp
author stechong
Wed, 20 Oct 2010 11:19:31 -0500
changeset 2165 2a7b5eccb0bc
parent 1473 6c45b7c9cdac
permissions -rw-r--r--
Keeping PlatSim internal only.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
60
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     1
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     3
* All rights reserved.
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     4
* This component and the accompanying materials are made available
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     6
* which accompanies this distribution, and is available
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     8
*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
     9
* Initial Contributors:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    11
*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    12
* Contributors:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    13
*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    14
* Description: 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    15
*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    16
*/
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    17
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    18
#include "stdafx.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    19
#include "TCAPIConnectionJni.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    20
#include "TCConstants.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    21
#include "TCErrorConstants.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    22
#include "ClientManager.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    23
#include "ServerClient.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    24
#include "TCDebugLog.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    25
#include "InputStream.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    26
#include "ErrorMonitorData.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    27
#include <list>
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    28
#include <vector>
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    29
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    30
extern CClientManager* gManager;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    31
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    32
#ifdef _DEBUG
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    33
extern BOOL gDoLogging;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    34
char TCDebugMsg[100];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    35
#define TCDEBUGOPEN() if (gDoLogging) { gManager->m_DebugLog->WaitForAccess(); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    36
#define TCDEBUGLOGS(s) if (gDoLogging) { sprintf(TCDebugMsg,"%s", s); gManager->m_DebugLog->log(TCDebugMsg); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    37
#define TCDEBUGLOGA1(s, a1) if (gDoLogging) { sprintf(TCDebugMsg, s, a1); gManager->m_DebugLog->log(TCDebugMsg); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    38
#define TCDEBUGLOGA2(s, a1, a2) if (gDoLogging) { sprintf(TCDebugMsg, s, a1, a2); gManager->m_DebugLog->log(TCDebugMsg); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    39
#define TCDEBUGLOGA3(s, a1, a2, a3) if (gDoLogging) { sprintf(TCDebugMsg, s, a1, a2, a3); gManager->m_DebugLog->log(TCDebugMsg); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    40
#define TCDEBUGCLOSE() if (gDoLogging) { gManager->m_DebugLog->ReleaseAccess(); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    41
#else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    42
#define TCDEBUGOPEN()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    43
#define TCDEBUGLOGS(s)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    44
#define TCDEBUGLOGA1(s, a1)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    45
#define TCDEBUGLOGA2(s, a1, a2)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    46
#define TCDEBUGLOGA3(s, a1, a2, a3)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    47
#define TCDEBUGCLOSE()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    48
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    49
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    50
#ifdef _DEBUG
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    51
FILE* fLog1 = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    52
FILE* fLog2 = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    53
static void OpenLogFile1(char* filename);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    54
static void CloseLogFile1();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    55
static void OpenLogFile2(char* filename);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    56
static void CloseLogFile2();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    57
#define OPENLOGf1(f) OpenLogFile1(f)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    58
#define CLOSELOG1() CloseLogFile1()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    59
#define OPENLOGf2(f) OpenLogFile2(f)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    60
#define CLOSELOG2() CloseLogFile2()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    61
#else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    62
#define OPENLOGf1(f)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    63
#define CLOSELOG1()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    64
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    65
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    66
static void ConvertRealSerialSettingsToHost(char* pBaud, char* pDataBits, char* pParity, char* pStopBits, char* pFlowControl, pRealSerialConnectData pData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    67
static void ConvertRealSerialSettingsToServer(const char* pBaud, const char* pDataBits, const char* pParity, const char* pStopBits, const char* pFlowControl, pRealSerialConnectData pData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    68
static const char* GetErrorText(unsigned long error);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    69
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    70
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    71
 * Method:    nativeConnect
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    72
 * Signature: (Ljava/lang/String;[J[Ljava/lang/String;[JLjava/lang/String;[J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    73
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    74
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeConnect
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    75
  (JNIEnv *env, jobject pThis, jstring inType, jlongArray inOptions, jobjectArray inSettings, jlongArray inMessageOptions, jstring inFilePath, jlongArray outClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    76
 {
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    77
 	// inOptions are connection options
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    78
 	// inMessageOptions are client's message options
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    79
	// inFilePath will be null if message destination is not DESTINATION_CLIENTFILE 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    80
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    81
	unsigned long osError = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    82
	long clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    83
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    84
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    85
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    86
	TCDEBUGLOGS("nativeConnect\n");
914
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    87
	if (!gManager->IsServerRunning())
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    88
	{
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    89
		TCDEBUGLOGS("Server not running\n");
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    90
		TCDEBUGCLOSE();
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    91
		return TCAPI_ERR_COMM_SERVER_RESPONSE_TIMEOUT;
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    92
	}
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
    93
60
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    94
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    95
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    96
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    97
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    98
		jboolean isCopy = false;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    99
		// options per connection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   100
		jlong* pOptions = env->GetLongArrayElements(inOptions, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   101
		DWORD retryInterval = (DWORD)pOptions[0];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   102
		DWORD retryTimeout = (DWORD)pOptions[1];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   103
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   104
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   105
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   106
		env->ReleaseLongArrayElements(inOptions, pOptions, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   107
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   108
		pOptions = env->GetLongArrayElements(inMessageOptions, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   109
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   110
		// options per client
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   111
		long unWrapFormat = pOptions[0];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   112
		long ostVersion = pOptions[1];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   113
		env->ReleaseLongArrayElements(inMessageOptions, pOptions, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   114
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   115
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   116
		TCDEBUGLOGA2(" retryInterval=%d, retryTimeout=%d\n", retryInterval, retryTimeout);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   117
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   118
		TCDEBUGLOGA3(" unWrapFormat=%d, ostVersion=%d destination=%s\n", unWrapFormat, ostVersion, ((inFilePath == NULL) ? "stream" : "file"));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   119
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   120
		char* pType = (char*)env->GetStringUTFChars(inType, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   121
		TCDEBUGLOGA1("  pType = %s\n", pType);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   122
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   123
		if (strcmp(pType, "musti") == 0 || strcmp(pType, "platsim") == 0) 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   124
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   125
			jstring addString = (jstring)env->GetObjectArrayElement(inSettings, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   126
			jstring portString = (jstring)env->GetObjectArrayElement(inSettings, 1);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   127
			jstring chanString = (jstring)env->GetObjectArrayElement(inSettings, 2);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   128
			jstring decodeString = (jstring)env->GetObjectArrayElement(inSettings, 3);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   129
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   130
			const char* pAddress = env->GetStringUTFChars(addString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   131
			const char* pPort = env->GetStringUTFChars(portString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   132
			const char* pChan = env->GetStringUTFChars(chanString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   133
			const char* pDecode = env->GetStringUTFChars(decodeString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   134
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   135
			TCDEBUGLOGA2(" TCP: ipAddress=%s, ipPort=%s\n", pAddress, pPort);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   136
			TCDEBUGLOGA2(" TCP: channel=%s, decode=%s\n", pChan, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   137
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   138
			ServerCommandData cmd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   139
			cmd.command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   140
			strncpy(cmd.connectSettings.connectType, pType, MAX_CONNECTION_TYPE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   141
			strncpy(cmd.connectSettings.tcpSettings.ipAddress, pAddress, MAX_IPADDRESS_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   142
			strncpy(cmd.connectSettings.tcpSettings.ipPort, pPort, MAX_PORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   143
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   144
			cmd.connectSettings.retryInterval = retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   145
			cmd.connectSettings.retryTimeout = retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   146
			strncpy(cmd.connectSettings.decodeFormat, pDecode, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   147
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   148
			if (pChan != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   149
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   150
				if (strcmp(pChan, "1") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   151
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   152
					cmd.connectSettings.traceBoxChannel = 1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   153
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   154
				else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   155
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   156
					cmd.connectSettings.traceBoxChannel = 2;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   157
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   158
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   159
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   160
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   161
				cmd.connectSettings.traceBoxChannel = 2;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   162
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   163
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   164
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   165
			cmd.clientOptions.unWrapFormat = unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   166
			cmd.clientOptions.ostVersion = ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   167
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   168
			gManager->m_Server->SendCommand(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   169
			gManager->m_Server->GetResponse(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   170
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   171
			if (cmd.response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   172
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   173
				TCDEBUGLOGA1("  from server: ret = %d\n", cmd.error);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   174
				ret = cmd.error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   175
				osError = cmd.osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   176
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   177
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   178
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   179
				TCDEBUGLOGA1("  from server: id = %d\n", cmd.clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   180
				clientId = cmd.clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   181
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   182
				gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   183
				TCDEBUGLOGS(" TODO: create error monitor storage if server connected\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   184
				CErrorMonitor* monitor = new CErrorMonitor(clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   185
				if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   186
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   187
					monitor->CreateData();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   188
					gManager->AddErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   189
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   190
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   191
				gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   192
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   193
				TCDEBUGLOGA1(" clientId=%d\n", clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   194
				jlong jClientId = clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   195
				env->SetLongArrayRegion(outClientId, 0, 1, &jClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   196
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   197
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   198
			env->ReleaseStringUTFChars(addString, pAddress);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   199
			env->ReleaseStringUTFChars(portString, pPort);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   200
			env->ReleaseStringUTFChars(chanString, pChan);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   201
			env->ReleaseStringUTFChars(decodeString, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   202
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   203
		else if (strcmp(pType, "tcp") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   204
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   205
			jstring addString = (jstring)env->GetObjectArrayElement(inSettings, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   206
			jstring portString = (jstring)env->GetObjectArrayElement(inSettings, 1);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   207
			jstring decodeString = (jstring)env->GetObjectArrayElement(inSettings, 2);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   208
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   209
			const char* pAddress = env->GetStringUTFChars(addString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   210
			const char* pPort = env->GetStringUTFChars(portString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   211
			const char* pDecode = env->GetStringUTFChars(decodeString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   212
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   213
			TCDEBUGLOGA3(" TCP: ipAddress=%s, ipPort=%s decode=%s\n", pAddress, pPort, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   214
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   215
			ServerCommandData cmd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   216
			cmd.command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   217
			strncpy(cmd.connectSettings.connectType, pType, MAX_CONNECTION_TYPE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   218
			strncpy(cmd.connectSettings.tcpSettings.ipAddress, pAddress, MAX_IPADDRESS_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   219
			strncpy(cmd.connectSettings.tcpSettings.ipPort, pPort, MAX_PORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   220
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   221
			cmd.connectSettings.retryInterval = retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   222
			cmd.connectSettings.retryTimeout = retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   223
			strncpy(cmd.connectSettings.decodeFormat, pDecode, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   224
			cmd.clientOptions.unWrapFormat = unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   225
			cmd.clientOptions.ostVersion = ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   226
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   227
			gManager->m_Server->SendCommand(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   228
			gManager->m_Server->GetResponse(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   229
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   230
			if (cmd.response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   231
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   232
				TCDEBUGLOGA1("  from server: ret = %d\n", cmd.error);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   233
				ret = cmd.error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   234
				osError = cmd.osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   235
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   236
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   237
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   238
				TCDEBUGLOGA1("  from server: id = %d\n", cmd.clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   239
				clientId = cmd.clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   240
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   241
				gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   242
				TCDEBUGLOGS(" TODO: create error monitor storage if server connected\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   243
				CErrorMonitor* monitor = new CErrorMonitor(clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   244
				if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   245
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   246
					monitor->CreateData();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   247
					gManager->AddErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   248
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   249
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   250
				gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   251
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   252
				TCDEBUGLOGA1(" clientId=%d\n", clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   253
				jlong jClientId = clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   254
				env->SetLongArrayRegion(outClientId, 0, 1, &jClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   255
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   256
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   257
			env->ReleaseStringUTFChars(addString, pAddress);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   258
			env->ReleaseStringUTFChars(portString, pPort);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   259
			env->ReleaseStringUTFChars(decodeString, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   260
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   261
		else if (strcmp(pType, "virtualserial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   262
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   263
			jstring portString = (jstring)env->GetObjectArrayElement(inSettings, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   264
			const char* pPort = env->GetStringUTFChars(portString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   265
			jstring decodeString = (jstring)env->GetObjectArrayElement(inSettings, 1);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   266
			const char* pDecode = env->GetStringUTFChars(decodeString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   267
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   268
			TCDEBUGLOGA2(" vserial: pPort=%s decode=%s\n", pPort, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   269
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   270
			ServerCommandData cmd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   271
			cmd.command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   272
			strncpy(cmd.connectSettings.connectType, pType, MAX_CONNECTION_TYPE); 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   273
			strncpy(cmd.connectSettings.virtualSerialSettings.comPort, pPort, MAX_COMPORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   274
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   275
			cmd.connectSettings.retryInterval = retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   276
			cmd.connectSettings.retryTimeout = retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   277
			strncpy(cmd.connectSettings.decodeFormat, pDecode, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   278
			cmd.clientOptions.unWrapFormat = unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   279
			cmd.clientOptions.ostVersion = ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   280
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   281
			gManager->m_Server->SendCommand(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   282
			gManager->m_Server->GetResponse(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   283
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   284
			if (cmd.response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   285
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   286
				TCDEBUGLOGA1("  from server: ret = %d\n", cmd.error);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   287
				ret = cmd.error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   288
				osError = cmd.osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   289
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   290
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   291
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   292
				TCDEBUGLOGA1("  from server: id = %d\n", cmd.clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   293
				clientId = cmd.clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   294
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   295
				gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   296
				CErrorMonitor* monitor = new CErrorMonitor(clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   297
				if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   298
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   299
					monitor->CreateData();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   300
					gManager->AddErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   301
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   302
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   303
				gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   304
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   305
				TCDEBUGLOGA1(" clientId=%d\n", clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   306
				jlong jClientId = clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   307
				env->SetLongArrayRegion(outClientId, 0, 1, &jClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   308
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   309
			env->ReleaseStringUTFChars(portString, pPort);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   310
			env->ReleaseStringUTFChars(decodeString, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   311
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   312
		else if (strcmp(pType, "serial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   313
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   314
			jstring portString = (jstring)env->GetObjectArrayElement(inSettings, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   315
			const char* pPort = env->GetStringUTFChars(portString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   316
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   317
			jstring baudString = (jstring)env->GetObjectArrayElement(inSettings, 1);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   318
			const char* pBaud = env->GetStringUTFChars(baudString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   319
			
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   320
			jstring dataBitsString = (jstring)env->GetObjectArrayElement(inSettings, 2);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   321
			const char* pDataBits = env->GetStringUTFChars(dataBitsString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   322
			
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   323
			jstring parityString = (jstring)env->GetObjectArrayElement(inSettings, 3);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   324
			const char* pParity = env->GetStringUTFChars(parityString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   325
			
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   326
			jstring stopBitsString = (jstring)env->GetObjectArrayElement(inSettings, 4);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   327
			const char* pStopBits = env->GetStringUTFChars(stopBitsString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   328
			
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   329
			jstring flowControlString = (jstring)env->GetObjectArrayElement(inSettings, 5);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   330
			const char* pFlowControl = env->GetStringUTFChars(flowControlString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   331
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   332
			jstring decodeString = (jstring)env->GetObjectArrayElement(inSettings, 6);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   333
			const char* pDecode = env->GetStringUTFChars(decodeString, NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   334
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   335
			TCDEBUGLOGA3(" real serial: pPort=%s pBaud=%s pDataBits=%s\n", pPort, pBaud, pDataBits);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   336
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   337
			ServerCommandData cmd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   338
			cmd.command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   339
			strncpy(cmd.connectSettings.connectType, pType, MAX_CONNECTION_TYPE); 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   340
			strncpy(cmd.connectSettings.realSerialSettings.comPort, pPort, MAX_COMPORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   341
			ConvertRealSerialSettingsToServer(pBaud, pDataBits, pParity, pStopBits, pFlowControl, &cmd.connectSettings.realSerialSettings);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   342
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   343
			cmd.connectSettings.retryInterval = retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   344
			cmd.connectSettings.retryTimeout = retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   345
			strncpy(cmd.connectSettings.decodeFormat, pDecode, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   346
			cmd.clientOptions.unWrapFormat = unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   347
			cmd.clientOptions.ostVersion = ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   348
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   349
			gManager->m_Server->SendCommand(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   350
			gManager->m_Server->GetResponse(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   351
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   352
			if (cmd.response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   353
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   354
				TCDEBUGLOGA1("  from server: ret = %d\n", cmd.error);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   355
				ret = cmd.error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   356
				osError = cmd.osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   357
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   358
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   359
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   360
				TCDEBUGLOGA1("  from server: id = %d\n", cmd.clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   361
				clientId = cmd.clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   362
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   363
				gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   364
				CErrorMonitor* monitor = new CErrorMonitor(clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   365
				if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   366
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   367
					monitor->CreateData();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   368
					gManager->AddErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   369
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   370
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   371
				gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   372
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   373
				TCDEBUGLOGA1(" clientId=%d\n", clientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   374
				jlong jClientId = clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   375
				env->SetLongArrayRegion(outClientId, 0, 1, &jClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   376
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   377
			env->ReleaseStringUTFChars(portString, pPort);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   378
			env->ReleaseStringUTFChars(baudString, pBaud);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   379
			env->ReleaseStringUTFChars(dataBitsString, pDataBits);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   380
			env->ReleaseStringUTFChars(parityString, pParity);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   381
			env->ReleaseStringUTFChars(stopBitsString, pStopBits);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   382
			env->ReleaseStringUTFChars(flowControlString, pFlowControl);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   383
			env->ReleaseStringUTFChars(decodeString, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   384
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   385
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   386
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   387
			TCDEBUGLOGS(" TCAPI_ERR_MEDIA_NOT_SUPPORTED\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   388
			ret = TCAPI_ERR_MEDIA_NOT_SUPPORTED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   389
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   390
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   391
		env->ReleaseStringUTFChars(inType, pType);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   392
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   393
		
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   394
		// handle message destinations
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   395
		//  input stream is done by java on open input stream not here
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   396
		//  message file is done here
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   397
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   398
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   399
			long destination = DESTINATION_INPUTSTREAM;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   400
			char* pMessageFile = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   401
			if (inFilePath != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   402
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   403
				destination = DESTINATION_CLIENTFILE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   404
				jboolean isCopy=FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   405
				pMessageFile = (char*)env->GetStringUTFChars(inFilePath, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   406
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   407
				// send to TCFServer
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   408
				ServerCommandData cmd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   409
				cmd.command = eCmdOpenMessageFile;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   410
				cmd.clientId = clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   411
				cmd.destinationOptions.destination = eDestinationFile;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   412
				strncpy(cmd.destinationOptions.destinationFile, pMessageFile, MAX_FILEPATH);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   413
				gManager->m_Server->SendCommand(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   414
				gManager->m_Server->GetResponse(&cmd);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   415
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   416
				env->ReleaseStringUTFChars(inFilePath, pMessageFile);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   417
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   418
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   419
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   420
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   421
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   422
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   423
	TCDEBUGLOGA3("nativeConnect return ret=%d, osError=%d : %s\n", ret, osError, GetErrorText(osError));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   424
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   425
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   426
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   427
	if (ret != TCAPI_ERR_NONE && osError > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   428
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   429
		jclass clazz = env->FindClass("Ljava/lang/Exception;");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   430
		env->ThrowNew(clazz, GetErrorText(osError));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   431
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   432
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   433
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   434
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   435
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   436
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   437
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   438
 * Method:    nativeDisconnect
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   439
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   440
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   441
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeDisconnect
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   442
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   443
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   444
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   445
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   446
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   447
	TCDEBUGLOGS("nativeDisconnect\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   448
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   449
	if (gManager->m_Server == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   450
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   451
		TCDEBUGLOGS(" TCAPI_ERR_INVALID_HANDLE - gServer NULL\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   452
		ret = TCAPI_ERR_INVALID_HANDLE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   453
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   454
	else if (inClientId <= 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   455
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   456
		TCDEBUGLOGS(" TCAPI_ERR_INVALID_HANDLE - inClientId <= 0\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   457
		ret = TCAPI_ERR_INVALID_HANDLE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   458
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   459
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   460
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   461
		gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   462
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   463
		BOOL found = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   464
		long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   465
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   466
		TCDEBUGLOGA1(" look for clientId=%d\n", id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   467
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   468
		TCDEBUGLOGS(" TODO: tell server to disconnect this client\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   469
		ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   470
		pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   471
		pCmdrsp->command = eCmdDisconnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   472
		pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   473
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   474
		gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   475
		gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   476
		if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   477
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   478
			ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   479
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   480
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   481
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   482
			gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   483
			TCDEBUGLOGS(" TODO: destroy error monitor for this client\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   484
			CErrorMonitor *monitor = gManager->FindErrorMonitor(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   485
			if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   486
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   487
				gManager->RemoveErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   488
				delete monitor;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   489
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   490
			gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   491
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   492
		gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   493
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   494
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   495
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   496
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   497
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   498
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   499
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   500
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   501
 * Method:    nativeGetNumberConnections
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   502
 * Signature: ([J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   503
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   504
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeGetNumberConnections
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   505
  (JNIEnv *env, jobject pThis, jlongArray outNumber)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   506
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   507
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   508
	long number = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   509
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   510
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   511
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   512
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   513
	TCDEBUGLOGS("nativeGetNumberConnections\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   514
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   515
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   516
	pCmdrsp->command = eCmdGetNumberConnections;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   517
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   518
	BOOL sent = gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   519
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   520
	BOOL recd = gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   521
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   522
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   523
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   524
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   525
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   526
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   527
		number = pCmdrsp->numConnections;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   528
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   529
		jlong jNumber = number;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   530
		env->SetLongArrayRegion(outNumber, 0, 1, &jNumber);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   531
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   532
		TCDEBUGLOGA1(" number=%d\n", number);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   533
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   534
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   535
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   536
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   537
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   538
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   539
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   540
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   541
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   542
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   543
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   544
 * Method:    nativeGetTypeOfConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   545
 * Signature: (J[Ljava/lang/String;)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   546
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   547
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeGetTypeOfConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   548
  (JNIEnv *env, jobject pThis, jlong inIndex, jobjectArray outType)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   549
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   550
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   551
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   552
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   553
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   554
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   555
	TCDEBUGLOGS("nativeGetTypeOfConnection\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   556
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   557
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   558
	pCmdrsp->command = eCmdGetConnectionType;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   559
	pCmdrsp->index = inIndex;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   560
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   561
	BOOL sent = gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   562
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   563
	BOOL recd = gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   564
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   565
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   566
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   567
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   568
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   569
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   570
		env->SetObjectArrayElement(outType, 0, env->NewStringUTF(pCmdrsp->connectSettings.connectType));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   571
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   572
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   573
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   574
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   575
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   576
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   577
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   578
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   579
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   580
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   581
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   582
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   583
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   584
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   585
 * Method:    nativeGetConnectionSettings
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   586
 * Signature: (J[Ljava/lang/String;[J[Ljava/lang/String;)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   587
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   588
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeGetConnectionSettings
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   589
  (JNIEnv *env, jobject pThis, jlong inIndex, jobjectArray outType, jlongArray outOptions, jobjectArray outSettings)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   590
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   591
	long ret = TCAPI_ERR_FEATURE_NOT_IMPLEMENTED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   592
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   593
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   594
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   595
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   596
	TCDEBUGLOGS("nativeGetConnectionSettings\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   597
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   598
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   599
	pCmdrsp->command = eCmdGetConnection;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   600
	pCmdrsp->index = inIndex;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   601
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   602
	BOOL sent = gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   603
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   604
	BOOL recd = gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   605
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   606
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   607
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   608
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   609
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   610
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   611
		env->SetObjectArrayElement(outType, 0, env->NewStringUTF(pCmdrsp->connectSettings.connectType));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   612
		if (strcmp(pCmdrsp->connectSettings.connectType, "musti") == 0 || strcmp(pCmdrsp->connectSettings.connectType, "platsim") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   613
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   614
			env->SetObjectArrayElement(outSettings, 0, env->NewStringUTF(pCmdrsp->connectSettings.tcpSettings.ipAddress));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   615
			env->SetObjectArrayElement(outSettings, 1, env->NewStringUTF(pCmdrsp->connectSettings.tcpSettings.ipPort));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   616
			char *pChan = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   617
			if (pCmdrsp->connectSettings.traceBoxChannel == 1)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   618
				pChan = "1";
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   619
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   620
				pChan = "2";
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   621
			env->SetObjectArrayElement(outSettings, 2, env->NewStringUTF(pChan));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   622
			env->SetObjectArrayElement(outSettings, 3, env->NewStringUTF(pCmdrsp->connectSettings.decodeFormat));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   623
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   624
		else if (strcmp(pCmdrsp->connectSettings.connectType, "tcp") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   625
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   626
			env->SetObjectArrayElement(outSettings, 0, env->NewStringUTF(pCmdrsp->connectSettings.tcpSettings.ipAddress));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   627
			env->SetObjectArrayElement(outSettings, 1, env->NewStringUTF(pCmdrsp->connectSettings.tcpSettings.ipPort));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   628
			env->SetObjectArrayElement(outSettings, 2, env->NewStringUTF(pCmdrsp->connectSettings.decodeFormat));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   629
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   630
		else if (strcmp(pCmdrsp->connectSettings.connectType, "virtualserial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   631
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   632
			env->SetObjectArrayElement(outSettings, 0, env->NewStringUTF(pCmdrsp->connectSettings.virtualSerialSettings.comPort));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   633
			env->SetObjectArrayElement(outSettings, 1, env->NewStringUTF(pCmdrsp->connectSettings.decodeFormat));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   634
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   635
		else if (strcmp(pCmdrsp->connectSettings.connectType, "serial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   636
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   637
			env->SetObjectArrayElement(outSettings, 0, env->NewStringUTF(pCmdrsp->connectSettings.realSerialSettings.comPort));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   638
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   639
			char baud[10], databits[10], parity[10], stopbits[10], flowcontrol[15];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   640
			ConvertRealSerialSettingsToHost(baud, databits, parity, stopbits, flowcontrol, &pCmdrsp->connectSettings.realSerialSettings);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   641
			env->SetObjectArrayElement(outSettings, 1, env->NewStringUTF(baud));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   642
			env->SetObjectArrayElement(outSettings, 2, env->NewStringUTF(databits));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   643
			env->SetObjectArrayElement(outSettings, 3, env->NewStringUTF(parity));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   644
			env->SetObjectArrayElement(outSettings, 4, env->NewStringUTF(stopbits));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   645
			env->SetObjectArrayElement(outSettings, 5, env->NewStringUTF(flowcontrol));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   646
			env->SetObjectArrayElement(outSettings, 6, env->NewStringUTF(pCmdrsp->connectSettings.decodeFormat));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   647
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   648
		else if (strcmp(pCmdrsp->connectSettings.connectType, "usb") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   649
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   650
			env->SetObjectArrayElement(outSettings, 0, env->NewStringUTF(pCmdrsp->connectSettings.usbSettings.device));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   651
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   652
		jlong jRetryInterval = pCmdrsp->connectSettings.retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   653
		env->SetLongArrayRegion(outOptions, 0, 1, &jRetryInterval);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   654
		jlong jRetryTimeout = pCmdrsp->connectSettings.retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   655
		env->SetLongArrayRegion(outOptions, 1, 1, &jRetryTimeout);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   656
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   657
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   658
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   659
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   660
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   661
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   662
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   663
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   664
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   665
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   666
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   667
 * Method:    nativePollError
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   668
 * Signature: (J[I[Z[J)Z
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   669
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   670
JNIEXPORT jboolean JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativePollError
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   671
  (JNIEnv *env, jobject pThis, jlong inClientId, jintArray outErrorCode, 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   672
	jbooleanArray outHasOSErrorCode, jlongArray outOSErrorCode)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   673
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   674
	jboolean foundError = false;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   675
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   676
	LONG tcfError = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   677
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   678
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   679
	TCDEBUGLOGS("nativePollError\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   680
//	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   681
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   682
	gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   683
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   684
	if (gManager->ErrorMonitorListSize() > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   685
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   686
//		TCDEBUGLOGA1(" size of gManager->ErrorMonitorListSize=%d\n", gManager->ErrorMonitorListSize());
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   687
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   688
		CErrorMonitor* errorMonitor = gManager->FindErrorMonitor(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   689
//		TCDEBUGLOGA1(" errorMonitor = %x\n", errorMonitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   690
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   691
		if (errorMonitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   692
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   693
//			TCDEBUGLOGS(" found client\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   694
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   695
			BOOL osErrorUsed = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   696
			DWORD osError = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   697
			BOOL found = errorMonitor->GetError(&tcfError, &osErrorUsed, &osError);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   698
			if (found)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   699
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   700
//				TCDEBUGLOGA1("nativePollError error for client=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   701
//				TCDEBUGLOGA3(" found tcfError=%d, osErrorUsed=%d, osError=%d\n",
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   702
//					tcfError, osErrorUsed, osError);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   703
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   704
				foundError = true;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   705
				jint jval = tcfError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   706
				env->SetIntArrayRegion(outErrorCode, 0, 1, &jval);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   707
				jboolean jos = osErrorUsed;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   708
				env->SetBooleanArrayRegion(outHasOSErrorCode, 0, 1, &jos);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   709
				jlong jlval = osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   710
				env->SetLongArrayRegion(outOSErrorCode, 0, 1, &jlval);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   711
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   712
//				TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   713
//				TCDEBUGLOGS("nativePollError found error\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   714
//				TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   715
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   716
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   717
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   718
	gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   719
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   720
	TCDEBUGLOGA2(" return foundError=%d tcfError=%d\n", foundError, tcfError);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   721
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   722
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   723
	return foundError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   724
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   725
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   726
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   727
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   728
 * Method:    nativeGetNumberVersionEntities
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   729
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   730
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   731
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeGetNumberVersionEntities
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   732
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   733
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   734
	long number = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   735
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   736
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   737
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   738
	TCDEBUGLOGS("nativeGetNumberVersionEntities\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   739
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   740
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   741
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   742
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   743
	// eCmdGetNumberVersions
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   744
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   745
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   746
	pCmdrsp->command = eCmdGetNumberVersions;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   747
	pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   748
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   749
	BOOL sent = gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   750
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   751
	BOOL recd = gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   752
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   753
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   754
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   755
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   756
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   757
		number = pCmdrsp->number + 1; // + 1 for DLL version
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   758
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   759
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   760
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   761
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   762
	TCDEBUGLOGA1(" numberVersions = %d\n", number);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   763
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   764
	return number;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   765
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   766
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   767
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   768
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   769
 * Method:    nativeGetVersion
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   770
 * Signature: (JJ[Ljava/lang/String;)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   771
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   772
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeGetVersion
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   773
  (JNIEnv *env, jobject pThis, jlong inClientId, jlong inNumToGet, jobjectArray outVersion)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   774
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   775
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   776
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   777
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   778
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   779
	TCDEBUGLOGS("nativeGetVersion\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   780
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   781
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   782
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   783
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   784
	// eCmdGetVersion
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   785
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   786
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   787
	pCmdrsp->command = eCmdGetVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   788
	pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   789
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   790
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   791
	// index = 0 ==> TCFClient.dll version
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   792
	env->SetObjectArrayElement(outVersion, 0, env->NewStringUTF(gManager->m_Version));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   793
	long numberGot = 1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   794
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   795
	if (inNumToGet > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   796
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   797
		// index = 1 ==> TCFServer.exe version
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   798
		pCmdrsp->command = eCmdGetVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   799
		pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   800
		pCmdrsp->index = 1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   801
		BOOL sent = gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   802
		BOOL recd = gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   803
		if (pCmdrsp->response == eRspOK)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   804
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   805
			env->SetObjectArrayElement(outVersion, 1, env->NewStringUTF(pCmdrsp->version));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   806
			numberGot++;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   807
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   808
			if (inNumToGet > 1)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   809
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   810
				// index = 2 ==> connection version
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   811
				pCmdrsp->command = eCmdGetVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   812
				pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   813
				pCmdrsp->index = 2;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   814
				BOOL sent = gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   815
				BOOL recd = gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   816
				if (pCmdrsp->response == eRspOK)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   817
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   818
					env->SetObjectArrayElement(outVersion, 2, env->NewStringUTF(pCmdrsp->version));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   819
					numberGot++;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   820
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   821
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   822
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   823
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   824
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   825
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   826
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   827
	TCDEBUGLOGA1(" return numberGot=%d\n", numberGot);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   828
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   829
	return numberGot;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   830
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   831
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   832
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   833
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   834
 * Method:    nativePollInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   835
 * Signature: (J[J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   836
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   837
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativePollInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   838
  (JNIEnv *env, jobject pThis, jlong inClientId, jlongArray outNumberMessages)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   839
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   840
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   841
	long number = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   842
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   843
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   844
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   845
	TCDEBUGLOGS("nativePollInputStream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   846
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   847
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   848
	TCDEBUGLOGS(" TODO: get number from client's input stream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   849
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   850
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   851
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   852
	CInputStream* inputStream = gManager->FindInputStream(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   853
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   854
	if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   855
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   856
		TCDEBUGLOGA1(" -- found id inputStream=%x\n", inputStream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   857
		number = inputStream->GetNumberMessages();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   858
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   859
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   860
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   861
	jlong jNumber = number;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   862
	env->SetLongArrayRegion(outNumberMessages, 0, 1, &jNumber);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   863
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   864
	TCDEBUGLOGA2(" numberMessages=%d ret=%d\n", number, ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   865
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   866
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   867
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   868
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   869
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   870
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   871
 * Method:    nativePollInputStream2
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   872
 * Signature: (JJ[J[J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   873
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   874
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativePollInputStream2
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   875
  (JNIEnv *env, jobject pThis, jlong inClientId, jlong inNumberMessagesToPeek, jlongArray outNumberMessagesPeeked, jlongArray outNumberBytesPeeked)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   876
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   877
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   878
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   879
	long numberToGet = inNumberMessagesToPeek;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   880
	long numberStored = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   881
	DWORD numberBytes = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   882
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   883
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   884
	TCDEBUGLOGS("nativePollInputStream2\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   885
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   886
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   887
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   888
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   889
	CInputStream* inputStream = gManager->FindInputStream(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   890
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   891
	if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   892
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   893
		TCDEBUGLOGA1(" -- found id inputStream=%x\n", inputStream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   894
		numberStored = inputStream->GetNumberMessages();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   895
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   896
		if ((numberToGet == 0) || (numberToGet > numberStored))
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   897
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   898
			numberToGet = numberStored;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   899
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   900
		if (numberToGet > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   901
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   902
			inputStream->GetTotalMessageSize(numberToGet, numberBytes);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   903
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   904
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   905
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   906
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   907
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   908
	jlong jNumber = numberToGet;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   909
	env->SetLongArrayRegion(outNumberMessagesPeeked, 0, 1, &jNumber);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   910
	jNumber = numberBytes;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   911
	env->SetLongArrayRegion(outNumberBytesPeeked, 0, 1, &jNumber);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   912
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   913
	TCDEBUGLOGA3(" numberMessages=%d numberBytes=%d ret=%d\n", numberToGet, numberBytes, ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   914
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   915
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   916
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   917
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   918
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   919
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   920
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   921
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   922
 * Method:    nativeGetInputStreamMessageBytes
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   923
 * Signature: (JJ[J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   924
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   925
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeGetInputStreamMessageBytes
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   926
  (JNIEnv *env, jobject pThis, jlong inClientId, jlong inNumberMessages, jlongArray outMessageSizes)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   927
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   928
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   929
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   930
	long numberToGet = inNumberMessages;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   931
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   932
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   933
	TCDEBUGLOGS("nativeGetInputStreamMessageBytes\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   934
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   935
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   936
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   937
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   938
	CInputStream* inputStream = gManager->FindInputStream(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   939
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   940
	if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   941
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   942
		TCDEBUGLOGA1(" -- found id inputStream=%x\n", inputStream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   943
		DWORD* pSizes = new DWORD[numberToGet];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   944
		inputStream->GetMessageSizes(numberToGet, pSizes);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   945
		for (int i = 0; i < numberToGet; i++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   946
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   947
			TCDEBUGLOGA2(" -- message size[%d] = %d\n", i, pSizes[i]);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   948
			jlong jsize = pSizes[i];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   949
			env->SetLongArrayRegion(outMessageSizes, i, 1, &jsize);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   950
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   951
		delete[] pSizes;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   952
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   953
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   954
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   955
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   956
	TCDEBUGLOGA1("nativeGetInputStreamMessageBytes ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   957
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   958
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   959
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   960
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   961
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   962
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   963
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   964
 * Method:    nativeReadInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   965
 * Signature: (JJ[J[JJ[B)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   966
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   967
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeReadInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   968
  (JNIEnv *env, jobject pThis, jlong inClientId, jlong inNumberMessages, jlongArray outNumberMessages, jlongArray outNumberBytesRead, jlong inNumberMaxBytes, jbyteArray outMessageData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   969
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   970
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   971
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   972
	long numberToGet = inNumberMessages;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   973
	long numberMaxBytes = inNumberMaxBytes;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   974
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   975
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   976
	TCDEBUGLOGS("nativeReadInputStream start\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   977
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   978
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   979
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   980
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   981
	CInputStream* inputStream = gManager->FindInputStream(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   982
	if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   983
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   984
		long numberBytesRead = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   985
		long numberMessagesRead = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   986
#if (0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   987
		DWORD mSize = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   988
		DWORD outOffset = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   989
		BYTE* pData = new BYTE[64*1024];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   990
		for (int i = 0; i < numberToGet; i++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   991
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   992
			TCDEBUGLOGS("nativeReadInputStream 1\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   993
			mSize = inputStream->GetNextMessageSize();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   994
			if ((numberBytesRead + mSize) > numberMaxBytes)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   995
				break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   996
			if (mSize != 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   997
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   998
				mSize = inputStream->GetNextMessage(mSize, pData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   999
				TCDEBUGLOGA3("outOffset = %d mSize = %d pData[0] = %02.2x\n", outOffset, mSize, pData[0]);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1000
				jbyte* pByte = (jbyte*)pData;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1001
				env->SetByteArrayRegion(outMessageData, outOffset, mSize, pByte);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1002
				outOffset += mSize;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1003
				numberBytesRead += mSize;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1004
				numberMessagesRead++;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1005
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1006
				if ((i % 500) == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1007
					Sleep(1);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1008
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1009
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1010
		delete [] pData;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1011
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1012
		numberMessagesRead = inputStream->GetMessages(env, numberToGet, numberMaxBytes, numberBytesRead, numberMessagesRead, outMessageData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1013
		jlong jMsgs = numberMessagesRead;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1014
		env->SetLongArrayRegion(outNumberMessages, 0, 1, &jMsgs);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1015
		jlong jNum = numberBytesRead;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1016
		env->SetLongArrayRegion(outNumberBytesRead, 0, 1, &jNum);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1017
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1018
		TCDEBUGLOGS("nativeReadInputStream 2\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1019
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1020
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1021
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1022
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1023
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1024
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1025
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1026
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1027
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1028
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1029
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1030
 * Method:    nativeOpenInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1031
 * Signature: (JLjava/lang/String;JZ)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1032
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1033
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeOpenInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1034
  (JNIEnv *env, jobject pThis, jlong inClientId, jstring inFileBaseName, jlong inStreamSize, jboolean inOverflowToFile)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1035
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1036
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1037
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1038
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1039
	TCDEBUGLOGS("nativeOpenInputStream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1040
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1041
	TCDEBUGLOGA1(" inFileBaseName=%x\n", inFileBaseName);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1042
	TCDEBUGLOGA1(" inStreamSize=%d\n", inStreamSize);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1043
	TCDEBUGLOGA1(" inOverflowToFile=%d\n", inOverflowToFile);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1044
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1045
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1046
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1047
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1048
	char* pFileName = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1049
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1050
	if (inFileBaseName != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1051
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1052
		TCDEBUGLOGS("nativeOpenInputStream GetStringUTFChars on inFileBaseName\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1053
		jboolean isCopy=FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1054
		pFileName = (char*)env->GetStringUTFChars(inFileBaseName, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1055
		TCDEBUGLOGS("nativeOpenInputStream return GetStringUTFChars\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1056
		TCDEBUGLOGA1(" pFileName=%x\n", pFileName);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1057
//		if (pFileName != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1058
//		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1059
//			TCDEBUGLOGA1(" pFileName=%s\n", pFileName);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1060
//		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1061
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1062
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1063
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1064
		TCDEBUGLOGS("nativeOpenInputStream inFileBaseName == NULL\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1065
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1066
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1067
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1068
	TCDEBUGLOGS("nativeOpenInputStream continue after GetStringUTFChars\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1069
	DWORD streamSize = inStreamSize;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1070
	TCDEBUGLOGA1(" streamSize=%d\n", streamSize);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1071
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1072
	BOOL overflowOption = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1073
	TCDEBUGLOGA1(" overflowOption=%d\n", overflowOption);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1074
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1075
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1076
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1077
	TCDEBUGLOGA1(" gManager->InputStreamListSize=%d\n", gManager->InputStreamListSize());
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1078
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1079
	// create stream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1080
	CInputStream* stream = new CInputStream(pFileName, streamSize, overflowOption, id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1081
	stream->CreateStream();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1082
	gManager->AddInputStream(stream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1083
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1084
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1085
	pCmdrsp->command = eCmdOpenStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1086
	pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1087
	pCmdrsp->destinationOptions.destination = eDestinationInputStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1088
	pCmdrsp->destinationOptions.streamSize = streamSize;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1089
	pCmdrsp->destinationOptions.overFlowToFile = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1090
	if (pFileName != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1091
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1092
		strncpy(pCmdrsp->destinationOptions.destinationFile, pFileName, MAX_FILEPATH);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1093
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1094
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1095
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1096
		pCmdrsp->destinationOptions.destinationFile[0] = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1097
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1098
	if (inFileBaseName != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1099
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1100
		TCDEBUGLOGS("nativeOpenInputStream ReleaseStringUTFChars on inFileBaseName\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1101
		env->ReleaseStringUTFChars(inFileBaseName, pFileName);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1102
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1103
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1104
	gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1105
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1106
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1107
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1108
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1109
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1110
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1111
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1112
	TCDEBUGLOGA1(" gManager->InputStreamListSize=%d\n", gManager->InputStreamListSize());
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1113
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1114
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1115
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1116
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1117
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1118
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1119
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1120
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1121
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1122
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1123
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1124
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1125
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1126
 * Method:    nativeCloseInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1127
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1128
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1129
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeCloseInputStream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1130
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1131
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1132
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1133
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1134
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1135
	TCDEBUGLOGS("nativeCloseInputStream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1136
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1137
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1138
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1139
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1140
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1141
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1142
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1143
	TCDEBUGLOGA1(" gManager->InputStreamListSize=%d\n", gManager->InputStreamListSize());
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1144
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1145
	TCDEBUGLOGS(" TODO: tell server to close this stream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1146
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1147
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1148
	pCmdrsp->command = eCmdCloseStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1149
	pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1150
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1151
	gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1152
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1153
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1154
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1155
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1156
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1157
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1158
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1159
	CInputStream* inputStream = gManager->FindInputStream(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1160
	if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1161
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1162
		TCDEBUGLOGA1(" -- found id inputStream=%x\n", inputStream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1163
		gManager->RemoveInputStream(inputStream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1164
		delete inputStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1165
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1166
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1167
	TCDEBUGLOGA1(" gManager->InputStreamListSize=%d\n", gManager->InputStreamListSize());
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1168
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1169
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1170
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1171
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1172
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1173
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1174
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1175
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1176
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1177
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1178
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1179
 * Method:    nativeSetMessageIds
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1180
 * Signature: (J[B)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1181
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1182
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeSetMessageIds
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1183
  (JNIEnv *env, jobject pThis, jlong inClientId, jbyteArray inIds)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1184
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1185
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1186
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1187
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1188
	TCDEBUGLOGS("nativeSetMessageIds\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1189
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1190
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1191
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1192
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1193
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1194
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1195
	pCmdrsp->command = eCmdSetMessageIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1196
	pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1197
	jsize numberIds = env->GetArrayLength(inIds);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1198
	pCmdrsp->number = numberIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1199
	jboolean isCopy = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1200
	jbyte* bytes = env->GetByteArrayElements(inIds, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1201
	for (int i = 0; i < numberIds; i++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1202
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1203
		pCmdrsp->messageIds[i] = bytes[i];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1204
		TCDEBUGLOGA1(" -- msgId = 0x%02.2X\n",  pCmdrsp->messageIds[i]);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1205
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1206
	env->ReleaseByteArrayElements(inIds, bytes, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1207
	gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1208
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1209
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1210
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1211
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1212
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1213
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1214
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1215
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1216
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1217
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1218
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1219
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1220
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1221
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1222
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1223
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1224
 * Method:    nativeClearFile
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1225
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1226
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1227
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeClearFile
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1228
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1229
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1230
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1231
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1232
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1233
	long id = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1234
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1235
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1236
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1237
	pCmdrsp->command = eCmdClearMessageFile;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1238
	pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1239
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1240
	gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1241
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1242
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1243
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1244
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1245
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1246
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1247
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1248
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1249
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1250
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1251
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1252
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1253
 * Method:    nativeSendMessage
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1254
 * Signature: (J[J[Ljava/lang/String;[B)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1255
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1256
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeSendMessage
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1257
  (JNIEnv *env, jobject pThis, jlong inClientId, jlongArray inFormattingOptions, jobjectArray inSettings, jbyteArray inMessage)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1258
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1259
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1260
	unsigned long osError = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1261
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1262
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1263
	TCDEBUGLOGS("nativeSendMessage\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1264
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
914
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1265
	if (!gManager->IsServerRunning())
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1266
	{
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1267
		// return right away if TCFServer is dead
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1268
		TCDEBUGLOGS("nativeSendMessage: server is dead\n");
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1269
		TCDEBUGCLOSE();
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1270
		return TCAPI_ERR_COMM_SERVER_RESPONSE_TIMEOUT;
46f36a149510 Fix TCFServer life-cycle issues bug 10621
Chad Peckham <chad.peckham@nokia.com>
parents: 60
diff changeset
  1271
	}
60
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1272
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1273
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1274
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1275
	jboolean isCopy = false;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1276
	// formatting options
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1277
	jlong* pOptions = env->GetLongArrayElements(inFormattingOptions, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1278
//	long encodeFormat = (long)pOptions[0];	// not used
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1279
	long encodeOption = (long)pOptions[1];	// formatting option for protocol
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1280
	long protocolVersion = (long)pOptions[2];	// OST version byte to use if protocol is OST
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1281
	BYTE myId = (BYTE)(pOptions[3] & 0xff);	// my message ID to use of adding protocol
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1282
	BOOL useMyId = (pOptions[4] == 1) ? TRUE : FALSE;	// use my ID or not
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1283
	env->ReleaseLongArrayElements(inFormattingOptions, pOptions, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1284
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1285
	jstring decodeString = (jstring)env->GetObjectArrayElement(inSettings, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1286
	const char* pDecode = env->GetStringUTFChars(decodeString, NULL); // not used
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1287
	env->ReleaseStringUTFChars(decodeString, pDecode);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1288
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1289
	jsize numberBytes = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1290
	if (inMessage != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1291
		numberBytes = env->GetArrayLength(inMessage);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1292
	long inLength = numberBytes;		// this can be null
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1293
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1294
	jbyte* inData = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1295
	if (inLength > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1296
		inData = env->GetByteArrayElements(inMessage, &isCopy);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1297
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1298
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1299
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1300
	pCmdrsp->command = eCmdSendMessage;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1301
	pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1302
	pCmdrsp->encodeOption = encodeOption;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1303
	pCmdrsp->useMyId = useMyId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1304
	pCmdrsp->myId = myId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1305
	pCmdrsp->protocolVersion = protocolVersion & 0xff;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1306
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1307
	// send message to server
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1308
	pCmdrsp->osError = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1309
	gManager->m_Server->SendCommand(pCmdrsp, inLength, (BYTE*)inData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1310
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1311
	TCDEBUGLOGS(" nativeSendMessage  GetResponse\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1312
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1313
	// get response from server
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1314
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1315
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1316
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1317
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1318
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1319
		osError = pCmdrsp->osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1320
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1321
	if (inData != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1322
		env->ReleaseByteArrayElements(inMessage, inData, 0);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1323
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1324
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1325
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1326
	TCDEBUGLOGA3("nativeSendMessage return ret=%d, osError=%d : %s\n", ret, osError, GetErrorText(osError));
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1327
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1328
1473
6c45b7c9cdac Close ports when there is a fatal error allowing OS to free all handles to it. Do not report OSErrors on sending messages as these are confusing.
Chad Peckham <chad.peckham@nokia.com>
parents: 914
diff changeset
  1329
//	if (ret == TCAPI_ERR_COMM_ERROR && osError > 0)
6c45b7c9cdac Close ports when there is a fatal error allowing OS to free all handles to it. Do not report OSErrors on sending messages as these are confusing.
Chad Peckham <chad.peckham@nokia.com>
parents: 914
diff changeset
  1330
//	{
6c45b7c9cdac Close ports when there is a fatal error allowing OS to free all handles to it. Do not report OSErrors on sending messages as these are confusing.
Chad Peckham <chad.peckham@nokia.com>
parents: 914
diff changeset
  1331
//		jclass clazz = env->FindClass("Ljava/lang/Exception;");
6c45b7c9cdac Close ports when there is a fatal error allowing OS to free all handles to it. Do not report OSErrors on sending messages as these are confusing.
Chad Peckham <chad.peckham@nokia.com>
parents: 914
diff changeset
  1332
//		env->ThrowNew(clazz, GetErrorText(osError));
6c45b7c9cdac Close ports when there is a fatal error allowing OS to free all handles to it. Do not report OSErrors on sending messages as these are confusing.
Chad Peckham <chad.peckham@nokia.com>
parents: 914
diff changeset
  1333
//	}
60
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1334
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1335
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1336
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1337
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1338
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1339
 * Method:    nativeStart
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1340
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1341
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1342
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeStart
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1343
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1344
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1345
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1346
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1347
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1348
	TCDEBUGLOGS("nativeStart\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1349
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1350
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1351
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1352
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1353
	TCDEBUGLOGS(" TODO: tell server to start this client\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1354
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1355
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1356
	pCmdrsp->command = eCmdStart;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1357
	pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1358
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1359
	gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1360
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1361
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1362
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1363
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1364
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1365
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1366
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1367
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1368
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1369
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1370
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1371
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1372
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1373
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1374
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1375
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1376
 * Method:    nativeStop
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1377
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1378
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1379
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeStop
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1380
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1381
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1382
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1383
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1384
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1385
	TCDEBUGLOGS("nativeStop\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1386
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1387
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1388
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1389
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1390
	TCDEBUGLOGS(" TODO: tell server to stop this client\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1391
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1392
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1393
	pCmdrsp->command = eCmdStop;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1394
	pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1395
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1396
	gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1397
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1398
	gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1399
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1400
	if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1401
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1402
		ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1403
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1404
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1405
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1406
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1407
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1408
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1409
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1410
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1411
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1412
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1413
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1414
 * Method:    nativeTestConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1415
 * Signature: (I[J[Ljava/lang/String;)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1416
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1417
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeTestConnection__I_3J_3Ljava_lang_String_2
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1418
  (JNIEnv *env, jobject pThis, jint inType, jlongArray inOptions, jobjectArray inSettings)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1419
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1420
	long ret = TCAPI_ERR_FEATURE_NOT_IMPLEMENTED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1421
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1422
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1423
	TCDEBUGLOGS("nativeTestConnection\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1424
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1425
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1426
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1427
	TCDEBUGLOGS(" TODO: ask server to test this connection\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1428
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1429
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1430
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1431
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1432
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1433
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1434
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1435
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1436
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1437
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1438
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1439
 * Method:    nativeTestConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1440
 * Signature: (J)J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1441
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1442
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeTestConnection__J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1443
  (JNIEnv *env, jobject pThis, jlong inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1444
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1445
	long ret = TCAPI_ERR_FEATURE_NOT_IMPLEMENTED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1446
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1447
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1448
	TCDEBUGLOGS("nativeTestConnection\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1449
	TCDEBUGLOGA1(" inClientId=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1450
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1451
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1452
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1453
	TCDEBUGLOGS(" TODO: ask server to test this client's connection\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1454
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1455
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1456
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1457
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1458
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1459
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1460
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1461
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1462
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1463
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1464
 * Method:    nativeStartServer
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1465
 * Signature: ()J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1466
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1467
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeStartServer
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1468
  (JNIEnv *env, jobject pThis)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1469
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1470
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1471
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1472
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1473
	TCDEBUGLOGS("nativeStartServer\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1474
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1475
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1476
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1477
	ret = gManager->StartServer();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1478
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1479
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1480
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1481
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1482
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1483
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1484
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1485
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1486
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1487
/*
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1488
 * Class:     com_nokia_tcf_impl_TCAPIConnection
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1489
 * Method:    nativeStopServer
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1490
 * Signature: ()J
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1491
 */
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1492
JNIEXPORT jlong JNICALL Java_com_nokia_tcf_impl_TCAPIConnection_nativeStopServer
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1493
  (JNIEnv *env, jobject pThis)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1494
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1495
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1496
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1497
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1498
	TCDEBUGLOGS("nativeStopServer\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1499
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1500
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1501
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1502
	ret = gManager->StopServer();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1503
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1504
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1505
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1506
	TCDEBUGLOGA1(" return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1507
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1508
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1509
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1510
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1511
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1512
void ConvertRealSerialSettingsToServer(const char* pBaud, const char* pDataBits, const char* pParity, const char* pStopBits, const char* pFlowControl, pRealSerialConnectData pData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1513
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1514
	// no error checking - all error checking is done at the Java level
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1515
	pData->baudRate = atol(pBaud);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1516
	pData->dataBits = atol(pDataBits);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1517
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1518
	pData->parity = eParityNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1519
	if (strcmp(pParity, "odd") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1520
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1521
		pData->parity = eParityOdd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1522
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1523
	else if (strcmp(pParity, "even") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1524
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1525
		pData->parity = eParityEven;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1526
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1527
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1528
	pData->stopBits = eStopBits1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1529
	if (strcmp(pStopBits, "1.5") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1530
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1531
		pData->stopBits = eStopBits15;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1532
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1533
	else if (strcmp(pStopBits, "2") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1534
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1535
		pData->stopBits = eStopBits2;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1536
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1537
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1538
	pData->flowControl = eFlowControlNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1539
	if (strcmp(pFlowControl, "software") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1540
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1541
		pData->flowControl = eFlowControlSW;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1542
	} 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1543
	else if (strcmp(pFlowControl, "hardware") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1544
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1545
		pData->flowControl = eFlowControlHW;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1546
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1547
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1548
void ConvertRealSerialSettingsToHost(char* pBaud, char* pDataBits, char* pParity, char* pStopBits, char* pFlowControl, pRealSerialConnectData pData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1549
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1550
	sprintf(pBaud, "%ld", pData->baudRate);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1551
	sprintf(pDataBits, "%ld", pData->dataBits);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1552
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1553
	switch (pData->parity)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1554
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1555
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1556
	case eParityNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1557
		strcpy(pParity, "none");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1558
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1559
	case eParityEven:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1560
		strcpy(pParity, "even");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1561
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1562
	case eParityOdd:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1563
		strcpy(pParity, "odd");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1564
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1565
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1566
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1567
	switch (pData->stopBits)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1568
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1569
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1570
	case eStopBits1:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1571
		strcpy(pStopBits, "1");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1572
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1573
	case eStopBits15:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1574
		strcpy(pStopBits, "1.5");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1575
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1576
	case eStopBits2:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1577
		strcpy(pStopBits, "2");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1578
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1579
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1580
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1581
	switch (pData->flowControl)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1582
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1583
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1584
	case eFlowControlNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1585
		strcpy(pFlowControl, "none");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1586
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1587
	case eFlowControlHW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1588
		strcpy(pFlowControl, "hardware");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1589
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1590
	case eFlowControlSW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1591
		strcpy(pFlowControl, "software");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1592
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1593
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1594
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1595
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1596
#ifdef _DEBUG
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1597
void OpenLogFile1(char* filename)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1598
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1599
	if (fLog1 == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1600
		fLog1 = _fsopen(filename, "at", _SH_DENYNO);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1601
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1602
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1603
void CloseLogFile1()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1604
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1605
	if (fLog1 != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1606
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1607
		fclose(fLog1);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1608
		fLog1 = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1609
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1610
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1611
void OpenLogFile2(char* filename)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1612
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1613
	if (fLog2 == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1614
		fLog2 = _fsopen(filename, "at", _SH_DENYNO);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1615
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1616
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1617
void CloseLogFile2()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1618
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1619
	if (fLog2 != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1620
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1621
		fclose(fLog2);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1622
		fLog2 = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1623
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1624
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1625
void LogTime(FILE* f)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1626
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1627
	SYSTEMTIME sTime;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1628
	GetLocalTime(&sTime);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1629
	if (f)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1630
		fprintf(f, "%02.2d%02.2d-%02.2d:%02.2d:%02.2d.%03.3d: ", sTime.wDay, sTime.wMonth, sTime.wHour, sTime.wMinute, sTime.wSecond, sTime.wMilliseconds);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1631
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1632
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1633
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1634
static const char* GetErrorText(unsigned long error)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1635
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1636
	if (error == ERROR_FILE_NOT_FOUND)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1637
		return "Could not open the device\n";
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1638
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1639
	else if (error == ERROR_ACCESS_DENIED)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1640
		return "The device is currently in use\n";
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1641
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1642
	static char msg[256];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1643
	FormatMessage(
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1644
		FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1645
		NULL,
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1646
		error,
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1647
		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1648
		(LPTSTR) &msg,
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1649
		sizeof(msg) - 1,
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1650
		NULL);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1651
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1652
	return msg;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
  1653
}