connectivity/com.nokia.tcf/native/TCFNative/TCFClient/TCFCppApi.cpp
author fturovic <frank.turovich@nokia.com>
Thu, 21 May 2009 10:13:49 -0500
changeset 181 f0ff3e0bbac3
parent 60 9d2210c8eed2
permissions -rw-r--r--
removed composite setting from new cheatsheets
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 "TCFCppApi.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    20
#include "ServerClient.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    21
#include "ClientManager.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    22
#include "TCConstants.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    23
#include <vector>
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    24
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    25
extern CClientManager* gManager;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    26
#ifdef _DEBUG
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    27
extern BOOL gDoLogging;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    28
extern char TCDebugMsg[100];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    29
#define TCDEBUGOPEN() if (gDoLogging) { gManager->m_DebugLog->WaitForAccess(); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    30
#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
    31
#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
    32
#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
    33
#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
    34
#define TCDEBUGCLOSE() if (gDoLogging) { gManager->m_DebugLog->ReleaseAccess(); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    35
#else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    36
#define TCDEBUGOPEN()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    37
#define TCDEBUGLOGS(s)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    38
#define TCDEBUGLOGA1(s, a1)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    39
#define TCDEBUGLOGA2(s, a1, a2)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    40
#define TCDEBUGLOGA3(s, a1, a2, a3)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    41
#define TCDEBUGCLOSE()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    42
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    43
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    44
// for internal testing with 2.x USB TRK define this
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    45
//#define FOR_2X_USB
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    46
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    47
// client Ids connected for this C++ process
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    48
static std::vector<long> *pcppClientIds = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    49
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    50
static long CheckClient(long id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    51
static long CheckConnection(pTCFCppConnectData inConnection);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    52
static long CheckRealSerialSettings(pTCFCppConnectData inConnection);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    53
static long CheckMessageOptions(pTCFCppMessageOptions inMessageOptions);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    54
static long CheckMessageIds(pTCFCppMessageIds inMessageIds);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    55
static long CheckMessage(pTCFCppMessage inMessage);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    56
static void ConvertRealSerialSettingsToServer(pTCFCppConnectData inConnection, pRealSerialConnectData pData); 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    57
static void ConvertRealSerialSettingsToHost(pTCFCppConnectData inConnection, pRealSerialConnectData pData); 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    58
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    59
TCF_EXP long TCF_CALL TCFConnect(pTCFCppConnectData inConnection, pTCFCppMessageOptions inMessageOptions, pTCFCppMessageIds inMessageIds, long* outClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    60
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    61
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    62
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    63
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    64
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    65
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    66
	TCDEBUGLOGS("TCFConnect\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    67
//	if (!gManager->IsServerRunning())
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    68
//		return TCAPI_ERR_COMM_SERVER_RESPONSE_TIMEOUT;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    69
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    70
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    71
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    72
	ret = CheckConnection(inConnection);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    73
#ifdef FOR_2X_USB
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    74
	inMessageOptions->unWrapFormat = eTCFCppNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    75
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    76
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    77
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    78
		ret = CheckMessageOptions(inMessageOptions);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    79
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    80
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    81
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    82
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    83
		ret = CheckMessageIds(inMessageIds);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    84
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    85
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    86
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    87
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    88
		if (strcmp(inConnection->connectType, "tcp") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    89
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    90
			char* pAddress = inConnection->tcpSettings.ipAddress;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    91
			char* pPort = inConnection->tcpSettings.ipPort;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    92
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    93
			pCmdrsp->command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    94
			strncpy(pCmdrsp->connectSettings.connectType, inConnection->connectType, MAX_CONNECTION_TYPE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    95
			strncpy(pCmdrsp->connectSettings.tcpSettings.ipAddress, pAddress, MAX_IPADDRESS_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    96
			strncpy(pCmdrsp->connectSettings.tcpSettings.ipPort, pPort, MAX_PORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    97
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    98
			pCmdrsp->connectSettings.retryInterval = inConnection->retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    99
			pCmdrsp->connectSettings.retryTimeout = inConnection->retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   100
			strncpy(pCmdrsp->connectSettings.decodeFormat, inConnection->decodeFormat, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   101
			pCmdrsp->clientOptions.unWrapFormat = inMessageOptions->unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   102
			pCmdrsp->clientOptions.ostVersion = inMessageOptions->ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   103
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   104
		else if (strcmp(inConnection->connectType, "virtualserial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   105
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   106
			char* pComPort = inConnection->virtualSerialSettings.comPort;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   107
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   108
			pCmdrsp->command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   109
			strncpy(pCmdrsp->connectSettings.connectType, inConnection->connectType, MAX_CONNECTION_TYPE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   110
			strncpy(pCmdrsp->connectSettings.virtualSerialSettings.comPort, pComPort, MAX_COMPORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   111
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   112
			pCmdrsp->connectSettings.retryInterval = inConnection->retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   113
			pCmdrsp->connectSettings.retryTimeout = inConnection->retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   114
			strncpy(pCmdrsp->connectSettings.decodeFormat, inConnection->decodeFormat, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   115
			pCmdrsp->clientOptions.unWrapFormat = inMessageOptions->unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   116
			pCmdrsp->clientOptions.ostVersion = inMessageOptions->ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   117
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   118
		else if (strcmp(inConnection->connectType, "serial") == 0)
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* pComPort = inConnection->realSerialSettings.comPort;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   121
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   122
			pCmdrsp->command = eCmdConnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   123
			strncpy(pCmdrsp->connectSettings.connectType, inConnection->connectType, MAX_CONNECTION_TYPE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   124
			strncpy(pCmdrsp->connectSettings.realSerialSettings.comPort, pComPort, MAX_COMPORT_SIZE);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   125
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   126
			ConvertRealSerialSettingsToServer(inConnection, &pCmdrsp->connectSettings.realSerialSettings);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   127
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   128
			pCmdrsp->connectSettings.retryInterval = inConnection->retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   129
			pCmdrsp->connectSettings.retryTimeout = inConnection->retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   130
			strncpy(pCmdrsp->connectSettings.decodeFormat, inConnection->decodeFormat, MAX_DECODE_FORMAT);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   131
			pCmdrsp->clientOptions.unWrapFormat = inMessageOptions->unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   132
			pCmdrsp->clientOptions.ostVersion = inMessageOptions->ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   133
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   134
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   135
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   136
			// Add other connections here
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   137
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   138
		// send connect command
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   139
		long id = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   140
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   141
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   142
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   143
			gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   144
			gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   145
			if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   146
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   147
				ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   148
				TCDEBUGLOGA1("TCFConnect eCmdConnect: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   149
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   150
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   151
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   152
				id = pCmdrsp->clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   153
				TCDEBUGLOGA1("TCFConnect eCmdConnect: id = %d\n", id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   154
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   155
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   156
		
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   157
		// send message Ids to capture
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   158
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   159
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   160
			pCmdrsp->command = eCmdSetMessageIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   161
			pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   162
			pCmdrsp->number = inMessageIds->numberIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   163
			for (int i = 0; i < inMessageIds->numberIds; i++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   164
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   165
				pCmdrsp->messageIds[i] = inMessageIds->messageIds[i];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   166
			}
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(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   169
			gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   170
			if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   171
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   172
				ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   173
				TCDEBUGLOGA1("TCFConnect eCmdSetMessageIds: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   174
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   175
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   176
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   177
				TCDEBUGLOGA1("TCFConnect eCmdSetMessageIds: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   178
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   179
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   180
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   181
		// create input stream overflow temp file
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   182
		// create input stream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   183
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   184
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   185
//			eTCPCppStreamOverflowOption overflowOption = inMessageOptions->streamOverflowOption;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   186
//			char* pFileName = inMessageOptions->overflowFile;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   187
			long streamSize = inMessageOptions->inputStreamSize;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   188
			CInputStream* stream = new CInputStream(NULL, streamSize, eTCPCppStreamOverflowOff, id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   189
			stream->CreateStream();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   190
			gManager->AddInputStream(stream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   191
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   192
			pCmdrsp->command = eCmdOpenStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   193
			pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   194
			// TODO: implement message file in the future?
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   195
			pCmdrsp->destinationOptions.destination = eDestinationInputStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   196
			pCmdrsp->destinationOptions.streamSize = streamSize;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   197
			pCmdrsp->destinationOptions.overFlowToFile = FALSE;//(overflowOption == eTCPCppStreamOverflowOn);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   198
//			if (pFileName != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   199
//			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   200
//				strncpy(pCmdrsp->destinationOptions.destinationFile, pFileName, MAX_INPUTSTREAMPATH);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   201
//			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   202
//			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   203
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   204
				pCmdrsp->destinationOptions.destinationFile[0] = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   205
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   206
			gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   207
			gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   208
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   209
			if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   210
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   211
				ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   212
				TCDEBUGLOGA1("TCFConnect eCmdOpenStream: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   213
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   214
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   215
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   216
				TCDEBUGLOGA1("TCFConnect eCmdOpenStream: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   217
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   218
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   219
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   220
		// create error monitor
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   221
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   222
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   223
			CErrorMonitor* monitor = new CErrorMonitor(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   224
			if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   225
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   226
				monitor->CreateData();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   227
				gManager->AddErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   228
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   229
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   230
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   231
		// start client capture
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   232
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   233
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   234
			pCmdrsp->command = eCmdStart;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   235
			pCmdrsp->clientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   236
			gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   237
			gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   238
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   239
			if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   240
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   241
				ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   242
				TCDEBUGLOGA1("TCFConnect eCmdStart: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   243
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   244
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   245
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   246
				TCDEBUGLOGA1("TCFConnect eCmdStart: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   247
			}
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
		if (ret == TCAPI_ERR_NONE)
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("TCFConnect pcppClientIds: %x\n", pcppClientIds); 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   253
			if (pcppClientIds == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   254
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   255
				pcppClientIds = new std::vector<long>;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   256
				pcppClientIds->empty();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   257
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   258
			pcppClientIds->push_back(id);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   259
			*outClientId = id;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   260
			TCDEBUGLOGA1("TCFConnect pcppClientIds: size = %d\n", pcppClientIds->size());
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   261
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   262
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   263
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   264
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   265
	TCDEBUGLOGA1("TCFConnect return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   266
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   267
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   268
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   269
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   270
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   271
TCF_EXP long TCF_CALL TCFDisconnect(long inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   272
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   273
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   274
	ServerCommandData cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   275
	pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   276
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   277
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   278
	TCDEBUGLOGA1("TCFDisconnect id=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   279
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   280
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   281
	gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   282
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   283
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   284
	// check client ID
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   285
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   286
	TCDEBUGLOGA1("TCFDisconnect CheckClient: ret = %d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   287
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   288
	// stop client
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   289
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   290
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   291
		pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   292
		pCmdrsp->command = eCmdStop;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   293
		gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   294
		gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   295
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   296
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   297
	// close error monitor
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   298
	TCDEBUGLOGS("TCFDisconnect clear error monitor\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   299
	CErrorMonitor *monitor = gManager->FindErrorMonitor(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   300
	if (monitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   301
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   302
		gManager->RemoveErrorMonitor(monitor);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   303
		delete monitor;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   304
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   305
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   306
	// close input stream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   307
	TCDEBUGLOGS("TCFDisconnect remove input stream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   308
	CInputStream* inputStream = gManager->FindInputStream(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   309
	if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   310
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   311
		gManager->RemoveInputStream(inputStream);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   312
		delete inputStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   313
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   314
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   315
	// send disconnect
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   316
	TCDEBUGLOGS("TCFDisconnect send disconnect\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   317
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   318
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   319
		pCmdrsp->command = eCmdDisconnect;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   320
		pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   321
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   322
		gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   323
		gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   324
		if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   325
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   326
			ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   327
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   328
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   329
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   330
	TCDEBUGLOGS("TCFDisconnect clear erase id\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   331
	if (pcppClientIds != NULL && ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   332
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   333
		std::vector<long>::iterator idIter;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   334
		for (idIter = pcppClientIds->begin(); idIter != pcppClientIds->end(); idIter++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   335
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   336
			if (*idIter == inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   337
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   338
				pcppClientIds->erase(idIter);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   339
				break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   340
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   341
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   342
		if (pcppClientIds->size() == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   343
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   344
			pcppClientIds->empty();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   345
			delete pcppClientIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   346
			pcppClientIds = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   347
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   348
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   349
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   350
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   351
	gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   352
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   353
	TCDEBUGLOGS("TCFDisconnect stop server\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   354
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   355
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   356
	TCDEBUGLOGA1("TCFDisconnect return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   357
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   358
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   359
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   360
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   361
TCF_EXP long TCF_CALL TCFGetVersions(long inClientId, long& outNumberVersions, char** outVersions)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   362
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   363
	long ret = TCAPI_ERR_FEATURE_NOT_IMPLEMENTED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   364
	outNumberVersions = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   365
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   366
	// check client ID
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   367
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   368
	// get # versions from server
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   369
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   370
	// get version[i] from server
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   371
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   372
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   373
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   374
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   375
TCF_EXP long TCF_CALL TCFGetConnections(long& outNumberConnections, pTCFCppConnectData* outConnections)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   376
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   377
	long ret = TCAPI_ERR_FEATURE_NOT_IMPLEMENTED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   378
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   379
	outNumberConnections = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   380
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   381
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   382
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   383
TCF_EXP long TCF_CALL TCFSendMessage(long inClientId, pTCFCppMessage inMessage, long inLength, BYTE* inData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   384
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   385
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   386
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   387
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   388
#ifdef FOR_2X_USB
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   389
	inMessage->useMyId = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   390
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   391
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   392
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   393
	TCDEBUGLOGA1("TCFSendMessage id=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   394
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   395
	// check client ID
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   396
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   397
	TCDEBUGLOGA1("TCFSendMessage CheckClient: ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   398
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   399
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   400
	// send message to server
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   401
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   402
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   403
		ret = CheckMessage(inMessage);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   404
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   405
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   406
			pCmdrsp->command = eCmdSendMessage;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   407
			pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   408
			pCmdrsp->encodeOption = (inMessage->encodeFormat == eTCFCppEncodeNone) ? ENCODE_NO_FORMAT : ENCODE_FORMAT;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   409
			pCmdrsp->useMyId = inMessage->useMyId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   410
			pCmdrsp->protocolVersion = inMessage->ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   411
			pCmdrsp->myId = inMessage->myId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   412
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   413
			gManager->m_Server->SendCommand(pCmdrsp, inLength, inData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   414
			gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   415
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   416
			if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   417
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   418
				ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   419
				TCDEBUGLOGA1("TCFSendMessage eCmdSendMessage: ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   420
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   421
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   422
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   423
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   424
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   425
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   426
	TCDEBUGLOGA1("TCFSendMessage return ret=%d\n", ret);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   427
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   428
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   429
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   430
TCF_EXP long TCF_CALL TCFStart(long inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   431
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   432
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   433
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   434
	// check client Id
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   435
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   436
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   437
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   438
		gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   439
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   440
		ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   441
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   442
		pCmdrsp->command = eCmdStart;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   443
		pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   444
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   445
		gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   446
		gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   447
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   448
		if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   449
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   450
			ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   451
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   452
		gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   453
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   454
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   455
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   456
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   457
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   458
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   459
TCF_EXP long TCF_CALL TCFStop(long inClientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   460
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   461
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   462
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   463
	// check client Id
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   464
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   465
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   466
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   467
		gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   468
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   469
		ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   470
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   471
		pCmdrsp->command = eCmdStop;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   472
		pCmdrsp->clientId = inClientId;
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
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   477
		if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   478
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   479
			ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   480
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   481
		gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   482
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   483
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   484
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   485
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   486
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   487
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   488
TCF_EXP long TCF_CALL TCFSetMessageIds(long inClientId, pTCFCppMessageIds inMessageIds)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   489
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   490
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   491
	ServerCommandData cmdrsp; pServerCommandData pCmdrsp = &cmdrsp;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   492
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   493
	// check client Id
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   494
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   495
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   496
	// check message ids
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   497
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   498
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   499
		ret = CheckMessageIds(inMessageIds);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   500
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   501
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   502
	gManager->m_Server->WaitforServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   503
	// check client status
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   504
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   505
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   506
		pCmdrsp->command = eCmdGetClientStatus;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   507
		pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   508
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   509
		gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   510
		gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   511
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   512
		if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   513
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   514
			ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   515
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   516
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   517
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   518
			if (pCmdrsp->clientStatus == eStarted)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   519
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   520
				ret = TCAPI_ERR_ROUTING_IN_PROGRESS;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   521
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   522
			else if (pCmdrsp->clientStatus == eUnknownClient)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   523
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   524
				ret = TCAPI_ERR_MEDIA_NOT_OPEN;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   525
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   526
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   527
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   528
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   529
	// set message ids
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   530
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   531
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   532
		pCmdrsp->command = eCmdSetMessageIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   533
		pCmdrsp->clientId = inClientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   534
		pCmdrsp->number = inMessageIds->numberIds;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   535
		for (int i = 0; i < inMessageIds->numberIds; i++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   536
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   537
			pCmdrsp->messageIds[i] = inMessageIds->messageIds[i];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   538
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   539
		gManager->m_Server->SendCommand(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   540
		gManager->m_Server->GetResponse(pCmdrsp);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   541
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   542
		if (pCmdrsp->response == eRspError)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   543
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   544
			ret = pCmdrsp->error;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   545
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   546
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   547
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   548
	gManager->m_Server->ReleaseServerPipeAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   549
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   550
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   551
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   552
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   553
TCF_EXP long TCF_CALL TCFPollInputStream(long inClientId, long& outLength)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   554
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   555
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   556
	outLength = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   557
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   558
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   559
	TCDEBUGLOGA1("TCFPollInputStream id=%d\n", inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   560
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   561
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   562
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   563
	// check client ID
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   564
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   565
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   566
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   567
		// get client's input stream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   568
		CInputStream* inputStream = gManager->FindInputStream(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   569
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   570
		if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   571
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   572
			outLength = inputStream->GetNextMessageSize();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   573
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   574
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   575
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   576
			ret = TCAPI_ERR_INPUTSTREAM_CLOSED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   577
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   578
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   579
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   580
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   581
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   582
	TCDEBUGLOGA2("TCFPollInputStream return ret=%d outLength=%d\n", ret, outLength);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   583
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   584
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   585
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   586
TCF_EXP long TCF_CALL TCFReadInputStream(long inClientId, pTCFCppMessage outMessage, long& inLength, BYTE* outData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   587
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   588
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   589
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   590
	if (outData == NULL || inLength <= 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   591
		return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   592
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   593
	gManager->WaitForStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   594
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   595
	// check client ID
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   596
	ret = CheckClient(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   597
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   598
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   599
		// get client's input stream
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   600
		CInputStream* inputStream = gManager->FindInputStream(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   601
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   602
		if (inputStream != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   603
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   604
			DWORD length = inputStream->GetNextMessageSize();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   605
			if (length > inLength) length = inLength;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   606
			if (length > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   607
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   608
				inLength = length;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   609
				inputStream->GetNextMessage(inLength, outData);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   610
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   611
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   612
			else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   613
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   614
				inLength = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   615
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   616
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   617
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   618
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   619
			ret = TCAPI_ERR_INPUTSTREAM_CLOSED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   620
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   621
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   622
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   623
	gManager->ReleaseStreamListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   624
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   625
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   626
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   627
TCF_EXP BOOL TCF_CALL TCFPollError(long inClientId, int* outErrorCode, BOOL* outHasOSErrorCode, long* outOSErrorCode)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   628
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   629
	BOOL foundError = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   630
	gManager->WaitForErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   631
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   632
	if (gManager->ErrorMonitorListSize() > 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   633
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   634
		CErrorMonitor* errorMonitor = gManager->FindErrorMonitor(inClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   635
		if (errorMonitor != NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   636
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   637
			LONG tcfError = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   638
			BOOL osErrorUsed = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   639
			DWORD osError = 0;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   640
			BOOL found = errorMonitor->GetError(&tcfError, &osErrorUsed, &osError);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   641
			if (found)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   642
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   643
				foundError = true;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   644
				*outErrorCode = (int)tcfError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   645
				*outHasOSErrorCode = osErrorUsed;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   646
				*outOSErrorCode = osError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   647
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   648
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   649
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   650
	gManager->ReleaseErrorMonitorListAccess();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   651
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   652
	return foundError;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   653
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   654
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   655
long CheckClient(long id)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   656
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   657
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   658
	BOOL found = FALSE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   659
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   660
	if (id <= 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   661
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   662
		ret = TCAPI_ERR_INVALID_HANDLE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   663
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   664
	else if (gManager->IsServerRunning() == FALSE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   665
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   666
		ret = TCAPI_ERR_MEDIA_NOT_OPEN;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   667
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   668
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   669
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   670
		if (pcppClientIds == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   671
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   672
			ret = TCAPI_ERR_MEDIA_NOT_OPEN;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   673
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   674
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   675
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   676
			std::vector<long>::iterator idIter;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   677
			for (idIter = pcppClientIds->begin(); idIter != pcppClientIds->end(); idIter++)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   678
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   679
				if (*idIter == id)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   680
				{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   681
					found = TRUE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   682
					break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   683
				}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   684
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   685
			if (!found)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   686
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   687
				ret = TCAPI_ERR_INVALID_HANDLE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   688
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   689
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   690
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   691
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   692
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   693
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   694
long CheckConnection(pTCFCppConnectData inConnection)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   695
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   696
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   697
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   698
	if (inConnection == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   699
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   700
		ret = TCAPI_ERR_MISSING_CONNECTION_SPEC;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   701
	} 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   702
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   703
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   704
		long retryI = inConnection->retryInterval;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   705
		long retryT = inConnection->retryTimeout;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   706
		if (retryI == 0 || retryT == 0 || retryI > retryT)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   707
			ret = TCAPI_ERR_INVALID_RETRY_PERIODS;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   708
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   709
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   710
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   711
		if (strcmp(inConnection->connectType, "tcp") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   712
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   713
			if (inConnection->tcpSettings.ipAddress == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   714
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   715
				ret = TCAPI_ERR_MISSING_MEDIA_DATA;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   716
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   717
			else if (inConnection->tcpSettings.ipPort == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   718
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   719
				ret = TCAPI_ERR_MISSING_MEDIA_DATA;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   720
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   721
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   722
		else if (strcmp(inConnection->connectType, "virtualserial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   723
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   724
			if (inConnection->virtualSerialSettings.comPort == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   725
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   726
				ret = TCAPI_ERR_MISSING_MEDIA_DATA;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   727
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   728
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   729
		else if (strcmp(inConnection->connectType, "serial") == 0)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   730
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   731
			ret = CheckRealSerialSettings(inConnection);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   732
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   733
		else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   734
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   735
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   736
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   737
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   738
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   739
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   740
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   741
long CheckRealSerialSettings(pTCFCppConnectData inConnection)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   742
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   743
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   744
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   745
	if (inConnection->realSerialSettings.comPort == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   746
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   747
		ret = TCAPI_ERR_MISSING_MEDIA_DATA;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   748
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   749
	else if (inConnection->realSerialSettings.dataBits < 4 || inConnection->realSerialSettings.dataBits > 8)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   750
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   751
		ret = TCAPI_ERR_COMM_INVALID_DATABITS;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   752
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   753
	else if (inConnection->realSerialSettings.baudRate < 110UL || inConnection->realSerialSettings.baudRate > 256000UL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   754
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   755
		ret = TCAPI_ERR_MISSING_MEDIA_DATA;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   756
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   757
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   758
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   759
		switch(inConnection->realSerialSettings.stopBits)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   760
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   761
		case eTCFCppStopBits1:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   762
		case eTCFCppStopBits15:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   763
		case eTCFCppStopBits2:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   764
			break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   765
		default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   766
			ret = TCAPI_ERR_COMM_INVALID_STOPBITS;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   767
			break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   768
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   769
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   770
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   771
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   772
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   773
		switch(inConnection->realSerialSettings.flowControl)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   774
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   775
		case eTCFCppFlowControlNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   776
		case eTCFCppFlowControlHW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   777
		case eTCFCppFlowControlSW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   778
			break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   779
		default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   780
			ret = TCAPI_ERR_COMM_INVALID_FLOWCONTROL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   781
			break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   782
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   783
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   784
	if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   785
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   786
		switch(inConnection->realSerialSettings.parity)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   787
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   788
		case eTCFCppParityNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   789
		case eTCFCppParityOdd:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   790
		case eTCFCppParityEven:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   791
			break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   792
		default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   793
			ret = TCAPI_ERR_COMM_INVALID_PARITY;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   794
			break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   795
 		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   796
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   797
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   798
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   799
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   800
long CheckMessageOptions(pTCFCppMessageOptions inMessageOptions)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   801
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   802
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   803
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   804
	if (inMessageOptions == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   805
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   806
		ret = TCAPI_ERR_MISSING_MESSAGE_OPTIONS;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   807
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   808
	else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   809
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   810
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   811
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   812
			if (inMessageOptions->unWrapFormat != eTCFCppNone && 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   813
				inMessageOptions->unWrapFormat != eTCFCppDeleteHeader)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   814
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   815
				ret = TCAPI_ERR_INVALID_MESSAGE_UNWRAP_OPTION;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   816
			}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   817
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   818
		if (ret == TCAPI_ERR_NONE)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   819
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   820
			if (inMessageOptions->inputStreamSize <= 0) 
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   821
			{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   822
				ret = TCAPI_ERR_INVALID_STREAM_BUFFER_SIZE;
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
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   826
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   827
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   828
long CheckMessageIds(pTCFCppMessageIds inMessageIds)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   829
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   830
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   831
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   832
	if (inMessageIds == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   833
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   834
		ret = TCAPI_ERR_NO_MESSAGESIDS_REGISTERED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   835
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   836
	else if (inMessageIds->numberIds <= 0 || inMessageIds->messageIds == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   837
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   838
		ret = TCAPI_ERR_NO_MESSAGESIDS_REGISTERED;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   839
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   840
	else if (inMessageIds->numberIds > 256)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   841
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   842
		ret = TCAPI_ERR_MESSAGEID_MAXIMUM;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   843
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   844
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   845
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   846
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   847
long CheckMessage(pTCFCppMessage inMessage)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   848
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   849
	long ret = TCAPI_ERR_NONE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   850
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   851
	if (inMessage == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   852
		return TCAPI_ERR_MISSING_MESSAGE;
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 (inMessage->useMyId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   855
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   856
		if ((inMessage->encodeFormat != eTCFCppEncodeNone) && (inMessage->encodeFormat != eTCFCppEncode))
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   857
		{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   858
			ret = TCAPI_ERR_INVALID_ENCODE_FORMAT;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   859
		}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   860
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   861
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   862
	return ret;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   863
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   864
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   865
void ConvertRealSerialSettingsToServer(pTCFCppConnectData inConnection, pRealSerialConnectData pData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   866
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   867
	pData->baudRate = inConnection->realSerialSettings.baudRate;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   868
	pData->dataBits = inConnection->realSerialSettings.dataBits;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   869
	switch(inConnection->realSerialSettings.flowControl)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   870
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   871
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   872
	case eTCFCppFlowControlNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   873
		pData->flowControl = eFlowControlNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   874
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   875
	case eTCFCppFlowControlHW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   876
		pData->flowControl = eFlowControlHW;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   877
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   878
	case eTCFCppFlowControlSW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   879
		pData->flowControl = eFlowControlSW;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   880
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   881
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   882
	switch(inConnection->realSerialSettings.parity)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   883
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   884
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   885
	case eTCFCppParityNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   886
		pData->parity = eParityNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   887
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   888
	case eTCFCppParityOdd:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   889
		pData->parity = eParityOdd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   890
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   891
	case eTCFCppParityEven:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   892
		pData->parity = eParityEven;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   893
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   894
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   895
	switch(inConnection->realSerialSettings.stopBits)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   896
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   897
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   898
	case eTCFCppStopBits1:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   899
		pData->stopBits = eStopBits1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   900
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   901
	case eTCFCppStopBits15:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   902
		pData->stopBits = eStopBits15;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   903
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   904
	case eTCFCppStopBits2:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   905
		pData->stopBits = eStopBits2;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   906
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   907
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   908
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   909
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   910
void ConvertRealSerialSettingsToHost(pTCFCppConnectData inConnection, pRealSerialConnectData pData)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   911
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   912
	inConnection->realSerialSettings.baudRate = pData->baudRate;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   913
	inConnection->realSerialSettings.dataBits = pData->dataBits;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   914
	switch(pData->flowControl)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   915
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   916
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   917
	case eFlowControlNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   918
		inConnection->realSerialSettings.flowControl = eTCFCppFlowControlNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   919
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   920
	case eFlowControlHW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   921
		inConnection->realSerialSettings.flowControl = eTCFCppFlowControlHW;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   922
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   923
	case eFlowControlSW:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   924
		inConnection->realSerialSettings.flowControl = eTCFCppFlowControlSW;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   925
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   926
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   927
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   928
	switch(pData->parity)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   929
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   930
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   931
	case eParityNone:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   932
		inConnection->realSerialSettings.parity = eTCFCppParityNone;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   933
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   934
	case eParityEven:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   935
		inConnection->realSerialSettings.parity = eTCFCppParityEven;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   936
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   937
	case eParityOdd:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   938
		inConnection->realSerialSettings.parity = eTCFCppParityOdd;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   939
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   940
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   941
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   942
	switch(pData->stopBits)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   943
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   944
	default:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   945
	case eStopBits1:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   946
		inConnection->realSerialSettings.stopBits = eTCFCppStopBits1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   947
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   948
	case eStopBits15:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   949
		inConnection->realSerialSettings.stopBits = eTCFCppStopBits15;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   950
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   951
	case eStopBits2:
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   952
		inConnection->realSerialSettings.stopBits = eTCFCppStopBits2;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   953
		break;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   954
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   955
}