diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/publishstd_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/publishstd_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ - - -TB10.1 Example Applications: examples/Base/IPC/pubsub/publishstd.cpp Source File - - - - -

examples/Base/IPC/pubsub/publishstd.cpp

Go to the documentation of this file.
00001 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-00002 // All rights reserved.
-00003 // This component and the accompanying materials are made available
-00004 // under the terms of "Eclipse Public License v1.0"
-00005 // which accompanies this distribution, and is available
-00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
-00007 //
-00008 // Initial Contributors:
-00009 // Nokia Corporation - initial contribution.
-00010 //
-00011 // Contributors:
-00012 //
-00013 // Description:
-00014 // Demonstrates standard state pattern of publishing a byte-array property
-00015 //
-00016 
-00017 
-00018 
-00023 #include "publish.h"
-00024 
-00025 LOCAL_D CConsoleBase* console;
-00026 
-00032 void PublishL(RProperty& aProperty,TDes16& aBuf)
-00033         {
-00034         console->Printf(KTxtPublish);
-00035 
-00036         // Publish the property
-00037         // Failure to publish values in standard state publishing pattern is treated as a serious error
-00038         User::LeaveIfError(aProperty.Set(aBuf));
-00039         console->Printf(KTxtArray);
-00040 
-00041         // Print the value of the byte-array
-00042         TInt bufLength = aBuf.Length();
-00043         for(TInt ix = 0; ix < bufLength; ix++)
-00044                 {
-00045                 console->Printf(KTxtArrayElement,aBuf[ix]);
-00046                 }
-00047         console->Printf(KTxtNewLine);
-00048         }
-00049 
-00050 void DoExampleL()
-00051         {
-00052         console->Printf(KTxtStPublish);
-00053         console->Printf(KTxtDefine);
-00054 
-00055         // Define and pre-allocate memory to the byte-array property
-00056         RProperty::Define(KMyPropertyCat, KMyPropertyName,RProperty::EByteArray,KAllowAllPolicy,KAllowAllPolicy,KArraySize);
-00057         RProperty myProperty;
-00058         // Create a handle to the property
-00059         User::LeaveIfError(myProperty.Attach(KMyPropertyCat,KMyPropertyName,EOwnerThread));
-00060         console->Printf(KTxtCreateHandle);
-00061 
-00062         // Byte-Array property value to be published
-00063         TUint16 array[KArraySize] = {10,20,30,40};
-00064 
-00065         // Descriptor that the array contents are copied into
-00066         TBuf16<KBufSize> buf;
-00067 
-00068         // Copy array contents into the descriptor
-00069         buf.Copy(&array[0],sizeof(array));
-00070         buf.SetLength(KArraySize);
-00071 
-00072         // Publish the property
-00073         PublishL(myProperty,buf);
-00074 
-00075         // Change the array contents
-00076         array[0] = 0x00ab;
-00077         array[1] = 0x00bc;
-00078         array[2] = 0x00cd;
-00079         array[3] = 0x00de;
-00080         array[4] = 0x00ef;
-00081         array[5] = 0x00fa;
-00082 
-00083         buf.Copy(&array[0],sizeof(array));
-00084         // Copy array contents into the descriptor
-00085         buf.SetLength(KArraySize);
-00086 
-00087         // Wait for a key press
-00088         console->Printf(KTxtEnter);
-00089         while(console->Getch()!= EKeyEnter)
-00090                 {
-00091                 console->Printf(KTxtEnter);
-00092                 }
-00093 
-00094         // Publish the property
-00095         PublishL(myProperty,buf);
-00096 
-00097         // Indicate the publisher will not publish any more values
-00098         // The subscriber stops its subscription to the property when this value is published
-00099         buf.Copy(KStop);
-00100         console->Printf(KTxtEnter);
-00101 
-00102         // Wait for a key press
-00103         while(console->Getch()!= EKeyEnter)
-00104                 {
-00105                 console->Printf(KTxtEnter);
-00106                 }
-00107 
-00108         // Publish the property
-00109         PublishL(myProperty,buf);
-00110 
-00111         // Close the handle to the property
-00112 
-00113         myProperty.Close();
-00114 
-00115         // Wait for a key press
-00116         while(console->Getch()!= EKeyEnter)
-00117                 {
-00118                 console->Printf(KTxtEnter);
-00119                 }
-00120 
-00121         // The publisher has finished so delete the property
-00122         User::LeaveIfError(RProperty::Delete(KMyPropertyCat, KMyPropertyName));
-00123         }
-00124 
-00125 GLDEF_C TInt E32Main()
-00126         {
-00127         __UHEAP_MARK;
-00128         CTrapCleanup* cleanup = CTrapCleanup::New();
-00129 
-00130         TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(KConsFullScreen,KConsFullScreen)));
-00131         if (createError)
-00132                 return createError;
-00133 
-00134         TRAPD(mainError, DoExampleL());
-00135         if (mainError)
-00136                 console->Printf(KTextFailed, mainError);
-00137         console->Printf(KTextPressAnyKey);
-00138         console->Getch();
-00139 
-00140         delete console;
-00141         delete cleanup;
-00142         __UHEAP_MARKEND;
-00143         return KErrNone;
-00144         }
-

Generated on Thu Jan 21 10:32:56 2010 for TB10.1 Example Applications by  - -doxygen 1.5.3
- -