epoc32/include/uloggerclient.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     2
// All rights reserved.
williamr@4
     3
// This component and the accompanying materials are made available
williamr@4
     4
// under the terms of "Eclipse Public License v1.0"
williamr@4
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     7
//
williamr@4
     8
// Initial Contributors:
williamr@4
     9
// Nokia Corporation - initial contribution.
williamr@4
    10
//
williamr@4
    11
// Contributors:
williamr@4
    12
//
williamr@4
    13
// Description:
williamr@4
    14
// ULogger Client API header
williamr@4
    15
// 
williamr@4
    16
//
williamr@4
    17
williamr@4
    18
/**
williamr@4
    19
 @file
williamr@4
    20
 @publishedPartner
williamr@4
    21
 @prototype
williamr@4
    22
*/
williamr@4
    23
williamr@4
    24
#ifndef ULOGGERCLIENT_H
williamr@4
    25
#define ULOGGERCLIENT_H
williamr@4
    26
williamr@4
    27
#include <e32std.h> // RSessionBase
williamr@4
    28
#include <e32base.h>
williamr@4
    29
#include "uloggerdatatypes.h"
williamr@4
    30
williamr@4
    31
namespace Ulogger
williamr@4
    32
{
williamr@4
    33
williamr@4
    34
/**
williamr@4
    35
Client-side session to the ULogger server.
williamr@4
    36
This class should be used to configure ULogger server.
williamr@4
    37
*/
williamr@4
    38
class RULogger : public RSessionBase
williamr@4
    39
	{	
williamr@4
    40
williamr@4
    41
public:
williamr@4
    42
	/*
williamr@4
    43
	Default constructor.
williamr@4
    44
	*/
williamr@4
    45
	IMPORT_C RULogger();
williamr@4
    46
williamr@4
    47
	/*
williamr@4
    48
	Default destructor.
williamr@4
    49
	Closes the client session.
williamr@4
    50
	*/
williamr@4
    51
	IMPORT_C ~RULogger();
williamr@4
    52
williamr@4
    53
	/**
williamr@4
    54
	Connects a client to the ULogger server.
williamr@4
    55
	If the server isn't already running it will be started.
williamr@4
    56
	To end the server session, use Close().
williamr@4
    57
williamr@4
    58
	@return KErrNone, if successful, otherwise one of the other system-wide
williamr@4
    59
	        error codes returned by RProcess:Create() or
williamr@4
    60
	        RSessionBase::CreateSession().
williamr@4
    61
	*/
williamr@4
    62
	IMPORT_C TInt Connect();
williamr@4
    63
williamr@4
    64
	/**
williamr@4
    65
	Not yet supported, does nothing and returns KErrNotSupported.
williamr@4
    66
williamr@4
    67
	Starts/stops running ULogger as a service. Running ULogger as a service
williamr@4
    68
	means that ULogger is always active in the background, which is necessary
williamr@4
    69
	if the objective is to connect to ULogger from a remote machine, so that 
williamr@4
    70
	ULogger is then listening for remote connections.
williamr@4
    71
	If ULogger is not running as a service, it is only active when it is
williamr@4
    72
	handling a client request or it is currenty logging traces (i.e. the Start()
williamr@4
    73
	function was called).
williamr@4
    74
williamr@4
    75
	@param aRunAsService The flag to indicate whether the server should run as a
williamr@4
    76
	                     service or not
williamr@4
    77
	@return KErrNotSupported, as this function is not yet implemented in the server.
williamr@4
    78
	*/
williamr@4
    79
	IMPORT_C TInt RunAsService(TBool aRunAsService);
williamr@4
    80
williamr@4
    81
	/**
williamr@4
    82
	Starts outputting trace packets.
williamr@4
    83
	Pre-requisite: This will only output trace packets containing filter identifers that 
williamr@4
    84
	match enabled filters. Use SetPrimaryFiltersEnabled(), SetSecondaryFiltersEnabled() and
williamr@4
    85
	SetSecondaryFilteringEnabled() to enable the relevant filters.
williamr@4
    86
williamr@4
    87
	@return KErrNone, if sending the Start message to the server was successful;
williamr@4
    88
			KErrCorrupt, if the ULogger configuration file is corrupt;
williamr@4
    89
	        KErrServerTerminated, if the server is no longer present;
williamr@4
    90
	        KErrServerBusy, if there are no message slots available;
williamr@4
    91
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
    92
	        KErrInUse, if server was started previously;
williamr@4
    93
	        otherwise one of the other system-wide error codes.
williamr@4
    94
	*/	
williamr@4
    95
	IMPORT_C TInt Start();
williamr@4
    96
williamr@4
    97
	/**
williamr@4
    98
	Stops outputting trace packets. 
williamr@4
    99
williamr@4
   100
	@return KErrNone, if sending the Stop message to the server was successful;
williamr@4
   101
	        KErrServerTerminated, if the server is no longer present;
williamr@4
   102
	        KErrServerBusy, if there are no message slots available;
williamr@4
   103
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
   104
	        KErrNotReady, if ULogger wasn't started previously.
williamr@4
   105
	*/
williamr@4
   106
	IMPORT_C TInt Stop();
williamr@4
   107
williamr@4
   108
	/**
williamr@4
   109
	Restarts server.
williamr@4
   110
williamr@4
   111
	@return KErrNone, if sending the Restart message to the server was successful;
williamr@4
   112
			KErrCorrupt, if the ULogger configuration file is corrupt;
williamr@4
   113
	        KErrServerTerminated, if the server is no longer present;
williamr@4
   114
	        KErrServerBusy, if there are no message slots available;
williamr@4
   115
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
   116
	        otherwise one of the other system-wide error codes.
williamr@4
   117
	*/
williamr@4
   118
	IMPORT_C TInt Restart();
williamr@4
   119
williamr@4
   120
	/**
williamr@4
   121
	Enables/disables the specified primary filters.
williamr@4
   122
	This allows output of trace packets containing primary filter identifiers that match the
williamr@4
   123
	enabled primary filters.
williamr@4
   124
	Note: If a trace packet contains a secondary filter identifier, and secondary filtering is
williamr@4
   125
	enabled, the matching secondary filter must also be enabled to allow this packet to be output.
williamr@4
   126
williamr@4
   127
	@param	aFilters	The primary filters to enable/disable
williamr@4
   128
	@param	aEnabled    The boolean to specify the action. ETrue to enable and EFalse to disable.
williamr@4
   129
	@return	KErrNone, if sending the SetPrimaryFiltersEnabled message to the
williamr@4
   130
	                  server was successful;
williamr@4
   131
	        KErrArgument, if the specified array of filters contains more than 
williamr@4
   132
	                      KMaxPrimaryFiltersLimit elements or the array is empty;
williamr@4
   133
	        KErrCorrupt, if the ULogger configuration file is corrupt;
williamr@4
   134
            otherwise one of the other system-wide error codes.
williamr@4
   135
	*/
williamr@4
   136
	IMPORT_C TInt SetPrimaryFiltersEnabled(const CArrayFixFlat<TUint8>& aFilters, TBool aEnabled);
williamr@4
   137
williamr@4
   138
	/**
williamr@4
   139
	Gets all enabled primary filters.
williamr@4
   140
williamr@4
   141
	@param	aFilters 	The array to be populated with enabled filters
williamr@4
   142
	@return	KErrNone, if sending the PrimaryFiltersEnabled message to the
williamr@4
   143
	                  server was successful;
williamr@4
   144
	        KErrCorrupt, if the ULogger configuration file is corrupt;
williamr@4
   145
	        otherwise one of the other system-wide error codes.
williamr@4
   146
	*/
williamr@4
   147
	IMPORT_C TInt GetPrimaryFiltersEnabled(CArrayFixFlat<TUint8>& aFilters);
williamr@4
   148
williamr@4
   149
	/**
williamr@4
   150
	Enables/disables the specified secondary filters.
williamr@4
   151
	This allows output of trace packets containing secondary filter identifiers that match the 
williamr@4
   152
	enabled secondary filters.
williamr@4
   153
	Note1: Secondary filters are only relevant when secondary filtering is
williamr@4
   154
	       enabled (see SetSecondaryFilteringEnabled()). If secondary filtering
williamr@4
   155
	       is disabled, trace packets are logged regardless of any secondary filter identifiers. 
williamr@4
   156
	Note2: Enabling secondary filters will automatically enable secondary filtering.
williamr@4
   157
	Note3: Primary filtering is always enabled and therefore there is no
williamr@4
   158
	       equivalent method for enabling/disabling primary filtering.
williamr@4
   159
williamr@4
   160
	@param	aFilters 	The secondary filters to enable/disable
williamr@4
   161
	@param	aEnabled 	The boolean to specify the action. ETrue to enable and EFalse to disable.
williamr@4
   162
	@return	KErrNone, if sending the SetSecondaryFiltersEnabled message to the
williamr@4
   163
	                  server was successful;
williamr@4
   164
	        KErrArgument, if the specified array of filters contains more than 
williamr@4
   165
	                      KMaxSecondaryFiltersLimit elements, the array is empty or 
williamr@4
   166
	                      number of currently set filters plus number of elements in aFilters array
williamr@4
   167
	                      is greather than KMaxSecondaryFiltersLimit;
williamr@4
   168
	        KErrCorrupt, if the ULogger configuration file is corrupt;	                      
williamr@4
   169
            otherwise one of the other system-wide error codes.
williamr@4
   170
	*/
williamr@4
   171
	IMPORT_C TInt SetSecondaryFiltersEnabled(const RArray<TUint32>& aFilters, TBool aEnabled);
williamr@4
   172
williamr@4
   173
	/**
williamr@4
   174
	Gets all enabled secondary filters.
williamr@4
   175
williamr@4
   176
	@param	aFilters 	The array to be populated with enabled filters
williamr@4
   177
	@return	KErrNone, if sending the SecondaryFiltersEnabled message to the
williamr@4
   178
	                  server was successful;
williamr@4
   179
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
   180
			KErrCorrupt, if the ULogger configuration file is corrupt;
williamr@4
   181
	        otherwise one of the other system-wide error codes.
williamr@4
   182
	*/
williamr@4
   183
	IMPORT_C TInt GetSecondaryFiltersEnabled(RArray<TUint32>& aFilters);
williamr@4
   184
williamr@4
   185
	/**
williamr@4
   186
	Enables/disables filtering on secondary filters.
williamr@4
   187
	When secondary filtering is enabled, only those trace packets containing a 
williamr@4
   188
	secondary filter identifier matching an enabled secondary filter are output
williamr@4
   189
	(see SetSecondaryFiltersEnabled()). Note that trace packets must also contain 
williamr@4
   190
	a primary filter identifier matching an enabled primary filter in order to be output
williamr@4
   191
	(see SetPrimaryFilterEnabled()).
williamr@4
   192
williamr@4
   193
	@param	aEnabled     The boolean to specify the action. ETrue to enable and EFalse to disable.
williamr@4
   194
	@return KErrNone, if sending the SetSecondaryFilteringEnabled message to the
williamr@4
   195
	                  server was successful;
williamr@4
   196
	       	KErrCorrupt, if the ULogger configuration file is corrupt; 
williamr@4
   197
	        otherwise one of the other system-wide error codes.
williamr@4
   198
	*/
williamr@4
   199
	IMPORT_C TInt SetSecondaryFilteringEnabled(TBool aEnabled);
williamr@4
   200
williamr@4
   201
	/**
williamr@4
   202
	Gets secondary filtering enabled value.
williamr@4
   203
williamr@4
   204
	@param	aEnabled 	The boolean to be populated with the secondary filtering enabled value
williamr@4
   205
	@return	KErrNone, if sending the SecondaryFilteringEnabled message to the
williamr@4
   206
	                  server was successful;
williamr@4
   207
	        otherwise one of the other system-wide error codes.
williamr@4
   208
	*/
williamr@4
   209
	IMPORT_C TInt GetSecondaryFilteringEnabled(TBool& aEnabled);
williamr@4
   210
williamr@4
   211
	/**
williamr@4
   212
	Sets which output plug-in is to be used for outputting trace packets. 
williamr@4
   213
	The plug-in that is passed to this method needs to be one of the
williamr@4
   214
	plug-ins reported by InstalledOutputPlugins();
williamr@4
   215
williamr@4
   216
	@param	aPluginName The name of the plug-in to be used, needs to be one of
williamr@4
   217
	                    the names returned by InstalledOutputPlugins()
williamr@4
   218
	@return	KErrNone, if sending the SetActiveOutputPlugin message to the server
williamr@4
   219
	                  was successful;
williamr@4
   220
	        KErrAlreadyExists, if aPluginName value was previously set;
williamr@4
   221
	        KErrNotFound, if aPluginName does not match the name of an existing Ulogger output plug-in;
williamr@4
   222
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
   223
	        KErrArgument, if passed descriptor is empty;
williamr@4
   224
	        otherwise one of the other system-wide error codes.
williamr@4
   225
	*/
williamr@4
   226
	IMPORT_C TInt ActivateOutputPlugin(const TDesC8& aPluginName);
williamr@4
   227
williamr@4
   228
	/**
williamr@4
   229
	Gets the active output plug-in.
williamr@4
   230
williamr@4
   231
	@param	aPluginName	The 8-bit descriptor to be populated with the name of
williamr@4
   232
	                    the active output plug-in (max length: KMaxPath).
williamr@4
   233
	@return	KErrNone, if sending the ActiveOutputPlugin message to the
williamr@4
   234
	                  server was successful;
williamr@4
   235
	        KErrOverflow, if the passed-in descriptor is smaller than the length
williamr@4
   236
	                      of the plug-in name;
williamr@4
   237
	        KErrNotFound, if no output plug-in has been set;
williamr@4
   238
	        otherwise one of the other system-wide error codes.
williamr@4
   239
	*/
williamr@4
   240
	IMPORT_C TInt GetActiveOutputPlugin(TDes8& aPluginName);
williamr@4
   241
williamr@4
   242
	/**
williamr@4
   243
	Gets all the installed output plug-ins. 
williamr@4
   244
williamr@4
   245
	@param	aPluginNames The array to be populated with the installed plug-in filename and plug-in names.
williamr@4
   246
	@return	KErrNone, if sending the InstalledOutputPlugins message to the
williamr@4
   247
	                  server was successful;
williamr@4
   248
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
   249
	        otherwise one of the other system-wide error codes.
williamr@4
   250
	*/
williamr@4
   251
	IMPORT_C TInt GetInstalledOutputPlugins(CArrayPtrFlat<HBufC8>& aPluginNames);
williamr@4
   252
williamr@4
   253
	/**
williamr@4
   254
	Sets which input plug-in is to be used for sending messages to ULogger from a
williamr@4
   255
	remote machine. This is only relevant for the remote control functionality
williamr@4
   256
	of ULogger, which allows a remote machine to control the operation of
williamr@4
   257
	ULogger, instead of a client on the device using RULogger.
williamr@4
   258
	The plug-in that is passed to this method needs to be one of the
williamr@4
   259
	plug-ins reported by GetInstalledInputPlugins.
williamr@4
   260
williamr@4
   261
	@param	aPluginName	The name of the input plug-in to be activated.	
williamr@4
   262
	@return	KErrNone, if sending the SetActiveInputPlugin message to the server
williamr@4
   263
	                  was successful;
williamr@4
   264
	        KErrAlreadyExists, if aPluginName value was previously set;
williamr@4
   265
	        KErrNotFound, if aPluginName does not match the name of an existing Ulogger input plug-in;
williamr@4
   266
	        KErrNoMemory, if there is insufficient memory available;
williamr@4
   267
	        KErrArgument, if passed descriptor is empty;
williamr@4
   268
	        otherwise one of the other system-wide error codes.
williamr@4
   269
	*/
williamr@4
   270
	IMPORT_C TInt ActivateInputPlugin(const TDesC8& aPluginName);	
williamr@4
   271
williamr@4
   272
	/**
williamr@4
   273
	Gets the active input plug-in.
williamr@4
   274
williamr@4
   275
	@param	aPluginName	The 8-bit descriptor to be populated with the name of
williamr@4
   276
	                    the active plug-in (max length: KMaxPath).
williamr@4
   277
	@return	KErrNone, if sending the ActiveInputPlugin message to the
williamr@4
   278
	                  server was successful;
williamr@4
   279
	        KErrOverflow, if the passed-in descriptor is smaller than the length
williamr@4
   280
	                      of the plug-in name;
williamr@4
   281
	        KErrNotFound, if no input plug-in has been set;
williamr@4
   282
	        otherwise one of the other system-wide error codes.
williamr@4
   283
	*/
williamr@4
   284
	IMPORT_C TInt GetActiveInputPlugin(TDes8& aPluginName);
williamr@4
   285
williamr@4
   286
	/**
williamr@4
   287
	Deactivates the currently active input plug-in.
williamr@4
   288
williamr@4
   289
	@return	KErrNone, if sending the DeActivateInputPlugin message to the server
williamr@4
   290
	                  was successful;
williamr@4
   291
	        KErrNotFound, if no input plug-in has been set;
williamr@4
   292
	        otherwise one of the other system-wide error codes.
williamr@4
   293
	*/
williamr@4
   294
	IMPORT_C TInt DeActivateInputPlugin();
williamr@4
   295
williamr@4
   296
	/**
williamr@4
   297
	Gets all installed input plug-ins.
williamr@4
   298
williamr@4
   299
	@param	aPluginNames The array to be populated with the installed input plug-in names.
williamr@4
   300
	@return	KErrNone, if sending the GetInstalledInputPlugins message to the
williamr@4
   301
	                  server was successful;
williamr@4
   302
	        otherwise one of the other system-wide error codes.
williamr@4
   303
	*/
williamr@4
   304
	IMPORT_C TInt GetInstalledInputPlugins(CArrayPtrFlat<HBufC8>& aPluginNames);
williamr@4
   305
williamr@4
   306
	/**
williamr@4
   307
	Adds a configuration to a plug-in (output or input). This is specific to the plug-in.
williamr@4
   308
williamr@4
   309
	Example1: aPluginName="uloggerfileplugin",   aConfiguration.SetKey("output_path"), aConfiguration.SetValue(_L("c:\\logs\\ulogger\\tracelogs.btl"))
williamr@4
   310
	Example2: aPluginName="uloggerserialplugin", aConfiguration.SetKey("baudrate") , aConfiguration.SetValue("115200")
williamr@4
   311
williamr@4
   312
	@param aPluginName 	The plug-in name (without the .dll extension)
williamr@4
   313
	@param aConfiguration TPluginConfiguration (key-value type configuration)
williamr@4
   314
	@return	KErrNone, if sending the SetPluginConfigurations message to the
williamr@4
   315
	                  server was successful;
williamr@4
   316
	        KErrNotFound, if aPluginName does not match the name of an existing ULogger plug-in (output or input);
williamr@4
   317
	        KErrArgument, if aPluginName is an empty descriptor;
williamr@4
   318
	        otherwise one of the other system-wide error codes.
williamr@4
   319
	*/
williamr@4
   320
	IMPORT_C TInt SetPluginConfigurations(const TDesC8& aPluginName, const TPluginConfiguration& aConfiguration);
williamr@4
   321
williamr@4
   322
	/**
williamr@4
   323
	Gets all configurationas for the specified plug-in (output or input).
williamr@4
   324
williamr@4
   325
	@param aPluginName 	The name of the plug-in. This is mapped to the plug-in
williamr@4
   326
	                   file name, it can be retrieved by calling
williamr@4
   327
	                   GetInstalledOutputPlugins and GetInstalledInputPlugins
williamr@4
   328
	@param aConfigurations The array that is to be populated with plug-in
williamr@4
   329
	                       configuration items. Ownership of any objects
williamr@4
   330
	                       appended to this array is passed to the caller.
williamr@4
   331
	@return	KErrNone, if sending the PluginConfigurations message to the
williamr@4
   332
	                  server was successful;
williamr@4
   333
            KErrNotFound, if aPluginName does not match the name of an existing ULogger plug-in (output or input);
williamr@4
   334
            KErrArgument, if aPluginName is an empty descriptor;
williamr@4
   335
	        otherwise one of the other system-wide error codes.
williamr@4
   336
	          
williamr@4
   337
	*/
williamr@4
   338
	IMPORT_C TInt GetPluginConfigurations(const TDesC8& aPluginName, RPointerArray<TPluginConfiguration>& aConfigurations);
williamr@4
   339
williamr@4
   340
	/**
williamr@4
   341
	Removes all the configurations of the specified plug-in
williamr@4
   342
williamr@4
   343
	@param	aPluginName	  The plug-in name whose settings are to be removed
williamr@4
   344
	@return	KErrNone, if sending the RemovePluginConfigurations message to the
williamr@4
   345
	                  server was successful;
williamr@4
   346
	        KErrNotFound, if aPluginName does not match the name of an existing ULogger plug-in (output or input)
williamr@4
   347
	        			  or the plug-in had no settings;
williamr@4
   348
            KErrArgument, if aPluginName is an empty descriptor;
williamr@4
   349
	        otherwise one of the other system-wide error codes.
williamr@4
   350
	*/
williamr@4
   351
	IMPORT_C TInt RemovePluginConfigurations(const TDesC8& aPluginName);
williamr@4
   352
williamr@4
   353
	/**
williamr@4
   354
	Sets the size of the trace buffer, specified in KB (default: 1024KB).
williamr@4
   355
	The trace buffer is the buffer that UTrace uses to hold the trace packets
williamr@4
   356
	before they are output (using the currently active output plug-in).
williamr@4
   357
	See also the documentation of SetNotificationSize().
williamr@4
   358
williamr@4
   359
	@param	aSize 		The desired new trace buffer size in KB
williamr@4
   360
	@return	KErrNone, if sending the SetBufferSize message to the server was
williamr@4
   361
	                  successful;
williamr@4
   362
	        KErrArgument, if aSize value is not in range [1-1024];
williamr@4
   363
	        KErrGeneral, if aSize value is smaller than data notification size;
williamr@4
   364
            otherwise one of the other system-wide error codes.
williamr@4
   365
	*/
williamr@4
   366
	IMPORT_C TInt SetBufferSize(TInt aSize);
williamr@4
   367
williamr@4
   368
	/**
williamr@4
   369
	Gets the size of the trace buffer in KB.
williamr@4
   370
	See SetBufferSize() for an explanation of the trace buffer size.
williamr@4
   371
williamr@4
   372
	@param	aSize 		The TInt to be populated with the trace buffer size in KB.
williamr@4
   373
	@return	KErrNone, if sending the BufferSize message to the server was
williamr@4
   374
	                  successful;
williamr@4
   375
	        otherwise one of the other system-wide error codes.
williamr@4
   376
	*/
williamr@4
   377
	IMPORT_C TInt GetBufferSize(TInt& aSize);
williamr@4
   378
williamr@4
   379
   /**
williamr@4
   380
	Sets the data notification size, specified in KB (default: 512KB).
williamr@4
   381
	The data notification size is a threshold on the trace buffer usage, above
williamr@4
   382
	which the trace buffer is flushed, i.e. all the trace packets in the trace buffer
williamr@4
   383
	are output using the active output plug-in.
williamr@4
   384
	See also the documentation of SetBufferSize().
williamr@4
   385
williamr@4
   386
	@param	aSize 		The desired new data notification size in KB
williamr@4
   387
	@return	KErrNone, if sending the SetNotificationSize message to the server
williamr@4
   388
	                  was successful;
williamr@4
   389
	        KErrArgument, if aSize value is not in range [0-1024];
williamr@4
   390
	        KErrGeneral, if aSize value is greater than trace buffer size;
williamr@4
   391
	        otherwise one of the other system-wide error codes.
williamr@4
   392
	*/
williamr@4
   393
	IMPORT_C TInt SetNotificationSize(TInt aSize);
williamr@4
   394
williamr@4
   395
	/**
williamr@4
   396
	Gets the data notification size.
williamr@4
   397
	See SetNotificationSize() for an explanation of the data notification size.
williamr@4
   398
williamr@4
   399
	@param	aSize 		The TInt to be populated with the data notification size in KB.
williamr@4
   400
	@return	KErrNone, if sending the NotificationSize message to the server was
williamr@4
   401
	                  successful;
williamr@4
   402
	        otherwise one of the other system-wide error codes.
williamr@4
   403
	*/		
williamr@4
   404
	IMPORT_C TInt GetNotificationSize(TInt& aSize);
williamr@4
   405
williamr@4
   406
	/**
williamr@4
   407
	Sets the trace buffer mode.
williamr@4
   408
williamr@4
   409
	@param	aMode		The buffer mode: 1 if Straight
williamr@4
   410
										 0 if Circular
williamr@4
   411
	@return	KErrNone, if sending the SetBufferMode message to the server was
williamr@4
   412
	                  successful;
williamr@4
   413
	        KErrArgument, if the specified mode is not one of 0 or 1;
williamr@4
   414
	        otherwise one of the other system-wide error codes.
williamr@4
   415
	*/
williamr@4
   416
	IMPORT_C TInt SetBufferMode(TInt aMode);
williamr@4
   417
williamr@4
   418
	/**
williamr@4
   419
	Gets the trace buffer mode.
williamr@4
   420
williamr@4
   421
	@param	aMode 		The TInt to be populated with the buffer mode: 1 if Straight
williamr@4
   422
									 		                		   0 if Circular
williamr@4
   423
	@return	KErrNone, if sending the BufferMode message to the server was
williamr@4
   424
	                  successful;
williamr@4
   425
	        otherwise one of the other system-wide error codes.
williamr@4
   426
	*/
williamr@4
   427
	IMPORT_C TInt GetBufferMode(TInt& aMode);
williamr@4
   428
williamr@4
   429
	/**
williamr@4
   430
	Gets the client side version number.
williamr@4
   431
williamr@4
   432
	@return The client side version number.
williamr@4
   433
	*/
williamr@4
   434
	IMPORT_C TVersion Version();
williamr@4
   435
williamr@4
   436
private:
williamr@4
   437
	TInt StartServer();
williamr@4
   438
williamr@4
   439
private:
williamr@4
   440
	TUint32 iReserved1; // For future BC
williamr@4
   441
	TUint32 iReserved2; // For future BC
williamr@4
   442
	};
williamr@4
   443
williamr@4
   444
} // namespace
williamr@4
   445
williamr@4
   446
#endif // ULOGGERCLIENT_H