utilities/serviceipcserver/serviceipcrequest.cpp
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
hgs
parents:
diff changeset
     1
/**
hgs
parents:
diff changeset
     2
   This file is part of CWRT package **
hgs
parents:
diff changeset
     3
hgs
parents:
diff changeset
     4
   Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). **
hgs
parents:
diff changeset
     5
hgs
parents:
diff changeset
     6
   This program is free software: you can redistribute it and/or modify
hgs
parents:
diff changeset
     7
   it under the terms of the GNU (Lesser) General Public License as
hgs
parents:
diff changeset
     8
   published by the Free Software Foundation, version 2.1 of the License.
hgs
parents:
diff changeset
     9
   This program is distributed in the hope that it will be useful, but
hgs
parents:
diff changeset
    10
   WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents:
diff changeset
    11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
hgs
parents:
diff changeset
    12
   (Lesser) General Public License for more details. You should have
hgs
parents:
diff changeset
    13
   received a copy of the GNU (Lesser) General Public License along
hgs
parents:
diff changeset
    14
   with this program. If not, see <http://www.gnu.org/licenses/>.
hgs
parents:
diff changeset
    15
*/
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "serviceipcrequest.h"
hgs
parents:
diff changeset
    19
#include "serviceipcserversession.h"
hgs
parents:
diff changeset
    20
#include <clientinfo.h>
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
namespace WRT
hgs
parents:
diff changeset
    23
{
hgs
parents:
diff changeset
    24
/*!
hgs
parents:
diff changeset
    25
 \class ServiceIPCRequest
hgs
parents:
diff changeset
    26
 Class to encapsulate a service request
hgs
parents:
diff changeset
    27
 */
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
/*!
hgs
parents:
diff changeset
    30
 Constructor
hgs
parents:
diff changeset
    31
 @param aSession session associated with this request
hgs
parents:
diff changeset
    32
 @param aDataLength amount of data to be received in this request
hgs
parents:
diff changeset
    33
 @param aRequestOp operaion name
hgs
parents:
diff changeset
    34
 */
hgs
parents:
diff changeset
    35
ServiceIPCRequest::ServiceIPCRequest(ServiceIPCSession* aSession,
hgs
parents:
diff changeset
    36
                                     qint64 aDataLength,
hgs
parents:
diff changeset
    37
                                     const QString& aRequestOp) 
hgs
parents:
diff changeset
    38
    : QObject(NULL)
hgs
parents:
diff changeset
    39
    , m_Session(aSession)
hgs
parents:
diff changeset
    40
    , m_ClientInfo(NULL)
hgs
parents:
diff changeset
    41
    , m_RequestOp(aRequestOp)
hgs
parents:
diff changeset
    42
    , m_Datalength(aDataLength)
hgs
parents:
diff changeset
    43
{
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
}
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
/*!
hgs
parents:
diff changeset
    48
 Destructor
hgs
parents:
diff changeset
    49
 */
hgs
parents:
diff changeset
    50
ServiceIPCRequest::~ServiceIPCRequest()
hgs
parents:
diff changeset
    51
{
hgs
parents:
diff changeset
    52
    delete m_ClientInfo;
hgs
parents:
diff changeset
    53
}
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
/*!
hgs
parents:
diff changeset
    56
 Get the requested operation
hgs
parents:
diff changeset
    57
 @return QString operation ID
hgs
parents:
diff changeset
    58
 */
hgs
parents:
diff changeset
    59
const QString& ServiceIPCRequest::getOperation()
hgs
parents:
diff changeset
    60
{
hgs
parents:
diff changeset
    61
    return m_RequestOp;
hgs
parents:
diff changeset
    62
}
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
/*!
hgs
parents:
diff changeset
    65
 Get the requested data
hgs
parents:
diff changeset
    66
 @return QByteArray data for this operation
hgs
parents:
diff changeset
    67
 */
hgs
parents:
diff changeset
    68
const QByteArray& ServiceIPCRequest::getData()
hgs
parents:
diff changeset
    69
{
hgs
parents:
diff changeset
    70
    return m_RequestData;
hgs
parents:
diff changeset
    71
}
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
/*!
hgs
parents:
diff changeset
    74
 Write some data to the request
hgs
parents:
diff changeset
    75
 @param aData data to write to the socket
hgs
parents:
diff changeset
    76
 */
hgs
parents:
diff changeset
    77
bool ServiceIPCRequest::write(const QByteArray& aData)
hgs
parents:
diff changeset
    78
{
hgs
parents:
diff changeset
    79
    // Do we want to buffer the writes?
hgs
parents:
diff changeset
    80
    return m_Session->write(aData);
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
/*!
hgs
parents:
diff changeset
    84
 Complete the request
hgs
parents:
diff changeset
    85
 @return true if request completed successfully
hgs
parents:
diff changeset
    86
 */
hgs
parents:
diff changeset
    87
bool ServiceIPCRequest::completeRequest()
hgs
parents:
diff changeset
    88
{
hgs
parents:
diff changeset
    89
    return m_Session->completeRequest();
hgs
parents:
diff changeset
    90
}
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
/*!
hgs
parents:
diff changeset
    93
 Append more data when creating the request
hgs
parents:
diff changeset
    94
 @arg aMoreData data to be appended to the request
hgs
parents:
diff changeset
    95
 @return true if m_Datalength now equals the full length
hgs
parents:
diff changeset
    96
 */
hgs
parents:
diff changeset
    97
bool ServiceIPCRequest::addRequestdata(const QByteArray& aMoreData)
hgs
parents:
diff changeset
    98
{
hgs
parents:
diff changeset
    99
    m_RequestData.append(aMoreData);
hgs
parents:
diff changeset
   100
    return (m_RequestData.length() == m_Datalength);
hgs
parents:
diff changeset
   101
}
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
/*!
hgs
parents:
diff changeset
   104
 Sets the client info.  Onwership of the object is passed in.
hgs
parents:
diff changeset
   105
 @arg aClientInfo Client information
hgs
parents:
diff changeset
   106
 */
hgs
parents:
diff changeset
   107
void ServiceIPCRequest::setClientInfo(ClientInfo *aClientInfo)
hgs
parents:
diff changeset
   108
{
hgs
parents:
diff changeset
   109
    delete m_ClientInfo;
hgs
parents:
diff changeset
   110
    m_ClientInfo = aClientInfo;
hgs
parents:
diff changeset
   111
}
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
/*!
hgs
parents:
diff changeset
   114
 Gets the client info.
hgs
parents:
diff changeset
   115
 @return Client Information object.  NULL if none is available
hgs
parents:
diff changeset
   116
 */
hgs
parents:
diff changeset
   117
const ClientInfo *ServiceIPCRequest::clientInfo()
hgs
parents:
diff changeset
   118
{
hgs
parents:
diff changeset
   119
    return m_ClientInfo;
hgs
parents:
diff changeset
   120
}
hgs
parents:
diff changeset
   121
}
hgs
parents:
diff changeset
   122
// END OF FILE