examples/Base/IPC/ClientServer/Complex/ComplexClientSubSession.cpp

00001 /*
00002 Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
00003 
00004 Redistribution and use in source and binary forms, with or without
00005 modification, are permitted provided that the following conditions are met:
00006 
00007 * Redistributions of source code must retain the above copyright notice, this
00008   list of conditions and the following disclaimer.
00009 * Redistributions in binary form must reproduce the above copyright notice,
00010   this list of conditions and the following disclaimer in the documentation
00011   and/or other materials provided with the distribution.
00012 * Neither the name of Nokia Corporation nor the names of its contributors
00013   may be used to endorse or promote products derived from this software
00014   without specific prior written permission.
00015 
00016 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00017 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00020 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00022 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00023 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00024 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00025 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 
00027 Description: Implementation of the RCountSubSession class  
00028 */
00029 
00030 
00031 
00032 
00033 #include "ComplexClientAndServer.h"
00034 #include "ComplexClient.h"
00035 
00036 
00037 
00041 TInt RCountSubSession::Open(RCountSession &aSession)
00042     {
00043     return CreateSubSession(aSession,ECountServCreateSubSession);
00044         }
00045 
00046 
00053 void RCountSubSession::Close()
00054         {
00055         RSubSessionBase::CloseSubSession(ECountServCloseSubSession);
00056         }
00057 
00058 
00063 TInt RCountSubSession::SetFromString(const TDesC& aString)
00064         {
00065         TIpcArgs args(&aString);
00066     return SendReceive(ECountServInitSubSession, args);
00067         }
00068 
00069 
00074 void RCountSubSession::Increase()  
00075         {
00076         if (SubSessionHandle())
00077                 {
00078                 SendReceive(ECountServIncrease);
00079                 }
00080         }
00081 
00082 
00087 void RCountSubSession::IncreaseBy(TInt anInt)
00088         {
00089         if (SubSessionHandle())
00090                 {
00091                 TIpcArgs args(anInt);
00092             SendReceive(ECountServIncreaseBy, args);
00093                 }
00094         }
00095 
00096 
00101 void RCountSubSession::Decrease() 
00102         {
00103         if (SubSessionHandle())
00104                 {
00105                 SendReceive(ECountServDecrease);
00106                 }
00107         }
00108 
00109 
00114 void RCountSubSession::DecreaseBy(TInt anInt)
00115         {
00116         if (SubSessionHandle())
00117                 {
00118                 TIpcArgs args(anInt);
00119             SendReceive(ECountServDecreaseBy, args);
00120                 }
00121         }
00122 
00123 
00127 void RCountSubSession::Reset()
00128         {
00129         if (SubSessionHandle())
00130                 {
00131                 SendReceive(ECountServReset);
00132                 }
00133         }
00134 
00135 
00141 TInt RCountSubSession::CounterValue()
00142         {
00143         TInt res = KErrNotFound;
00144         TPckgBuf<TInt> pckg;
00145         
00146         if (SubSessionHandle())
00147                 {
00148                   // Note that TPckgBuf is of type TDes8
00149             TIpcArgs args(&pckg);
00150             SendReceive(ECountServValue, args);
00151                 
00152                   // Extract the value returned from the server. 
00153             res = pckg();
00154                 }
00155                 
00156     return res;        
00157         }
00158 
00159 
00160 

Generated by  doxygen 1.6.2