connectivity/com.nokia.tcf/native/TCFNative/TCFServer/Client.cpp
author chpeckha
Mon, 06 Apr 2009 15:18:48 -0500
changeset 60 9d2210c8eed2
permissions -rw-r--r--
Commit changes for 2.1.0
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
// Client.cpp: implementation of the CClient class.
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    18
//
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    19
//////////////////////////////////////////////////////////////////////
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    20
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    21
#include "stdafx.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    22
#include "Client.h"
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    23
#include "ServerManager.h"
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 CServerManager* 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
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    29
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    30
//#define LOG_CLIENT
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    31
#if defined(LOG_CLIENT) && defined(_DEBUG)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    32
extern char TCDebugMsg[];
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    33
#define TCDEBUGOPEN() if (gDoLogging) { gManager->m_DebugLog->WaitForAccess(); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    34
#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
    35
#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
    36
#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
    37
#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
    38
#define TCDEBUGCLOSE() if (gDoLogging) { gManager->m_DebugLog->ReleaseAccess(); }
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    39
#else
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    40
#define TCDEBUGOPEN()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    41
#define TCDEBUGLOGS(s)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    42
#define TCDEBUGLOGA1(s, a1)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    43
#define TCDEBUGLOGA2(s, a1, a2)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    44
#define TCDEBUGLOGA3(s, a1, a2, a3)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    45
#define TCDEBUGCLOSE()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    46
#endif
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    47
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    48
//////////////////////////////////////////////////////////////////////
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    49
// Construction/Destruction
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    50
//////////////////////////////////////////////////////////////////////
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    51
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    52
CClient::CClient()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    53
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    54
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    55
	TCDEBUGLOGS("CClient::CClient\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    56
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    57
	m_InputStream = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    58
	m_MessageFile = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    59
	m_ErrorMonitor = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    60
	m_Connection = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    61
	m_Status = eStopped;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    62
	m_ClientId = -1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    63
	m_Options.ostVersion = 1;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    64
	m_Options.unWrapFormat = DEFAULT_UNWRAP_OPTION;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    65
	m_MessageDestination = eDestinationInputStream;	// default - changed later
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    66
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    67
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    68
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    69
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    70
CClient::CClient(CConnection* connection, ClientOptions& options, DWORD clientId)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    71
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    72
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    73
	TCDEBUGLOGS("CClient::CClient\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    74
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    75
	m_Connection = connection;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    76
	m_Options.ostVersion = options.ostVersion;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    77
	m_Options.unWrapFormat = options.unWrapFormat;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    78
	m_ClientId = clientId;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    79
	m_Status = eStopped;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    80
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    81
	m_ErrorMonitor = new CErrorMonitor(m_ClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    82
	m_ErrorMonitor->CreateData();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    83
	m_InputStream = NULL; // created on open instead
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    84
	m_MessageFile = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    85
	m_MessageDestination = eDestinationInputStream;	// default - changed later
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    86
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    87
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    88
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    89
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    90
CClient::~CClient()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    91
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    92
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    93
	TCDEBUGLOGS("CClient::~CClient\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    94
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    95
	if (m_ErrorMonitor)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    96
		delete m_ErrorMonitor;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    97
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    98
	if (m_InputStream)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
    99
		delete m_InputStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   100
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   101
	if (m_MessageFile)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   102
		delete m_MessageFile;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   103
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   104
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   105
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   106
BOOL CClient::OpenStream(DestinationOptions* streamOptions)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   107
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   108
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   109
	TCDEBUGLOGS("CClient::OpenStream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   110
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   111
	BOOL done = TRUE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   112
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   113
	if (m_InputStream == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   114
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   115
		m_InputStream = new CInputStream(streamOptions->destinationFile, streamOptions->streamSize, streamOptions->overFlowToFile, m_ClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   116
		m_InputStream->CreateStream();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   117
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   118
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   119
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   120
	return done;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   121
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   122
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   123
BOOL CClient::CloseStream()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   124
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   125
	TCDEBUGOPEN();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   126
	TCDEBUGLOGS("CClient::CloseStream\n");
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   127
	
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   128
	BOOL done = TRUE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   129
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   130
	if (m_InputStream)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   131
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   132
		delete m_InputStream;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   133
		m_InputStream = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   134
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   135
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   136
	TCDEBUGCLOSE();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   137
	return done;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   138
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   139
BOOL CClient::OpenMessageFile(DestinationOptions *messageFileOptions)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   140
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   141
	BOOL done = TRUE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   142
	if (m_MessageFile == NULL)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   143
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   144
		m_MessageFile = new CMessageFile(messageFileOptions->destinationFile, m_ClientId);
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   145
		m_MessageFile->Open();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   146
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   147
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   148
	return done;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   149
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   150
BOOL CClient::CloseMessageFile()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   151
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   152
	BOOL done = TRUE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   153
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   154
	if (m_MessageFile)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   155
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   156
		delete m_MessageFile;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   157
		m_MessageFile = NULL;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   158
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   159
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   160
	return done;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   161
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   162
BOOL CClient::ClearMessageFile()
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   163
{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   164
	BOOL done = TRUE;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   165
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   166
	if (m_MessageFile)
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   167
	{
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   168
		m_MessageFile->ClearFile();
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   169
	}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   170
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   171
	return done;
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   172
}
9d2210c8eed2 Commit changes for 2.1.0
chpeckha
parents:
diff changeset
   173