opensrv_plat/messagequeue_api/tsrc/src/messagequeue_apiBlocks.cpp
changeset 0 d0f3a028347a
child 4 38249ef85f99
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/opensrv_plat/messagequeue_api/tsrc/src/messagequeue_apiBlocks.cpp	Tue Feb 02 01:10:06 2010 +0200
@@ -0,0 +1,662 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include <msgqlib.h>
+#include <msg_enums.h>
+#include <msgliterals.h>
+#include <stdlib.h>
+#include <msgqinternal.h>
+#include "messagequeue_api.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+  //-----------------------------------------------------------------------------
+// function_name    : running isolation server exe
+// description      : Deallocates all the data
+// Returns          : None
+//-----------------------------------------------------------------------------
+  int  run_isoserver()
+  {
+    // running isoserver 
+    RProcess isosrv_launcher;
+    TInt lunch_err = 0;
+    _LIT(KProcess, "isoserver.exe");
+    lunch_err = isosrv_launcher.Create( KProcess, KNullDesC );
+     if ( KErrNone != lunch_err ) 
+        {
+        return KErrGeneral;
+            
+        }
+    isosrv_launcher.Resume();
+    return KErrNone;
+  }
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Cmessagequeue_api::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Cmessagequeue_api::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// Cmessagequeue_api::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Cmessagequeue_api::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "TestMessageQCreate", Cmessagequeue_api::TestMessageQCreate ),
+        ENTRY( "TestMessageQSend", Cmessagequeue_api::TestMessageQSend ),
+        ENTRY( "TestMessageQDelete", Cmessagequeue_api::TestMessageQDelete ),
+        ENTRY( "TestMessageQReceive", Cmessagequeue_api::TestMessageQReceive ),
+        ENTRY( "TestMessageQClean", Cmessagequeue_api::TestMessageQClean ),
+        ENTRY( "TestMessageQCheck", Cmessagequeue_api::TestMessageQCheck ),
+        ENTRY( "TestMsgQMaxCheck", Cmessagequeue_api::TestMsgQMaxCheck ),
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// Cmessagequeue_api::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Cmessagequeue_api::TestMessageQCreate( CStifItemParser& aItem )
+    {
+        char smsg[MAX_MSG_SIZE];
+        char rmsg[MAX_MSG_SIZE];
+        int index=0;
+        int timeout = 100;
+        int nBytes;
+        int result = 0;
+        int err = 0;
+        int status = 0;
+        int run_iso;
+        FILE *fp;
+        message_hdr_req *msgHdr = NULL;  
+        message_hdr_resp* msg_struct = NULL;
+        TInt return_value = 0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        //running isoserver   
+        run_iso = run_isoserver(); 
+        if(run_iso)
+           {
+           iLog->Log ( _L ( "running isolation server is failed" ) );
+           return KErrGeneral;
+            }             
+         //create message queue for send request
+        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+           iLog->Log ( _L ( "creating requet queue is failed" ) );
+           return KErrGeneral;
+            }
+       //create message queue for response request
+        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+            iLog->Log ( _L ( "creating requet queue is failed" ) );
+            return KErrGeneral;
+            }
+            index=0;
+            memset( smsg, '\0', MAX_MSG_SIZE );
+            memset( rmsg, '\0', MAX_MSG_SIZE );
+            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+            msgHdr->message_type = EKill_Process;
+            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+            index += sizeof( message_hdr_req );
+            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+            free(msgHdr);           
+           return KErrNone;
+            
+    }
+
+
+TInt Cmessagequeue_api::TestMessageQSend( CStifItemParser& aItem )
+    {
+        char smsg[MAX_MSG_SIZE];
+        char rmsg[MAX_MSG_SIZE];
+        int index=0;
+        int timeout = 100;
+        int nBytes;
+        int result = 0;
+        int err = 0;
+        int status = 0;
+        int run_iso;
+        FILE *fp;
+        message_hdr_req *msgHdr = NULL;  
+        message_hdr_resp* msg_struct = NULL;
+        TInt return_value = 0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        //running isoserver   
+        run_iso = run_isoserver(); 
+        if(run_iso)
+           {
+           iLog->Log ( _L ( "running isolation server is failed" ) );
+           return KErrGeneral;
+            }             
+         //create message queue for send request
+        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+           iLog->Log ( _L ( "creating requet queue is failed" ) );
+           return KErrGeneral;
+            }
+       //create message queue for response request
+        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+            iLog->Log ( _L ( "creating requet queue is failed" ) );
+            return KErrGeneral;
+            }
+            index=0;
+            memset( smsg, '\0', MAX_MSG_SIZE );
+            memset( rmsg, '\0', MAX_MSG_SIZE );
+            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+            msgHdr->message_type = EKill_Process;
+            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+            index += sizeof( message_hdr_req );
+            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+            free(msgHdr);           
+           return KErrNone;
+            
+    }
+
+
+TInt Cmessagequeue_api::TestMessageQDelete( CStifItemParser& aItem )
+    {
+        char smsg[MAX_MSG_SIZE];
+        char rmsg[MAX_MSG_SIZE];
+        int index=0;
+        int timeout = 100;
+        int nBytes;
+        int result = 0;
+        int err = 0;
+        int status = 0;
+        int run_iso;
+        FILE *fp;
+        message_hdr_req *msgHdr = NULL;  
+        message_hdr_resp* msg_struct = NULL;
+        TInt return_value = 0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        //running isoserver   
+        run_iso = run_isoserver(); 
+        if(run_iso)
+           {
+           iLog->Log ( _L ( "running isolation server is failed" ) );
+           return KErrGeneral;
+            }             
+         //create message queue for send request
+        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+           iLog->Log ( _L ( "creating requet queue is failed" ) );
+           return KErrGeneral;
+            }
+       //create message queue for response request
+        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+            iLog->Log ( _L ( "creating requet queue is failed" ) );
+            return KErrGeneral;
+            }
+            index=0;
+            memset( smsg, '\0', MAX_MSG_SIZE );
+            memset( rmsg, '\0', MAX_MSG_SIZE );
+            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+            msgHdr->message_type = EKill_Process;
+            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+            index += sizeof( message_hdr_req );
+            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+            free(msgHdr); 
+            result=MsgQDelete( REQUEST_QUEUE, &err );
+            if(result)
+                {
+            iLog->Log ( _L ( "failing at message queue" ) );  
+            return KErrGeneral;
+                }
+           return KErrNone;
+            
+    }
+
+TInt Cmessagequeue_api::TestMessageQReceive( CStifItemParser& aItem )
+    {
+        char smsg[MAX_MSG_SIZE];
+        char rmsg[MAX_MSG_SIZE];
+        int index=0;
+        int timeout = 100;
+        int nBytes;
+        int result = 0;
+        int err = 0;
+        int status = 0;
+        int run_iso;
+        FILE *fp;
+        message_hdr_req *msgHdr = NULL;  
+        message_hdr_resp* msg_struct = NULL;
+        TInt return_value = 0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        
+        //running isoserver   
+        run_iso = run_isoserver(); 
+        if(run_iso)
+           {
+           iLog->Log ( _L ( "running isolation server is failed" ) );
+           return KErrGeneral;
+            }             
+         //create message queue for send request
+        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+           iLog->Log ( _L ( "creating requet queue is failed" ) );
+           return KErrGeneral;
+            }
+       //create message queue for response request
+        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+        if(err)
+           {
+            iLog->Log ( _L ( "creating requet queue is failed" ) );
+            return KErrGeneral;
+            }
+        //request formation 
+            memset( smsg, '\0', MAX_MSG_SIZE );
+            memset( rmsg, '\0', MAX_MSG_SIZE );
+            
+            //message header use
+            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+            
+            msgHdr->message_type = ELogin_Request;
+            
+            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+            index += sizeof( message_hdr_req );
+            /* Send Message to queueOne */
+                
+            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+                
+            result = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
+                
+                if (status < 0)
+                {
+                return  KErrGeneral;
+                  
+                }
+            
+            index=0;
+            memset( smsg, '\0', MAX_MSG_SIZE );
+            memset( rmsg, '\0', MAX_MSG_SIZE );
+            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+            msgHdr->message_type = EKill_Process;
+            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+            index += sizeof( message_hdr_req );
+            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+            free(msgHdr); 
+            result=MsgQDelete( REQUEST_QUEUE, &err );
+            if(result)
+                {
+            iLog->Log ( _L ( "failing at message queue" ) );  
+            return KErrGeneral;
+                }
+           return KErrNone;
+            
+    }
+
+
+TInt Cmessagequeue_api::TestMessageQCheck( CStifItemParser& aItem )
+    {
+    char smsg[MAX_MSG_SIZE];
+    char rmsg[MAX_MSG_SIZE];
+    int index=0;
+    int timeout = 100;
+    int nBytes;
+    int result = 0,r1=0 ,r2=0;
+    int err = 0;
+    int status = 0;
+    int run_iso;
+    FILE *fp;
+    message_hdr_req *msgHdr = NULL;  
+    message_hdr_resp* msg_struct = NULL;
+    TInt return_value = 0;
+    memset( smsg, '\0', MAX_MSG_SIZE );
+    memset( rmsg, '\0', MAX_MSG_SIZE );
+    //running isoserver   
+    run_iso = run_isoserver(); 
+    if(run_iso)
+       {
+       iLog->Log ( _L ( "running isolation server is failed" ) );
+       return KErrGeneral;
+        }             
+     //create message queue for send request
+    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+    if(err)
+       {
+       iLog->Log ( _L ( "creating requet queue is failed" ) );
+       return KErrGeneral;
+        }
+   
+    //request formation 
+        memset( smsg, '\0', MAX_MSG_SIZE );
+               
+        //message header use
+        msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+        
+        msgHdr->message_type = ELogin_Request;
+        
+        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+        index += sizeof( message_hdr_req );
+        /* Send Message to queueOne */
+            
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        r1 = MsgQCheck(REQUEST_QUEUE,&err);
+        
+        result = MsgQClean(REQUEST_QUEUE,&err);
+        
+        r2 = MsgQCheck(REQUEST_QUEUE,&err);
+        
+        if(r1==r2)
+            {
+            iLog->Log ( _L ( "message q clean  is failed" ) );
+            return KErrGeneral;
+            }
+        index=0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+        msgHdr->message_type = EKill_Process;
+        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+        index += sizeof( message_hdr_req );
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+        free(msgHdr); 
+        result=MsgQDelete( REQUEST_QUEUE, &err );
+        if(result)
+            {
+        iLog->Log ( _L ( "failing at message queue" ) );  
+        return KErrGeneral;
+            }
+       return KErrNone;
+        
+}
+
+TInt Cmessagequeue_api::TestMessageQClean( CStifItemParser& aItem )
+    {
+    char smsg[MAX_MSG_SIZE];
+    char rmsg[MAX_MSG_SIZE];
+    int index=0;
+    int timeout = 100;
+    int nBytes;
+    int result = 0,r1=0 ,r2=0;
+    int err = 0;
+    int status = 0;
+    int run_iso;
+    FILE *fp;
+    message_hdr_req *msgHdr = NULL;  
+    message_hdr_resp* msg_struct = NULL;
+    TInt return_value = 0;
+    memset( smsg, '\0', MAX_MSG_SIZE );
+    memset( rmsg, '\0', MAX_MSG_SIZE );
+    //running isoserver   
+    run_iso = run_isoserver(); 
+    if(run_iso)
+       {
+       iLog->Log ( _L ( "running isolation server is failed" ) );
+       return KErrGeneral;
+        }             
+     //create message queue for send request
+    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+    if(err)
+       {
+       iLog->Log ( _L ( "creating requet queue is failed" ) );
+       return KErrGeneral;
+        }
+   
+    //request formation 
+        memset( smsg, '\0', MAX_MSG_SIZE );
+               
+        //message header use
+        msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+        
+        msgHdr->message_type = ELogin_Request;
+        
+        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+        index += sizeof( message_hdr_req );
+        /* Send Message to queueOne */
+            
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        r1 = MsgQCheck(REQUEST_QUEUE,&err);
+        
+        r1 = MsgQMaxCheck(REQUEST_QUEUE,&err);
+        
+        result = MsgQClean(REQUEST_QUEUE,&err);
+        
+        r2 = MsgQCheck(REQUEST_QUEUE,&err);
+        
+        if(r1==r2)
+            {
+            iLog->Log ( _L ( "message q clean  is failed" ) );
+            return KErrGeneral;
+            }
+        index=0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+        msgHdr->message_type = EKill_Process;
+        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+        index += sizeof( message_hdr_req );
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+        free(msgHdr); 
+        result=MsgQDelete( REQUEST_QUEUE, &err );
+        if(result)
+            {
+        iLog->Log ( _L ( "failing at message queue" ) );  
+        return KErrGeneral;
+            }
+       return KErrNone;
+        
+}
+
+TInt Cmessagequeue_api::TestMsgQMaxCheck( CStifItemParser& aItem )
+    {
+    char smsg[MAX_MSG_SIZE];
+    char rmsg[MAX_MSG_SIZE];
+    int index=0;
+    int timeout = 100;
+    int nBytes;
+    int result = 0,r1=0 ,r2=0;
+    int err = 0;
+    int status = 0;
+    int run_iso;
+    FILE *fp;
+    message_hdr_req *msgHdr = NULL;  
+    message_hdr_resp* msg_struct = NULL;
+    TInt return_value = 0;
+    memset( smsg, '\0', MAX_MSG_SIZE );
+    memset( rmsg, '\0', MAX_MSG_SIZE );
+    //running isoserver   
+    run_iso = run_isoserver(); 
+    if(run_iso)
+       {
+       iLog->Log ( _L ( "running isolation server is failed" ) );
+       return KErrGeneral;
+        }             
+     //create message queue for send request
+    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
+    if(err)
+       {
+       iLog->Log ( _L ( "creating requet queue is failed" ) );
+       return KErrGeneral;
+        }
+   
+    //request formation 
+        memset( smsg, '\0', MAX_MSG_SIZE );
+               
+        //message header use
+        msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
+        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+        
+        msgHdr->message_type = ELogin_Request;
+        
+        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+        index += sizeof( message_hdr_req );
+        /* Send Message to queueOne */
+            
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
+        
+        r1 = MsgQCheck(REQUEST_QUEUE,&err);
+        
+        r1 = MsgQMaxCheck(REQUEST_QUEUE,&err);
+        
+        result = MsgQClean(REQUEST_QUEUE,&err);
+        
+        r2 = MsgQCheck(REQUEST_QUEUE,&err);
+        
+        if(r1==r2)
+            {
+            iLog->Log ( _L ( "message q clean  is failed" ) );
+            return KErrGeneral;
+            }
+        index=0;
+        memset( smsg, '\0', MAX_MSG_SIZE );
+        memset( rmsg, '\0', MAX_MSG_SIZE );
+        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
+        msgHdr->message_type = EKill_Process;
+        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
+        index += sizeof( message_hdr_req );
+        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
+        free(msgHdr); 
+        result=MsgQDelete( REQUEST_QUEUE, &err );
+        if(result)
+            {
+        iLog->Log ( _L ( "failing at message queue" ) );  
+        return KErrGeneral;
+            }
+       return KErrNone;
+        
+}
+
+// -----------------------------------------------------------------------------
+// Cmessagequeue_api::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt Cmessagequeue_api::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove