wlanutilities/wlansniffer/wlansnifferapplication/src/wlansniffer.cpp
author hgs
Mon, 24 May 2010 21:11:39 +0300
changeset 31 e8f4211554fb
child 39 7b3e49e4608a
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
* WLAN Sniffer application main class implementation.
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System includes
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <QProcess>
hgs
parents:
diff changeset
    21
#include <QLocale>
hgs
parents:
diff changeset
    22
#include <HbTranslator>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// User includes
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "wlansnifferengine.h"
hgs
parents:
diff changeset
    27
#include "wlansniffermainwindow.h"
hgs
parents:
diff changeset
    28
#include "wlansniffer.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include "OstTraceDefinitions.h"
hgs
parents:
diff changeset
    31
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
    32
#include "wlansnifferTraces.h"
hgs
parents:
diff changeset
    33
#endif
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
/*!
hgs
parents:
diff changeset
    36
    \class WlanSniffer
hgs
parents:
diff changeset
    37
    \brief WLAN Sniffer main class implementation.
hgs
parents:
diff changeset
    38
*/
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
// External function prototypes
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// Local constants
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// ======== LOCAL FUNCTIONS ========
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
/*!
hgs
parents:
diff changeset
    49
    Constructor.
hgs
parents:
diff changeset
    50
    
hgs
parents:
diff changeset
    51
    @param [in] argc Parameter count.
hgs
parents:
diff changeset
    52
    @param [in] argv Parameters. 
hgs
parents:
diff changeset
    53
 */
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
WlanSniffer::WlanSniffer(int argc, char* argv[]) :
hgs
parents:
diff changeset
    56
    HbApplication(argc, argv),
hgs
parents:
diff changeset
    57
    mEngine(new WlanSnifferEngine(this)),
hgs
parents:
diff changeset
    58
    mTranslator(new HbTranslator()),
hgs
parents:
diff changeset
    59
    mMainWindow(0)
hgs
parents:
diff changeset
    60
{
hgs
parents:
diff changeset
    61
    OstTraceFunctionEntry0(WLANSNIFFER_WLANSNIFFER_ENTRY);
hgs
parents:
diff changeset
    62
    
hgs
parents:
diff changeset
    63
    // Install also common localization
hgs
parents:
diff changeset
    64
    mTranslator->loadCommon();
hgs
parents:
diff changeset
    65
    
hgs
parents:
diff changeset
    66
    mMainWindow = QSharedPointer<WlanSnifferMainWindow>(
hgs
parents:
diff changeset
    67
        new WlanSnifferMainWindow(mEngine));
hgs
parents:
diff changeset
    68
    
hgs
parents:
diff changeset
    69
    // Connect exit handling
hgs
parents:
diff changeset
    70
    bool connectStatus = connect(
hgs
parents:
diff changeset
    71
        mEngine,
hgs
parents:
diff changeset
    72
        SIGNAL(exitTriggered()),
hgs
parents:
diff changeset
    73
        this,
hgs
parents:
diff changeset
    74
        SLOT(exitApplication()));
hgs
parents:
diff changeset
    75
    Q_ASSERT(connectStatus);
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
    // Start the Wlan Sniffer Keepalive process, if not started yet
hgs
parents:
diff changeset
    78
    // The purpose of the process is to manage Wlan links opened
hgs
parents:
diff changeset
    79
    // by this application, and the process should be running always
hgs
parents:
diff changeset
    80
    // after the first launch of this application.
hgs
parents:
diff changeset
    81
    if (findKeepaliveProcess() == false) {
hgs
parents:
diff changeset
    82
        QProcess::startDetached("wlansnifferkeepalive");
hgs
parents:
diff changeset
    83
    }
hgs
parents:
diff changeset
    84
    
hgs
parents:
diff changeset
    85
    OstTraceFunctionExit0(WLANSNIFFER_WLANSNIFFER_EXIT);
hgs
parents:
diff changeset
    86
}
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
/*!
hgs
parents:
diff changeset
    89
    Destructor.
hgs
parents:
diff changeset
    90
 */
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
WlanSniffer::~WlanSniffer()
hgs
parents:
diff changeset
    93
{
hgs
parents:
diff changeset
    94
    OstTraceFunctionEntry0(WLANSNIFFER_WLANSNIFFERDESTR_ENTRY);
hgs
parents:
diff changeset
    95
    OstTraceFunctionExit0(WLANSNIFFER_WLANSNIFFERDESTR_EXIT);
hgs
parents:
diff changeset
    96
}
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
/*!
hgs
parents:
diff changeset
    99
    Function for finding possible running keepalive process.
hgs
parents:
diff changeset
   100
    
hgs
parents:
diff changeset
   101
    @return TRUE if a keepalive process was found running.
hgs
parents:
diff changeset
   102
 */
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
bool WlanSniffer::findKeepaliveProcess()
hgs
parents:
diff changeset
   105
{
hgs
parents:
diff changeset
   106
    OstTraceFunctionEntry0(WLANSNIFFER_FINDKEEPALIVEPROCESS_ENTRY);
hgs
parents:
diff changeset
   107
    
hgs
parents:
diff changeset
   108
    // Try to search the keepalive process
hgs
parents:
diff changeset
   109
    bool found = false;
hgs
parents:
diff changeset
   110
    TFileName executableName;
hgs
parents:
diff changeset
   111
    executableName.Copy(_L("wlansnifferkeepalive*"));
hgs
parents:
diff changeset
   112
    TFindProcess processSearch;
hgs
parents:
diff changeset
   113
    TFullName processFullName;
hgs
parents:
diff changeset
   114
    while (processSearch.Next(processFullName) == KErrNone) {
hgs
parents:
diff changeset
   115
        if (processFullName.Match(executableName) != KErrNotFound) { 
hgs
parents:
diff changeset
   116
            found = true;
hgs
parents:
diff changeset
   117
            break;
hgs
parents:
diff changeset
   118
        }
hgs
parents:
diff changeset
   119
    }
hgs
parents:
diff changeset
   120
    
hgs
parents:
diff changeset
   121
    OstTraceExt1(
hgs
parents:
diff changeset
   122
        TRACE_NORMAL,
hgs
parents:
diff changeset
   123
        WLANSNIFFER_FINDKEEPALIVEPROCESS_RESULT,
hgs
parents:
diff changeset
   124
        "WlanSniffer::findKeepaliveProcess;found=%hhu",
hgs
parents:
diff changeset
   125
        found);
hgs
parents:
diff changeset
   126
    
hgs
parents:
diff changeset
   127
    OstTraceFunctionExit0(WLANSNIFFER_FINDKEEPALIVEPROCESS_EXIT);
hgs
parents:
diff changeset
   128
    return found;
hgs
parents:
diff changeset
   129
}
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
/*!
hgs
parents:
diff changeset
   132
    Slot for handling application exit.
hgs
parents:
diff changeset
   133
 */
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
void WlanSniffer::exitApplication()
hgs
parents:
diff changeset
   136
{
hgs
parents:
diff changeset
   137
    OstTraceFunctionEntry0(WLANSNIFFER_EXITAPPLICATION_ENTRY);
hgs
parents:
diff changeset
   138
    
hgs
parents:
diff changeset
   139
    exit();
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    OstTraceFunctionExit0(WLANSNIFFER_EXITAPPLICATION_EXIT);
hgs
parents:
diff changeset
   142
}