--- a/layers.sysdef.xml Sat Apr 24 00:43:26 2010 +0300
+++ b/layers.sysdef.xml Sun May 02 21:46:11 2010 +0300
@@ -1,14 +1,17 @@
<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
<!ENTITY layer_real_source_path "sf/mw/shortlinkconn" >
]>
-<SystemDefinition name="shortlinkconn" schema="1.4.0">
+<SystemDefinition name="shortlinkconn" schema="1.5.1">
<systemModel>
<layer name="mw_layer">
<module name="shortlinkconn">
<unit unitID="lcdo.shortlinkconn" mrp="" bldFile="&layer_real_source_path;/group" name="shortlinkconn" />
</module>
+ <module name="obexthighway">
+ <unit unitID="lcdo.shortlinkconn.obexhighway" mrp="" bldFile="&layer_real_source_path;/localconnectivityservice/obexsendservices/obexhighway" name="shortlinkconn_obexhighway" proFile="obexhighway.pro" qmakeArgs="" />
+ </module>
</layer>
</systemModel>
</SystemDefinition>
--- a/localconnectivityservice/dun/atext/bwins/dunatextu.def Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/bwins/dunatextu.def Sun May 02 21:46:11 2010 +0300
@@ -8,4 +8,5 @@
?ParseCommand@CDunAtCmdHandler@@QAEHAAVTDesC8@@AAH@Z @ 7 NONAME ; int CDunAtCmdHandler::ParseCommand(class TDesC8 &, int &)
?StartUrc@CDunAtCmdHandler@@QAEHXZ @ 8 NONAME ; int CDunAtCmdHandler::StartUrc(void)
?ManageAbortRequest@CDunAtCmdHandler@@QAEHXZ @ 9 NONAME ; int CDunAtCmdHandler::ManageAbortRequest(void)
+ ?SendEchoCharacter@CDunAtCmdHandler@@QAEHPBVTDesC8@@PAVMDunAtCmdEchoer@@@Z @ 10 NONAME ; int CDunAtCmdHandler::SendEchoCharacter(class TDesC8 const *, class MDunAtCmdEchoer *)
--- a/localconnectivityservice/dun/atext/eabi/dunatextu.def Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/eabi/dunatextu.def Sun May 02 21:46:11 2010 +0300
@@ -8,4 +8,5 @@
_ZN16CDunAtCmdHandler8StartUrcEv @ 7 NONAME
_ZN16CDunAtCmdHandler9ResetDataEv @ 8 NONAME
_ZN16CDunAtCmdHandler18ManageAbortRequestEv @ 9 NONAME
+ _ZN16CDunAtCmdHandler17SendEchoCharacterEPK6TDesC8P15MDunAtCmdEchoer @ 10 NONAME
--- a/localconnectivityservice/dun/atext/group/dunatext.mmp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/group/dunatext.mmp Sun May 02 21:46:11 2010 +0300
@@ -27,6 +27,7 @@
VENDORID VID_DEFAULT
SOURCEPATH ../src
+SOURCE DunAtCmdEchoer.cpp
SOURCE DunAtCmdHandler.cpp
SOURCE DunAtCmdPusher.cpp
SOURCE DunAtUrcHandler.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/dun/atext/inc/DunAtCmdEchoer.h Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2010 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: Echoer for AT commands
+*
+*/
+
+#ifndef C_CDUNATCMDECHOER_H
+#define C_CDUNATCMDECHOER_H
+
+#include "DunDataPusher.h"
+
+class MDunStreamManipulator;
+
+/**
+ * Notification interface class for text mode
+ *
+ * @lib dunatext.lib
+ * @since TB9.2
+ */
+NONSHARABLE_CLASS( MDunAtCmdEchoer )
+ {
+
+public:
+
+ /**
+ * Notifies about completed echo in text mode
+ *
+ * @since TB9.2
+ * @return None
+ */
+ virtual void NotifyEchoComplete() = 0;
+
+ };
+
+/**
+ * Class for AT command echoer
+ *
+ * @lib dunatext.lib
+ * @since TB9.2
+ */
+NONSHARABLE_CLASS( CDunAtCmdEchoer ) : public CBase,
+ public MDunCompletionReporter
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ * @param aStreamCallback Callback to stream
+ * @return Instance of self
+ */
+ static CDunAtCmdEchoer* NewL( MDunStreamManipulator* aStreamCallback );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CDunAtCmdEchoer();
+
+ /**
+ * Resets data to initial values
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void ResetData();
+
+ /**
+ * Sends a character to be echoed
+ *
+ * @since TB9.2
+ * @param aInput Input to echo
+ * @param aCallback Callback to echo request completions
+ * @return Symbian error code on error, KErrNone otherwise
+ */
+ TInt SendEchoCharacter( const TDesC8* aInput, MDunAtCmdEchoer* aCallback );
+
+private:
+
+ CDunAtCmdEchoer( MDunStreamManipulator* aStreamCallback );
+
+ void ConstructL();
+
+ /**
+ * Initializes this class
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void Initialize();
+
+// from base class MDunCompletionReporter
+
+ /**
+ * From MDunCompletionReporter.
+ * Gets called when data push is complete
+ *
+ * @since S60 5.0
+ * @param aAllPushed ETrue if all in the queue were pushed, EFalse otherwise
+ * @return None
+ */
+ void NotifyDataPushComplete( TBool aAllPushed );
+
+private: // data
+
+ /**
+ * Notification interface class for echo request completions
+ * Not own.
+ */
+ MDunAtCmdEchoer* iCallback;
+
+ /**
+ * Callback to call when data to push
+ * Not own.
+ */
+ MDunStreamManipulator* iStreamCallback;
+
+ /**
+ * Current state of echoing: active or inactive
+ */
+ TDunState iAtEchoState;
+
+ };
+
+#endif // C_CDUNATCMDECHOER_H
--- a/localconnectivityservice/dun/atext/inc/DunAtCmdHandler.h Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/inc/DunAtCmdHandler.h Sun May 02 21:46:11 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -23,6 +23,7 @@
#include <atextcommon.h>
#include "DunDataPusher.h"
#include "DunAtCmdPusher.h"
+#include "DunAtCmdEchoer.h"
#include "DunAtEcomListen.h"
#include "DunAtModeListen.h"
#include "DunAtNvramListen.h"
@@ -32,6 +33,7 @@
const TInt KDunOkBufLength = 1+1+2+1+1; // <CR>+<LF>+"OK"+<CR>+<LF>
const TInt KDunErrorBufLength = 1+1+5+1+1; // <CR>+<LF>+"ERROR"+<CR>+<LF>
const TInt KDunInputBufLength = (512 + 1); // 512 chars for command + <CR>
+const TInt KDunEscBufLength = 1; // Escape (0x1B) character
class CDunAtUrcHandler;
class MDunConnMon;
@@ -101,6 +103,30 @@
};
/**
+ * Class used for AT command editor mode related functionality
+ *
+ * @lib dunatext.lib
+ * @since TB9.2
+ */
+NONSHARABLE_CLASS( TDunEditorModeInfo )
+ {
+
+public:
+
+ /**
+ * Flag to indicate if content found (not used if iContentFindStarted is EFalse)
+ */
+ TBool iContentFound;
+
+ /**
+ * AT command decoding related information for peeked data
+ * (not to be used if HandleNextDecodedCommand() returns EFalse)
+ */
+ TDunDecodeInfo iPeekInfo;
+
+ };
+
+/**
* Notification interface class for command mode start/end
*
* @lib dunutils.lib
@@ -157,6 +183,15 @@
*/
virtual void NotifyAtCmdHandlingEnd( TInt aStartIndex ) = 0;
+ /**
+ * Notifies about editor mode reply
+ *
+ * @since TB9.2
+ * @param aStart ETrue if start of editor mode, EFalse otherwise
+ * @return None
+ */
+ virtual void NotifyEditorModeReply( TBool aStart ) = 0;
+
};
/**
@@ -237,6 +272,17 @@
IMPORT_C void SetEndOfCmdLine( TBool aClearInput );
/**
+ * Sends a character to be echoed
+ *
+ * @since TB9.2
+ * @param aInput Input to echo
+ * @param aCallback Callback to echo request completions
+ * @return Symbian error code on error, KErrNone otherwise
+ */
+ IMPORT_C TInt SendEchoCharacter( const TDesC8* aInput,
+ MDunAtCmdEchoer* aCallback );
+
+ /**
* Stops sending of AT command from decode buffer
*
* @since S60 3.2
@@ -408,6 +454,14 @@
TBool HandleNextDecodedCommand();
/**
+ * Finds the start of the next command
+ *
+ * @since TB9.2
+ * @return Index to the next command or Symbian error code on error
+ */
+ TInt FindStartOfNextCommand();
+
+ /**
* Manages end of AT command handling
*
* @since S60 5.0
@@ -622,6 +676,24 @@
*/
void ManageCharacterChange( TUint aMode );
+ /**
+ * Manages editor mode reply
+ *
+ * @since TB9.2
+ * @param aStart ETrue if start of editor mode, EFalse otherwise
+ * @return Symbian error code on error, KErrNone otherwise
+ */
+ TInt ManageEditorModeReply( TBool aStart );
+
+ /**
+ * Finds the next content from the input buffer
+ *
+ * @since TB9.2
+ * @param aStart ETrue if start of editor mode, EFalse otherwise
+ * @return ETrue if next content found, EFalse otherwise
+ */
+ TBool FindNextContent( TBool aStart );
+
// from base class MDunAtCmdPusher
/**
@@ -631,6 +703,7 @@
* downstream.
*
* @since S60 5.0
+ * @param aError Error code of command processing completion
* @return None
*/
TInt NotifyEndOfProcessing( TInt aError );
@@ -652,6 +725,24 @@
*/
TBool NotifyNextCommandPeekRequest();
+ /**
+ * Notifies about editor mode reply
+ *
+ * @since TB9.2
+ * @return Symbian error code on error, KErrNone otherwise
+ */
+ TInt NotifyEditorModeReply();
+
+// from base class MDunAtCmdEchoer
+
+ /**
+ * Notifies about completed echo in text mode
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void NotifyEchoComplete();
+
// from base class MDunAtEcomListen
/**
@@ -766,6 +857,11 @@
TBuf8<KDunInputBufLength> iLastBuffer;
/**
+ * Buffer for <ESC> command
+ */
+ TBuf8<KDunEscBufLength> iEscapeBuffer;
+
+ /**
* AT command decoding related information
*/
TDunDecodeInfo iDecodeInfo;
@@ -776,12 +872,23 @@
TDunParseInfo iParseInfo;
/**
+ * Information for editor mode
+ */
+ TDunEditorModeInfo iEditorModeInfo;
+
+ /**
* AT command reply pusher
* Own.
*/
CDunAtCmdPusher* iCmdPusher;
/**
+ * AT command reply echoer
+ * Own.
+ */
+ CDunAtCmdEchoer* iCmdEchoer;
+
+ /**
* URC message handlers
* Own.
*/
--- a/localconnectivityservice/dun/atext/inc/DunAtCmdPusher.h Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/inc/DunAtCmdPusher.h Sun May 02 21:46:11 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -63,6 +63,14 @@
*/
virtual TBool NotifyNextCommandPeekRequest() = 0;
+ /**
+ * Notifies about editor mode reply
+ *
+ * @since TB9.2
+ * @return Symbian error code on error, KErrNone otherwise
+ */
+ virtual TInt NotifyEditorModeReply() = 0;
+
};
/**
@@ -120,10 +128,11 @@
* Starts AT command handling
*
* @since S60 5.0
- * @param aCommand AT command to handle
+ * @param aCommand AT command or editor mode input to handle
+ * @param aNormalMode ETrue if request issue for normal mode
* @return Symbian error code on error, KErrNone otherwise
*/
- TInt IssueRequest( TDesC8& aCommand );
+ TInt IssueRequest( TDesC8& aCommand, TBool aNormalMode=ETrue );
/**
* Stops AT command handling
@@ -151,6 +160,14 @@
*/
void SetEndOfCmdLine();
+ /**
+ * Gets the editor mode status
+ *
+ * @since TB9.2
+ * @return ETrue if in editor mode, EFalse otherwise
+ */
+ TBool EditorMode();
+
private:
CDunAtCmdPusher( RATExt* aAtCmdExt,
@@ -197,6 +214,38 @@
void SendReplyData( TBool aRecvBuffer=ETrue );
/**
+ * Manages change in reply type to EReplyTypeOther
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void ManageReplyTypeChangeToOther();
+
+ /**
+ * Manages change in reply type to EReplyTypeOk
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void ManageReplyTypeChangeToOk();
+
+ /**
+ * Manages change in reply type to EReplyTypeError
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void ManageReplyTypeChangeToError();
+
+ /**
+ * Manages change in reply type to EReplyTypeEditor
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void ManageReplyTypeChangeToEditor();
+
+ /**
* Manages change in reply type
*
* @since S60 5.0
@@ -313,6 +362,11 @@
*/
TBool iStop;
+ /**
+ * Flag indicating if in editor mode
+ */
+ TBool iEditorMode;
+
};
#endif // C_CDUNATCMDPUSHER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/dun/atext/src/DunAtCmdEchoer.cpp Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2010 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: Echoer for AT commands
+*
+*/
+
+#include "DunAtCmdEchoer.h"
+#include "DunDownstream.h"
+#include "DunDebug.h"
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CDunAtCmdEchoer* CDunAtCmdEchoer::NewL(
+ MDunStreamManipulator* aStreamCallback )
+ {
+ CDunAtCmdEchoer* self = new (ELeave) CDunAtCmdEchoer( aStreamCallback );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CDunAtCmdEchoer::~CDunAtCmdEchoer()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::~CDunAtCmdEchoer()") ));
+ ResetData();
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::~CDunAtCmdEchoer() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
+// Resets data to initial values
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdEchoer::ResetData()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::ResetData()") ));
+ // Internal
+ Initialize();
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::ResetData() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
+// Sends a character to be echoed
+// ---------------------------------------------------------------------------
+//
+TInt CDunAtCmdEchoer::SendEchoCharacter(
+ const TDesC8* aInput,
+ MDunAtCmdEchoer* aCallback )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::SendEchoCharacter()") ));
+ if ( iAtEchoState!=EDunStateIdle || iCallback )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::SendEchoCharacter() (not ready) complete") ));
+ return KErrNotReady;
+ }
+ iStreamCallback->NotifyDataPushRequest( aInput, this );
+ iCallback = aCallback;
+ iAtEchoState = EDunStateAtCmdEchoing;
+ FTRACE(FPrint( _L("CDunDownstream::SendEchoCharacter() complete" ) ));
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+// CDunAtCmdEchoer::CDunAtCmdEchoer
+// ---------------------------------------------------------------------------
+//
+CDunAtCmdEchoer::CDunAtCmdEchoer( MDunStreamManipulator* aStreamCallback ) :
+ iStreamCallback( aStreamCallback )
+ {
+ Initialize();
+ }
+
+// ---------------------------------------------------------------------------
+// CDunAtCmdEchoer::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdEchoer::ConstructL()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::ConstructL()") ));
+ if ( !iStreamCallback )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::ConstructL() complete") ));
+ User::Leave( KErrGeneral );
+ }
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::ConstructL() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
+// Initializes this class
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdEchoer::Initialize()
+ {
+ // Don't initialize iStreamCallback here (it is set through NewL)
+ iCallback = NULL;
+ iAtEchoState = EDunStateIdle;
+ }
+
+// ---------------------------------------------------------------------------
+// From MDunCompletionReporter.
+// Gets called when data push is complete
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdEchoer::NotifyDataPushComplete( TBool /*aAllPushed*/ )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::NotifyDataPushComplete()") ));
+ MDunAtCmdEchoer* callback = iCallback;
+ iCallback = NULL;
+ iAtEchoState = EDunStateIdle;
+ callback->NotifyEchoComplete();
+ FTRACE(FPrint( _L("CDunAtCmdEchoer::NotifyDataPushComplete() complete") ));
+ }
--- a/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Sun May 02 21:46:11 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -35,7 +35,8 @@
#include "DunDownstream.h"
#include "DunDebug.h"
-const TInt8 KDunCancel = 24;
+const TInt8 KDunCancel = 24; // Used for line editing, cancel character
+const TInt8 KDunEscape = 27; // Used for editor ending, escape character
// ---------------------------------------------------------------------------
// Two-phased constructor.
@@ -79,6 +80,8 @@
Stop();
// NewL()
DeletePluginHandlers();
+ delete iCmdEchoer;
+ iCmdEchoer = NULL;
delete iNvramListen;
iNvramListen = NULL;
delete iModeListen;
@@ -145,7 +148,16 @@
FTRACE(FPrint( _L("CDunAtCmdHandler::ParseCommand()") ));
FTRACE(FPrint( _L("CDunAtCmdHandler::ParseCommand() received:") ));
FTRACE(FPrintRaw(aCommand) );
- iCommand = &aCommand;
+ TBool editorMode = iCmdPusher->EditorMode();
+ if ( editorMode )
+ {
+ // Note: return here with "no partial input" and some error to fool
+ // CDunUpstream into not reissuing the read request.
+ iCmdPusher->IssueRequest( aCommand, EFalse );
+ aPartialInput = EFalse;
+ return KErrGeneral;
+ }
+ iCommand = &aCommand; // iCommand only for normal mode
// Manage partial AT command
TBool needsCarriage = ETrue;
TBool okToExit = ManagePartialCommand( aCommand, needsCarriage );
@@ -180,7 +192,7 @@
iDecodeInfo.iFirstDecode = ETrue;
iDecodeInfo.iDecodeIndex = 0;
HandleNextDecodedCommand();
- FTRACE(FPrint( _L("CDunAtCmdHandler::ParseCommand() (not supported) complete") ));
+ FTRACE(FPrint( _L("CDunAtCmdHandler::ParseCommand() complete") ));
aPartialInput = EFalse;
return KErrNone;
}
@@ -210,6 +222,19 @@
}
// ---------------------------------------------------------------------------
+// Sends a character to be echoed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CDunAtCmdHandler::SendEchoCharacter( const TDesC8* aInput,
+ MDunAtCmdEchoer* aCallback )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::SendEchoCharacter()") ));
+ TInt retVal = iCmdEchoer->SendEchoCharacter( aInput, aCallback );
+ FTRACE(FPrint( _L("CDunAtCmdHandler::SendEchoCharacter() complete") ));
+ return retVal;
+ }
+
+// ---------------------------------------------------------------------------
// Stops sending of AT command from parse buffer
// ---------------------------------------------------------------------------
//
@@ -223,7 +248,12 @@
return KErrNotReady;
}
iCmdPusher->Stop();
- iHandleState = EDunStateIdle;
+ // The line below is used in the case when this function is called by
+ // CDunUpstream as a result of "data mode ON" change notification.
+ // In this case it is possible that HandleNextDecodedCommand() returns
+ // without resetting the iInputBuffer because of the way it checks the
+ // iHandleState.
+ ManageEndOfCmdHandling( EFalse, ETrue, ETrue );
FTRACE(FPrint( _L("CDunAtCmdHandler::Stop() complete") ));
return KErrNone;
}
@@ -313,28 +343,21 @@
CreateSpecialCommandsL();
// Create the plugin handlers
CreatePluginHandlersL();
+ // Create the echo handler
+ iCmdEchoer = CDunAtCmdEchoer::NewL( iDownstream );
// Create the listeners
- CDunAtEcomListen* ecomListen = CDunAtEcomListen::NewLC( &iAtCmdExt, this );
- CDunAtModeListen* modeListen = CDunAtModeListen::NewLC( &iAtCmdExtCommon,
- this );
- CDunAtNvramListen* nvramListen = CDunAtNvramListen::NewLC( &iAtCmdExt,
- &iAtCmdExtCommon );
+ iEcomListen = CDunAtEcomListen::NewL( &iAtCmdExt, this );
+ iModeListen = CDunAtModeListen::NewL( &iAtCmdExtCommon, this );
+ iNvramListen = CDunAtNvramListen::NewL( &iAtCmdExt, &iAtCmdExtCommon );
+ iAtSpecialCmdHandler = CDunAtSpecialCmdHandler::NewL();
// Set the default modes (+report) and characters
GetAndSetDefaultSettingsL();
// Start listening
- ecomListen->IssueRequest();
- modeListen->IssueRequest();
- nvramListen->IssueRequest();
- CleanupStack::Pop( nvramListen );
- CleanupStack::Pop( modeListen );
- CleanupStack::Pop( ecomListen );
+ iEcomListen->IssueRequest();
+ iModeListen->IssueRequest();
+ iNvramListen->IssueRequest();
CleanupStack::Pop( &iAtCmdExtCommon );
CleanupStack::Pop( &iAtCmdExt );
- iEcomListen = ecomListen;
- iModeListen = modeListen;
- iNvramListen = nvramListen;
-
- iAtSpecialCmdHandler = CDunAtSpecialCmdHandler::NewL();
FTRACE(FPrint( _L("CDunAtCmdHandler::ConstructL() complete") ));
}
@@ -356,6 +379,7 @@
iDecodeInfo.iDecodeIndex = KErrNotFound;
iDecodeInfo.iPrevChar = 0;
iDecodeInfo.iPrevExists = EFalse;
+ iEditorModeInfo.iContentFound = EFalse;
iCmdPusher = NULL;
iEcomListen = NULL;
iModeListen = NULL;
@@ -791,6 +815,34 @@
}
// ---------------------------------------------------------------------------
+// Finds the start of the next command
+// ---------------------------------------------------------------------------
+//
+TInt CDunAtCmdHandler::FindStartOfNextCommand()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::FindStartOfNextCommand()") ));
+ // Note: here we need to avoid internal recursion when parsing the
+ // multiple IsEndOfCommand() and IsDelimiterCharacter() markers inside the
+ // same upstream block.
+ // Skip all the extra markers except the one we already know to exist.
+ TInt i;
+ TInt startVal = iEndIndex + 1;
+ TInt foundIndex = KErrNotFound;
+ TInt count = iCommand->Length();
+ for ( i=startVal; i<count; i++ )
+ {
+ TChar character = (*iCommand)[i];
+ if ( !(IsEndOfCommand(character)||IsDelimiterCharacter(character)) )
+ {
+ foundIndex = i;
+ break;
+ }
+ }
+ FTRACE(FPrint( _L("CDunAtCmdHandler::FindStartOfNextCommand() complete") ));
+ return foundIndex;
+ }
+
+// ---------------------------------------------------------------------------
// Manages end of AT command handling
// ---------------------------------------------------------------------------
//
@@ -814,23 +866,7 @@
FTRACE(FPrint( _L("CDunAtCmdHandler::ManageEndOfCmdHandling() (no external) complete") ));
return;
}
- // Note: here we need to avoid internal recursion when parsing the
- // multiple IsEndOfCommand() and IsDelimiterCharacter() markers inside the
- // same upstream block.
- // Skip all the extra markers except the one we already know to exist.
- TInt i;
- TInt startVal = iEndIndex + 1;
- TInt foundIndex = KErrNotFound;
- TInt count = iCommand->Length();
- for ( i=startVal; i<count; i++ )
- {
- TChar character = (*iCommand)[i];
- if ( !(IsEndOfCommand(character)||IsDelimiterCharacter(character)) )
- {
- foundIndex = i;
- break;
- }
- }
+ TInt foundIndex = FindStartOfNextCommand();
iUpstream->NotifyAtCmdHandlingEnd( foundIndex );
FTRACE(FPrint( _L("CDunAtCmdHandler::ManageEndOfCmdHandling() complete") ));
}
@@ -923,6 +959,7 @@
FTRACE(FPrint( _L("CDunAtCmdHandler::RestoreOldDecodeInfo()") ));
if ( aPeek )
{
+ iEditorModeInfo.iPeekInfo = iDecodeInfo;
iDecodeInfo = aOldInfo;
}
FTRACE(FPrint( _L("CDunAtCmdHandler::RestoreOldDecodeInfo() complete") ));
@@ -1529,6 +1566,65 @@
}
// ---------------------------------------------------------------------------
+// Manages editor mode reply
+// ---------------------------------------------------------------------------
+//
+TInt CDunAtCmdHandler::ManageEditorModeReply( TBool aStart )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::ManageEditorModeReply()" ) ));
+ // Two modes possible here:
+ // 1) Sending data directly from DTE to DCE, i.e. no subsequent data in
+ // the input buffer -> Reissue read request from DTE.
+ // 2) Sending data from input buffer to DCE -> Do not reissue read request
+ // from DTE: send the data in a loop
+ // In summary: send data byte-by-byte in editor mode until end of input.
+ // When end of input notify CDunUpstream to reissue the read request.
+ TBool nextContentFound = FindNextContent( aStart );
+ if ( !nextContentFound )
+ {
+ iUpstream->NotifyEditorModeReply( aStart );
+ FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyEditorModeReply() complete") ));
+ return KErrNone;
+ }
+ // In block mode end the block mode by sending <ESC> and hope it works.
+ iEscapeBuffer.Zero();
+ iEscapeBuffer.Append( KDunEscape );
+ iCmdPusher->IssueRequest( iEscapeBuffer, EFalse );
+ FTRACE(FPrint( _L("CDunAtCmdHandler::ManageEditorModeReply() complete" ) ));
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+// Finds the next content from the input data
+// ---------------------------------------------------------------------------
+//
+TBool CDunAtCmdHandler::FindNextContent( TBool aStart )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::FindNextContent()" ) ));
+ if ( !aStart )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::FindNextContent() (skip) complete" ) ));
+ return iEditorModeInfo.iContentFound;
+ }
+ iEditorModeInfo.iContentFound = EFalse;
+ TInt foundCmdIndex = KErrNotFound;
+ TBool nextContentFound = ExtractNextDecodedCommand( ETrue ); // peek
+ if ( !nextContentFound )
+ {
+ // Check the next subblock
+ foundCmdIndex = FindStartOfNextCommand();
+ }
+ if ( !nextContentFound && foundCmdIndex<0 )
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::FindNextContent() (not found) complete") ));
+ return EFalse;
+ }
+ iEditorModeInfo.iContentFound = ETrue;
+ FTRACE(FPrint( _L("CDunAtCmdHandler::FindNextContent() complete" ) ));
+ return ETrue;
+ }
+
+// ---------------------------------------------------------------------------
// From class MDunAtCmdPusher.
// Notifies about end of AT command processing. This is after all reply data
// for an AT command is multiplexed to the downstream.
@@ -1537,6 +1633,13 @@
TInt CDunAtCmdHandler::NotifyEndOfProcessing( TInt /*aError*/ )
{
FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyEndOfProcessing()" ) ));
+ TBool editorMode = iCmdPusher->EditorMode();
+ if ( editorMode )
+ {
+ ManageEditorModeReply( ETrue );
+ FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyEndOfProcessing() (editor) complete" ) ));
+ return KErrNone;
+ }
HandleNextDecodedCommand();
FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyEndOfProcessing() complete" ) ));
return KErrNone;
@@ -1571,6 +1674,19 @@
}
// ---------------------------------------------------------------------------
+// From class MDunAtCmdPusher.
+// Notifies about editor mode reply
+// ---------------------------------------------------------------------------
+//
+TInt CDunAtCmdHandler::NotifyEditorModeReply()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyEditorModeReply()") ));
+ TInt retVal = ManageEditorModeReply( EFalse );
+ FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyEditorModeReply() complete") ));
+ return retVal;
+ }
+
+// ---------------------------------------------------------------------------
// From class MDunAtEcomListen.
// Notifies about new plugin installation
// ---------------------------------------------------------------------------
--- a/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Sun May 02 21:46:11 2010 +0300
@@ -103,12 +103,12 @@
// Starts AT command handling
// ---------------------------------------------------------------------------
//
-TInt CDunAtCmdPusher::IssueRequest( TDesC8& aCommand )
+TInt CDunAtCmdPusher::IssueRequest( TDesC8& aCommand, TBool aNormalMode )
{
FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest()") ));
FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest() send ATEXT:") ));
FTRACE(FPrintRaw(aCommand) );
- if ( iAtPushState != EDunStateIdle )
+ if ( iAtPushState!=EDunStateIdle && aNormalMode )
{
FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest() (not ready) complete") ));
return KErrNotReady;
@@ -186,10 +186,22 @@
iLastOkPush = EFalse;
iCmdAbort = EFalse;
iStop = EFalse;
+ iEditorMode = EFalse;
FTRACE(FPrint( _L("CDunAtCmdPusher::SetEndOfCmdLine() complete") ));
}
// ---------------------------------------------------------------------------
+// Gets the editor mode status
+// ---------------------------------------------------------------------------
+//
+TBool CDunAtCmdPusher::EditorMode()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdPusher::EditorMode()") ));
+ FTRACE(FPrint( _L("CDunAtCmdPusher::EditorMode() complete") ));
+ return iEditorMode;
+ }
+
+// ---------------------------------------------------------------------------
// CDunAtCmdPusher::CDunAtCmdPusher
// ---------------------------------------------------------------------------
//
@@ -303,6 +315,79 @@
}
// ---------------------------------------------------------------------------
+// Manages change in reply type to EReplyTypeOther
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdPusher::ManageReplyTypeChangeToOther()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToOther()") ));
+ iNoErrorReceived = ETrue;
+ SendReplyData();
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToOther() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
+// Manages change in reply type to EReplyTypeOk
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdPusher::ManageReplyTypeChangeToOk()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToOk()") ));
+ // Skip the "OK" replies if not last. Only push the "OK" reply at the end.
+ // iStop changes it so that the we have to send the "OK" immediately and
+ // only stop with NotifyDataPushComplete()
+ TBool found = iCallback->NotifyNextCommandPeekRequest();
+ if ( !found || iStop )
+ {
+ SendReplyData();
+ }
+ else
+ {
+ iNoErrorReceived = ETrue;
+ SetToIdleAndNotifyEnd( KErrNone );
+ }
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToOk() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
+// Manages change in reply type to EReplyTypeError
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdPusher::ManageReplyTypeChangeToError()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToError()") ));
+ if ( iNoErrorReceived )
+ {
+ iAtCmdExt->ReportExternalHandleCommandError();
+ }
+ SendReplyData();
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToError() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
+// Manages change in reply type to EReplyTypeEditor
+// ---------------------------------------------------------------------------
+//
+void CDunAtCmdPusher::ManageReplyTypeChangeToEditor()
+ {
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToEditor()") ));
+ if ( !iEditorMode )
+ {
+ // First change to editor mode: manage it as EReplyTypeOther (prompt)
+ iEditorMode = ETrue;
+ ManageReplyTypeChangeToOther();
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToEditor() (editor) complete") ));
+ return;
+ }
+ // The same reply to editor mode as before: no reply, only notification for
+ // echo/forwarding purposes
+ iCallback->NotifyEditorModeReply();
+ // Do nothing after notifying. The next ForwardEditorModeInput() triggers
+ // the next call of this function.
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChangeToEditor() complete") ));
+ }
+
+// ---------------------------------------------------------------------------
// Manages change in reply type
// ---------------------------------------------------------------------------
//
@@ -314,41 +399,32 @@
case EReplyTypeOther:
{
FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChange() EReplyTypeOther") ));
- iNoErrorReceived = ETrue;
- SendReplyData();
+ iEditorMode = EFalse;
+ ManageReplyTypeChangeToOther();
}
break;
case EReplyTypeOk:
{
FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChange() EReplyTypeOk") ));
- // Skip the "OK" replies if not last. Only push the "OK" reply at the end.
- // iStop changes it so that the we have to send the "OK" immediately and
- // only stop with NotifyDataPushComplete()
- TBool found = iCallback->NotifyNextCommandPeekRequest();
- if ( !found || iStop )
- {
- SendReplyData();
- }
- else
- {
- iNoErrorReceived = ETrue;
- SetToIdleAndNotifyEnd( KErrNone );
- }
+ iEditorMode = EFalse;
+ ManageReplyTypeChangeToOk();
}
break;
case EReplyTypeError:
{
FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChange() EReplyTypeError") ));
- if ( iNoErrorReceived )
- {
- iAtCmdExt->ReportExternalHandleCommandError();
- }
- SendReplyData();
+ iEditorMode = EFalse;
+ ManageReplyTypeChangeToError();
}
break;
+ case EReplyTypeEditor:
+ FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChange() EReplyTypeEditor") ));
+ ManageReplyTypeChangeToEditor();
+ break;
default:
{
FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChange() EReplyTypeUndefined") ));
+ iEditorMode = EFalse;
SetToIdleAndNotifyEnd( KErrNone );
}
break;
--- a/localconnectivityservice/dun/utils/inc/DunTransporter.h Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/utils/inc/DunTransporter.h Sun May 02 21:46:11 2010 +0300
@@ -83,6 +83,7 @@
EDunStateCallListen, // Transporter state for call state listening
EDunStateAtCmdHandling, // ATEXT state for AT command handling
EDunStateAtCmdPushing, // ATEXT state for AT command reply pushing
+ EDunStateAtCmdEchoing, // ATEXT state for AT command character echoing (text mode)
EDunStateAtUrcHandling, // ATEXT state for URC handling
EDunStateModeListening, // ATEXT state for mode change listening
EDunStateEcomListening, // ATEXT state for ECOM change listening
--- a/localconnectivityservice/dun/utils/inc/DunUpstream.h Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/utils/inc/DunUpstream.h Sun May 02 21:46:11 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 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"
@@ -22,6 +22,7 @@
#include "DunTransUtils.h"
#include "DunStream.h"
#include "DunAtCmdHandler.h"
+#include "DunAtCmdEchoer.h"
#include "DunDataPusher.h"
class MDunCmdModeMonitor;
@@ -132,7 +133,8 @@
NONSHARABLE_CLASS( CDunUpstream ) : public CDunStream,
public MDunAtCmdHandler,
public MDunCmdModeMonitor,
- public MDunAtCmdStatusReporter
+ public MDunAtCmdStatusReporter,
+ public MDunAtCmdEchoer
{
public:
@@ -284,6 +286,15 @@
*/
void NotifyAtCmdHandlingEnd( TInt aStartIndex );
+ /**
+ * Notifies about editor mode reply
+ *
+ * @since TB9.2
+ * @param aStart ETrue if start of editor mode, EFalse otherwise
+ * @return Symbian error code on error, KErrNone otherwise
+ */
+ void NotifyEditorModeReply( TBool aStart );
+
// from base class MDunAtCmdHandler
/**
@@ -322,6 +333,16 @@
*/
void NotifyCommandModeEnd();
+// from base class MDunAtCmdEchoer
+
+ /**
+ * Notifies about completed echo in text mode
+ *
+ * @since TB9.2
+ * @return None
+ */
+ void NotifyEchoComplete();
+
private: // data
/**
--- a/localconnectivityservice/dun/utils/src/DunUpstream.cpp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/dun/utils/src/DunUpstream.cpp Sun May 02 21:46:11 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -499,6 +499,31 @@
}
// ---------------------------------------------------------------------------
+// From class MDunAtCmdStatusReporter
+// Notifies about editor mode reply
+// ---------------------------------------------------------------------------
+//
+void CDunUpstream::NotifyEditorModeReply( TBool aStart )
+ {
+ FTRACE(FPrint( _L("CDunUpstream::NotifyEditorModeReply()" )));
+ if ( iParseData.iDataMode )
+ {
+ FTRACE(FPrint( _L("CDunUpstream::NotifyEditorModeReply() (not ready) complete" )));
+ return;
+ }
+ // If start of editor mode then just reissue the read request
+ // If continuation then echo and reissue the read request
+ if ( aStart )
+ {
+ IssueRequest();
+ FTRACE(FPrint( _L("CDunUpstream::NotifyEditorModeReply() (start) complete" )));
+ return;
+ }
+ iParseData.iAtCmdHandler->SendEchoCharacter( iBufferPtr, this );
+ FTRACE(FPrint( _L("CDunUpstream::NotifyEditorModeReply() complete" )));
+ }
+
+// ---------------------------------------------------------------------------
// From class MDunAtCmdHandler
// Starts URC message handling
// ---------------------------------------------------------------------------
@@ -581,3 +606,15 @@
IssueRequest();
FTRACE(FPrint( _L("CDunUpstream::NotifyCommandModeEnd() complete" )));
}
+
+// ---------------------------------------------------------------------------
+// From class MDunAtCmdEchoer.
+// Notifies about command mode end
+// ---------------------------------------------------------------------------
+//
+void CDunUpstream::NotifyEchoComplete()
+ {
+ FTRACE(FPrint( _L("CDunUpstream::NotifyEchoComplete()" )));
+ IssueRequest();
+ FTRACE(FPrint( _L("CDunUpstream::NotifyEchoComplete() complete" )));
+ }
--- a/localconnectivityservice/group/bld.inf Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/group/bld.inf Sun May 02 21:46:11 2010 +0300
@@ -24,7 +24,6 @@
#include "../obexsendservices/group/bld.inf"
#include "../obexreceiveservices/group/bld.inf"
#include "../dun/group/bld.inf"
-#include "../lcstylustap/group/bld.inf"
#include "../generichid/group/bld.inf"
#include "../headset/group/bld.inf"
--- a/localconnectivityservice/obexreceiveservices/bip/src/BIPController.cpp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/obexreceiveservices/bip/src/BIPController.cpp Sun May 02 21:46:11 2010 +0300
@@ -32,7 +32,7 @@
#include <Obexutils.rsg>
#include <sysutil.h>
#include <bautils.h>
-#include <pathinfo.h> // provides interface for quering system paths
+#include <driveinfo.h>
#include <AknWaitDialog.h>
#include <btengdomaincrkeys.h>
#include <e32math.h>
@@ -635,21 +635,14 @@
iDrive = EDriveZ; // Intialize iDrive to Z
TInt filesize = iBTObject->Length();
- TFileName mmcRoot = PathInfo::MemoryCardRootPath(); // e.g. "E:\\"
-
TInt mmcDrive = KDefaultDrive; // External memory card
TInt imsDrive = KDefaultDrive; // Internal mass storage
- if ( mmcRoot == _L("E:\\"))
- {
- mmcDrive = EDriveE;
- imsDrive = EDriveF;
- }
- else if ( mmcRoot == _L("F:\\") )
- {
- mmcDrive = EDriveF;
- imsDrive = EDriveE;
- }
+ User::LeaveIfError(DriveInfo::GetDefaultDrive(DriveInfo::EDefaultMassStorage, imsDrive));
+ User::LeaveIfError(DriveInfo::GetDefaultDrive(DriveInfo::EDefaultRemovableMassStorage, mmcDrive));
+
+ TRACE_INFO( (_L( "[oppreceiveservice] CheckCapacityL imsDrive=%d; mmcDrive=%d\t" ),imsDrive, mmcDrive ) );
+
TVolumeInfo volumeInfo;
TInt err = iFs.Volume(volumeInfo, imsDrive);
--- a/localconnectivityservice/obexreceiveservices/opp/src/oppcontroller.cpp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/obexreceiveservices/opp/src/oppcontroller.cpp Sun May 02 21:46:11 2010 +0300
@@ -31,7 +31,7 @@
#include <sysutil.h>
#include <btengdomaincrkeys.h>
#include <msvids.h>
-#include <pathinfo.h> // provides interface for quering system paths
+#include <DriveInfo.h>
#include <es_sock.h>
#include <bt_sock.h>
@@ -570,23 +570,15 @@
RFs rfs ;
User::LeaveIfError(rfs.Connect());
-
- TFileName mmcRoot = PathInfo::MemoryCardRootPath(); // e.g. "E:\\"
-
+
TInt mmcDrive = KDefaultDrive; // External memroy card
- TInt imsDrive = KDefaultDrive; // Internal mass storage
+ TInt imsDrive = KDefaultDrive; // Internal mass storage
+
+ User::LeaveIfError(DriveInfo::GetDefaultDrive(DriveInfo::EDefaultMassStorage, imsDrive));
+ User::LeaveIfError(DriveInfo::GetDefaultDrive(DriveInfo::EDefaultRemovableMassStorage, mmcDrive));
- if ( mmcRoot == _L("E:\\"))
- {
- mmcDrive = EDriveE;
- imsDrive = EDriveF;
- }
- else if ( mmcRoot == _L("F:\\") )
- {
- mmcDrive = EDriveF;
- imsDrive = EDriveE;
- }
-
+ TRACE_INFO( (_L( "[oppreceiveservice] CheckCapacityL imsDrive=%d; mmcDrive=%d\t" ),imsDrive, mmcDrive ) );
+
TVolumeInfo volumeInfo;
TInt err = rfs.Volume(volumeInfo, imsDrive);
@@ -595,7 +587,7 @@
if ( !err )
{
// Check capacity on Internal mass storage
- TRACE_INFO( (_L( "[oppreceiveservice] CheckCapacityL Internal mass storage E\t" )) );
+ TRACE_INFO( (_L( "[oppreceiveservice] CheckCapacityL Internal mass storage\t" )) );
if ( !SysUtil::DiskSpaceBelowCriticalLevelL( &rfs, filesize, imsDrive ) )
{
iDrive = imsDrive;
@@ -607,7 +599,7 @@
if ( !err )
{
// Check capacity on Internal mass storage
- TRACE_INFO( (_L( "[oppreceiveservice] CheckCapacityL Checking memory card F\t" )) );
+ TRACE_INFO( (_L( "[oppreceiveservice] CheckCapacityL Checking memory card\t" )) );
if ( !SysUtil::DiskSpaceBelowCriticalLevelL( &rfs, filesize, mmcDrive ) )
{
iDrive = mmcDrive;
--- a/localconnectivityservice/obexsendservices/group/bld.inf Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/obexsendservices/group/bld.inf Sun May 02 21:46:11 2010 +0300
@@ -25,14 +25,10 @@
PRJ_EXPORTS
../obexservicesendutils/inc/BTServiceAPI.h |../../inc/btserviceapi.h
../obexservicesendutils/inc/BTServiceParameterList.h |../../inc/BTServiceParameterList.h
-../rom/obexservicebtsend.iby CORE_MW_LAYER_IBY_EXPORT_PATH(obexservicebtsend.iby)
-../rom/obexserviceirsend.iby CORE_MW_LAYER_IBY_EXPORT_PATH(obexserviceirsend.iby)
../rom/obexservicesendutils.iby CORE_MW_LAYER_IBY_EXPORT_PATH(obexservicesendutils.iby)
PRJ_MMPFILES
../group/sendutils.mmp
-../group/obexservicebtsend.mmp
-../group/obexserviceirsend.mmp
PRJ_TESTMMPFILES
--- a/localconnectivityservice/obexsendservices/group/obexservicebtsend.mmp Sat Apr 24 00:43:26 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2002 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: ?Description
-*
-*/
-
-#include <platform_paths.hrh>
-#include "../obexservicebtsend/inc/BTSendingServiceUIDS.hrh"
-
-#include <data_caging_paths.hrh>
-
-TARGET obexservicebtsend.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D KBTSendingServiceDllUid
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-
-SOURCEPATH ../obexservicebtsend/src
-SOURCE BTSendingService.cpp
-SOURCE BTSSProvider.cpp
-SOURCE btsssendlisthandler.cpp
-// Plugin resources are placed in z:/system/libs/plugins
-//
-SOURCEPATH ../obexservicebtsend/data
-START RESOURCE 101F86A2.rss
-TARGET obexservicebtsend.rsc
-END
-
-SOURCEPATH ../obexservicebtsend/data
-START RESOURCE BtSSMenu.rss
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-USERINCLUDE ../obexservicebtsend/inc
-SYSTEMINCLUDE ../../inc ../../../inc /epoc32/include/ecom
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY euser.lib // Base library
-LIBRARY servicehandler.lib // Application InterWorking
-LIBRARY obexservicesendutils.lib // Tools for bt sending
-LIBRARY btfeatures.lib
-
-DEBUGLIBRARY flogger.lib // File logging services
-
-// End of File
-
-
--- a/localconnectivityservice/obexsendservices/group/obexserviceirsend.mmp Sat Apr 24 00:43:26 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2002 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: ?Description
-*
-*/
-
-#include <platform_paths.hrh>
-#include "../obexserviceirsend/inc/IrSendingServiceUIDS.hrh"
-
-#include <data_caging_paths.hrh>
-
-TARGET obexserviceirsend.dll
-TARGETTYPE PLUGIN
-UID 0x10009d8d KIRSendingServiceDllUid
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-
-SOURCEPATH ../obexserviceirsend/src
-SOURCE IRClient.cpp
-SOURCE IRSendingService.cpp
-SOURCE IRSSProvider.cpp
-
-// Plugin resources are placed in z:/system/libs/plugins
-//
-SOURCEPATH ../obexserviceirsend/data
-START RESOURCE 001F86A2.rss
-#ifdef SYMBIAN_SECURE_ECOM
-TARGET obexserviceirsend.rsc
-#endif
-END
-
-SOURCEPATH ../obexserviceirsend/data
-START RESOURCE irssmenu.rss
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-
-USERINCLUDE ../obexserviceirsend/inc
-SYSTEMINCLUDE ../../inc ../../../inc /epoc32/include/ecom
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY euser.lib // Base library
-LIBRARY servicehandler.lib // Application InterWorking
-LIBRARY obexutils.lib // Tools for bt sending
-LIBRARY irobex.lib
-LIBRARY irda.lib
-LIBRARY efsrv.lib
-LIBRARY featmgr.lib
-DEBUGLIBRARY flogger.lib // File logging services
-
-// End of File
--- a/localconnectivityservice/obexsendservices/group/sendutils.mmp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/obexsendservices/group/sendutils.mmp Sun May 02 21:46:11 2010 +0300
@@ -49,6 +49,8 @@
USERINCLUDE ../obexservicesendutils/inc
SYSTEMINCLUDE ../../inc ../../../inc /epoc32/include/libc
+SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore
+SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets
MW_LAYER_SYSTEMINCLUDE
LIBRARY apgrfx.lib // App Arch Session
@@ -72,6 +74,8 @@
LIBRARY caf.lib // DRM common
LIBRARY xmlframework.lib // XML Framework
LIBRARY featmgr.lib // Inquire supported static feature
+LIBRARY HbCore.lib
+LIBRARY HbWidgets.lib
DEBUGLIBRARY flogger.lib // File logging services
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/inc/btsendingservicedebug.h Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2002 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 defines logging macros for BTSS.
+*
+*/
+
+
+#ifndef BT_SENDING_SERVICE_DEBUG_H
+#define BT_SENDING_SERVICE_DEBUG_H
+
+
+#ifdef _DEBUG
+// ===========================================================================
+#ifdef __WINS__ // File logging for WINS
+// ===========================================================================
+#include <e32std.h>
+#include <f32file.h>
+#include <flogger.h>
+
+_LIT(KLogFile,"btss.log");
+_LIT(KLogDirFullName,"c:\\logs\\");
+_LIT(KLogDir,"btss");
+
+#define FLOG(a) { FPrint(a); }
+#define FTRACE(a) { a; }
+
+// Declare the FPrint function
+//
+inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
+ {
+ VA_LIST list;
+ VA_START(list,aFmt);
+ RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list);
+ }
+
+// ===========================================================================
+#else // RDebug logging for target HW
+// ===========================================================================
+#include <e32svr.h>
+
+#define FLOG(a) { RDebug::Print(a); }
+#define FTRACE(a) { a; }
+
+// Declare the FPrint function
+//
+inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
+ {
+ VA_LIST list;
+ VA_START(list,aFmt);
+ TInt tmpInt = VA_ARG(list, TInt);
+ TInt tmpInt2 = VA_ARG(list, TInt);
+ TInt tmpInt3 = VA_ARG(list, TInt);
+ VA_END(list);
+ RDebug::Print(aFmt, tmpInt, tmpInt2, tmpInt3);
+ }
+
+#endif //__WINS__
+
+// ===========================================================================
+#else // // No loggings --> Reduced binary size
+// ===========================================================================
+#define FLOG(a)
+#define FTRACE(a)
+
+#endif // _DEBUG
+
+
+#endif // BT_SENDING_SERVICE_DEBUG_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/inc/btsendserviceinterface.h Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2010 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: ?Description
+*
+*/
+
+
+#ifndef BTSENDSERVICEINTERFACE_H
+#define BTSENDSERVICEINTERFACE_H
+
+#include <xqserviceprovider.h>
+
+class BtSendManager;
+
+class BTSendServiceInterface : public XQServiceProvider
+{
+ Q_OBJECT
+
+public:
+ BTSendServiceInterface( QObject *parent = 0);
+ inline ~BTSendServiceInterface();
+
+public slots:
+ void send(QVariant data);
+
+
+};
+
+inline BTSendServiceInterface::~BTSendServiceInterface()
+ {
+ }
+
+#endif // BTSENDSERVICEINTERFACE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/inc/btsendserviceprovider.h Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,54 @@
+/*
+ * 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:
+ * class to manage differnt messaging views.
+ *
+ */
+
+#ifndef BTSENDSERVICEPROVIDER_H
+#define BTSENDSERVICEPROVIDER_H
+
+#include <e32base.h>
+#include <QList.h>
+#include <QVariant.h>
+
+class CBTServiceAPI;
+class CBTSSSendListHandler;
+
+
+class CBtSendServiceProvider: public CBase
+ {
+public:
+ /**
+ * constructor
+ */
+ static CBtSendServiceProvider* NewL();
+
+ /**
+ * Destructor.
+ */
+ ~CBtSendServiceProvider();
+
+
+ int send(const QList<QVariant> &arguments);
+private:
+ CBtSendServiceProvider();
+ void ConstructL();
+
+public:
+ CBTSSSendListHandler* iConverter;
+ CBTServiceAPI* iBTSendingService;
+ };
+
+#endif /* BTSENDSERVICEPROVIDER_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/inc/btsssendlisthandler.h Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2007 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: Converter class for converting AIW paramerer list to
+* bt send parameter list
+*
+*/
+
+
+#ifndef BTSSSENDLISTHANDLER_H
+#define BTSSSENDLISTHANDLER_H
+
+#include <e32base.h>
+#include <AiwVariantType.hrh>
+#include <AiwVariant.h>
+#include <AiwGenericParam.h>
+#include <QVariant.h>
+#include <QList.h>
+#include "BTSendingServiceDebug.h"
+
+
+class CBTServiceParameterList;
+
+/**
+ * BTSSend list handler
+ * Converts AIW list to bt sending object list
+ *
+ * @since S60 v3.2
+ */
+class CBTSSSendListHandler : public CActive
+ {
+
+public:
+
+ static CBTSSSendListHandler* NewL();
+ static CBTSSSendListHandler* NewLC();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CBTSSSendListHandler();
+
+ /**
+ * ConvertList
+ *
+ * @since S60 v3.2
+ * @param aOutParamList AIW parameter list
+ * @param aList bt sending parameter list
+ * @return error code
+ */
+ TInt ConvertList(const QList<QVariant> *arguments,CBTServiceParameterList* aList );
+
+
+
+// from base class CActive
+
+ /**
+ * From CActive.
+ * RunL
+ *
+ * @since S60 v3.2
+ */
+ void RunL();
+
+ /**
+ * From CActive.
+ * DoCancel
+ *
+ * @since S60 v3.2
+ */
+ inline void DoCancel();
+
+
+private:
+ CBTSSSendListHandler();
+
+ void ConstructL();
+
+ /**
+ * Add object
+ *
+ * @since S60 v3.2
+ */
+ void AddObject();
+
+ /**
+ * Add object
+ *
+ * @since S60 v3.2
+ */
+ void DoAddObjectL();
+
+private: // data
+
+ /**
+ * BT sending parameter list
+ * Not own.
+ */
+ CBTServiceParameterList* iList;
+
+ /**
+ * AIW parameter list
+ * Not own.
+ */
+// const CAiwGenericParamList* iOutParamList;
+
+ const QList<QVariant> *mArguments;
+
+ /**
+ * List index
+ */
+ TInt iListIndex;
+
+ /**
+ * Sync waiter object
+ */
+ CActiveSchedulerWait iSyncWaiter;
+ };
+
+
+// ---------------------------------------------------------------------------
+// From class CActive.
+// DoCancel()
+// ---------------------------------------------------------------------------
+//
+inline void CBTSSSendListHandler::DoCancel()
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoCancel()"));
+ if ( iSyncWaiter.IsStarted() )
+ {
+ iSyncWaiter.AsyncStop();
+ }
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoCancel() done"));
+ }
+
+#endif // BTSSSENDLISTHANDLER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/obexhighway.pro Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,55 @@
+#
+# 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:
+#
+TEMPLATE = app
+TARGET = obexhighway
+CONFIG += hb \
+ service
+
+MOC_DIR = moc
+OBJECTS_DIR = obj
+
+HEADERS += inc/btsendserviceinterface.h \
+ inc/btsssendlisthandler.h \
+ inc/btsendingservicedebug.h \
+ inc/btsendserviceprovider.h
+
+SOURCES += src/main.cpp \
+ src/btsendserviceinterface.cpp \
+ src/btsssendlisthandler.cpp \
+ src/btsendserviceprovider.cpp
+
+
+INCLUDEPATH += . ../../inc
+
+SERVICE.FILE = xml/obexhighway_conf.xml
+SERVICE.OPTIONS = embeddable \
+ hidden
+
+LIBS += -lhbcore \
+ -lxqservice \
+ -lxqserviceutil \
+ -lobexservicesendutils \
+ -lbtfeatures \
+ -lflogger \
+ -lxqutils
+
+symbian {
+ TARGET.UID3 = 0x2002EA5A
+ TARGET.CAPABILITY = All -TCB
+ }
+BLD_INF_RULES.prj_exports += \
+ "$${LITERAL_HASH}include <platform_paths.hrh>" \
+ "./rom/obexhighway.iby CORE_MW_LAYER_IBY_EXPORT_PATH(obexhighway.iby)"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/rom/obexhighway.iby Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* 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:
+*
+*/
+#ifndef __OBEXHIGHWAY_IBY__
+#define __OBEXHIGHWAY_IBY__
+
+file=ABI_DIR\UREL\obexhighway.exe SHARED_LIB_DIR\obexhighway.exe
+data=DATAZ_\resource\apps\obexhighway.rsc resource\apps\obexhighway.rsc
+data=DATAZ_\private\10003a3f\import\apps\obexhighway_reg.rsc private\10003a3f\import\apps\obexhighway_reg.rsc
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/src/btsendserviceinterface.cpp Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2010 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: ?Description
+*
+*/
+
+
+#include "btsendserviceinterface.h"
+#include "btsendserviceprovider.h"
+
+BTSendServiceInterface::BTSendServiceInterface(QObject* parent)
+: XQServiceProvider("com.nokia.services.btsendservice.imessage.send",parent)
+ {
+ publishAll();
+ }
+
+
+void BTSendServiceInterface::send(QVariant data)
+ {
+ QList<QVariant> arguments;
+
+ if(data.type()==QVariant::String)
+ {
+ arguments.append(data);
+ }
+ else
+ {
+ arguments.append(data.toList());
+ }
+ CBtSendServiceProvider *btSendServiceProvider = NULL;
+ TRAPD(err,btSendServiceProvider = CBtSendServiceProvider::NewL());
+ if(err)
+ return;
+ btSendServiceProvider->send(arguments);
+ delete btSendServiceProvider;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/src/btsendserviceprovider.cpp Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,90 @@
+/*
+ * 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:
+ *
+ */
+
+
+
+#include <btserviceapi.h>
+#include "BTSSSendListHandler.h"
+#include "btsendserviceprovider.h"
+#include <btfeaturescfg.h> // For Enterprise security settings
+#include <btnotif.h> // For Enterprise security notifier
+
+
+CBtSendServiceProvider* CBtSendServiceProvider::NewL()
+ {
+ CBtSendServiceProvider* self = new( ELeave ) CBtSendServiceProvider();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CBtSendServiceProvider::ConstructL()
+ {
+ if(BluetoothFeatures::EnterpriseEnablementL() != BluetoothFeatures::EEnabled)
+ {
+ RNotifier notifier;
+ User::LeaveIfError(notifier.Connect());
+ CleanupClosePushL(notifier);
+ User::LeaveIfError(notifier.StartNotifier(KBTEnterpriseItSecurityInfoNotifierUid, KNullDesC8));
+ CleanupStack::PopAndDestroy(¬ifier);
+
+ //@TODO in old code we don't continue further what needs to be done here
+ }
+ iBTSendingService = CBTServiceAPI::NewL();
+ iConverter = CBTSSSendListHandler::NewL();
+ }
+
+CBtSendServiceProvider::CBtSendServiceProvider()
+ {
+
+ }
+
+
+CBtSendServiceProvider::~CBtSendServiceProvider()
+ {
+ if(iConverter)
+ {
+ delete iConverter;
+ iConverter= NULL;
+ }
+ if(iBTSendingService)
+ {
+ delete iBTSendingService;
+ iBTSendingService = NULL;
+ }
+ }
+
+
+int CBtSendServiceProvider::send(const QList<QVariant> &arguments)
+ {
+ TInt error = KErrNone;
+
+ CBTServiceParameterList* parameterList = NULL;
+ TRAP(error,parameterList= CBTServiceParameterList::NewL());
+ if (error)
+ return error;
+ iConverter->ConvertList( &arguments, parameterList);
+
+ delete iConverter;
+ iConverter = NULL;
+
+ TRAP(error,iBTSendingService->StartSynchronousServiceL( EBTSendingService, parameterList ));
+ if(error)
+ return error;
+ return error;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/src/btsssendlisthandler.cpp Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,195 @@
+/*
+* 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: Converter class implementation for converting AIW paramerer
+* list to bt send parameter list
+*
+*/
+
+
+#include <AiwGenericParam.h>
+
+#include "BTSSSendListHandler.h"
+#include "btserviceparameterlist.h"
+
+#include <xqconversions.h>
+
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CBTSSSendListHandler()
+// ---------------------------------------------------------------------------
+//
+CBTSSSendListHandler::CBTSSSendListHandler(): CActive( EPriorityNormal )
+ {
+ CActiveScheduler::Add(this);
+ }
+
+// ---------------------------------------------------------------------------
+// ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CBTSSSendListHandler::ConstructL()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// NewL()
+// ---------------------------------------------------------------------------
+//
+CBTSSSendListHandler* CBTSSSendListHandler::NewL()
+ {
+ CBTSSSendListHandler* self = CBTSSSendListHandler::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// NewLC()
+// ---------------------------------------------------------------------------
+//
+CBTSSSendListHandler* CBTSSSendListHandler::NewLC()
+ {
+ CBTSSSendListHandler* self = new( ELeave ) CBTSSSendListHandler();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CBTSSSendListHandler
+// ---------------------------------------------------------------------------
+//
+CBTSSSendListHandler::~CBTSSSendListHandler()
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::Destructor"));
+ Cancel();
+ }
+
+// ---------------------------------------------------------------------------
+// ConvertList()
+// ---------------------------------------------------------------------------
+//
+TInt CBTSSSendListHandler::ConvertList( const QList<QVariant> *arguments,
+ CBTServiceParameterList* aList)
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::ConvertList"));
+ iListIndex = 0;
+ mArguments = arguments;
+ iList = aList;
+ iStatus = KRequestPending;
+ AddObject();
+ SetActive();
+
+ iSyncWaiter.Start();
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::ConvertList done"));
+ return iStatus.Int();
+ }
+
+// ---------------------------------------------------------------------------
+// AddObject()
+// ---------------------------------------------------------------------------
+//
+void CBTSSSendListHandler::AddObject()
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::AddObjectL()"));
+ TRAPD(error, DoAddObjectL());
+ if (error != KErrNone )
+ {
+ //Complete request
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, error);
+ }
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::AddObjectL() Done"));
+ }
+
+// ---------------------------------------------------------------------------
+// From class CActive.
+// RunL()
+// ---------------------------------------------------------------------------
+//
+void CBTSSSendListHandler::DoAddObjectL()
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL()"));
+
+ // const TAiwGenericParam* param=&(*iOutParamList)[iListIndex];
+
+ QString string = mArguments->at(iListIndex).toString();
+
+ /* if ( param->SemanticId() != EGenericParamFile )
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL() wrong semantic Id: Leave"));
+ }
+ // Try to add file as an image
+ //
+ if( param->Value().TypeId()== EVariantTypeFileHandle)
+ {
+ TRAPD( retVal, iList->AddImageL( param->Value().AsFileHandle() ));
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL AddImage"));
+ if( retVal != KErrNone )
+ {
+ // File was not an image. We can not use BIP
+ // so add rest of the files as objects
+ //
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL AddImage filed try object"));
+ iList->AddObjectL( param->Value().AsFileHandle() );
+ }
+ }
+ else */
+ // {
+ // TRAPD( retVal, iList->AddImageL( param->Value().AsDes() ) );
+ HBufC* path = XQConversions::qStringToS60Desc(string);
+ TRAPD( retVal, iList->AddImageL(*path));
+ if( retVal != KErrNone )
+ {
+ // File was not an image. We can not use BIP
+ // so add rest of the files as objects
+ //
+ iList->AddObjectL( *path );
+ }
+ // }
+ //Complete request
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL() completed"));
+ }
+// ---------------------------------------------------------------------------
+// From class CActive.
+// RunL()
+// ---------------------------------------------------------------------------
+//
+void CBTSSSendListHandler::RunL()
+ {
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL()"));
+ iListIndex++;
+ if ( mArguments->count() > iListIndex && iStatus.Int() == KErrNone )
+ {
+ iStatus = KRequestPending;
+ AddObject();
+ SetActive();
+ }
+ else
+ {
+ if ( iSyncWaiter.IsStarted() )
+ {
+ iSyncWaiter.AsyncStop();
+ }
+ }
+ FLOG(_L("[BTSS]\t CBTSSSendListHandler::DoAddObjectL() Done"));
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/src/main.cpp Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2010 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: ?Description
+*
+*/
+
+
+#include <hbapplication.h>
+#include "btsendserviceinterface.h"
+
+int main(int argc, char **argv)
+ {
+ QCoreApplication app(argc, argv);
+ BTSendServiceInterface btSendSI;
+ return app.exec();
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/obexsendservices/obexhighway/xml/obexhighway_conf.xml Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<service>
+ <name>com.nokia.services.btsendservice</name>
+ <filepath>No path</filepath>
+ <description>BT Send Service</description>
+ <interface>
+ <name>imessage.send</name>
+ <version>1.0</version>
+ <description>Send interface</description>
+ <customproperty key="txt_aiw_action_text">Via Bluetooth</customproperty>
+ </interface>
+</service>
\ No newline at end of file
--- a/localconnectivityservice/obexsendservices/obexservicesendutils/inc/BTServiceStarter.h Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/obexsendservices/obexservicesendutils/inc/BTServiceStarter.h Sun May 02 21:46:11 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -29,6 +29,7 @@
#include <btengsettings.h>
#include <obexutilsdialog.h>
#include <msvapi.h>
+#include <hb/hbwidgets/hbdeviceprogressdialogsymbian.h>
// DATA TYPES
@@ -105,7 +106,8 @@
public MObexUtilsDialogObserver,
public MObexUtilsProgressObserver,
public MBTEngSdpResultReceiver,
- public MBTEngSettingsObserver
+ public MBTEngSettingsObserver,
+ public MHbDeviceProgressDialogObserver
{
public: // Constructors and destructor
@@ -157,6 +159,18 @@
* @return None.
*/
void DialogDismissed( TInt aButtonId );
+
+ /**
+ * From MHbDeviceProgressDialogObserver
+ *
+ */
+ void ProgressDialogCancelled(const CHbDeviceProgressDialogSymbian * aDialog);
+
+ /**
+ * From MHbDeviceProgressDialogObserver
+ *
+ */
+ void ProgressDialogClosed(const CHbDeviceProgressDialogSymbian * aDialog ) ;
/**
* From MObexUtilsProgressObserver request for number of bytes sent
@@ -413,7 +427,7 @@
CBTDevice* iDevice;
CBTEngDiscovery* iBTEngDiscovery;
CBTServiceParameterList* iList;
- CObexUtilsDialog* iDialog;
+ // CObexUtilsDialog* iDialog;
CBTSController* iController;
TBTServiceType iService;
@@ -438,6 +452,7 @@
TBool iFeatureManagerInitialized;
TBool iTriedBIP;
TBool iTriedOPP;
+ CHbDeviceProgressDialogSymbian *iProgressDialog;
};
#endif // BT_SERVICE_CONTROLLER_H
--- a/localconnectivityservice/obexsendservices/obexservicesendutils/src/BTServiceStarter.cpp Sat Apr 24 00:43:26 2010 +0300
+++ b/localconnectivityservice/obexsendservices/obexservicesendutils/src/BTServiceStarter.cpp Sun May 02 21:46:11 2010 +0300
@@ -29,6 +29,7 @@
#include <obexutilsmessagehandler.h>
#include <btnotif.h>
#include <featmgr.h>
+#include "hbdevicemessageboxsymbian.h"
// CONSTANTS
@@ -37,7 +38,6 @@
const TUint KBTServiceDirectPrinting = 0x1118;
const TUint KBTServiceImagingResponder = 0x111B;
-const TUint KBTProgressInterval = 1000000;
// ============================ MEMBER FUNCTIONS ===============================
@@ -72,7 +72,7 @@
{
FLOG(_L("[BTSU]\t CBTServiceStarter::ConstructL()"));
iDevice = CBTDevice::NewL();
- iDialog = CObexUtilsDialog::NewL( this );
+// iDialog = CObexUtilsDialog::NewL( this );
FeatureManager::InitializeLibL();
iFeatureManagerInitialized = ETrue;
FLOG(_L("[BTSU]\t CBTServiceStarter::ConstructL() completed"));
@@ -108,7 +108,8 @@
delete iController;
delete iBTEngDiscovery;
- delete iDialog;
+ // delete iDialog;
+ delete iProgressDialog;
if(iWaiter && iWaiter->IsStarted() )
{
@@ -166,7 +167,8 @@
TBool offline = EFalse;
if( !power )
{
- offline = CheckOfflineModeL();
+ //offline = CheckOfflineModeL();
+ offline = EFalse;
}
if( !offline )
{
@@ -424,11 +426,16 @@
FLOG(_L("[BTSU]\t CBTServiceStarter::LaunchWaitNoteL()"));
if ( iService == EBTPrintingService )
{
- iDialog->LaunchWaitDialogL( R_BT_PRINTING_WAIT_NOTE );
+ // iDialog->LaunchWaitDialogL( R_BT_PRINTING_WAIT_NOTE );
}
else
{
- iDialog->LaunchWaitDialogL( R_BT_CONNECTING_WAIT_NOTE );
+ // iDialog->LaunchWaitDialogL( R_BT_CONNECTING_WAIT_NOTE );
+ _LIT(KConnectText, "Connecting...");
+ iProgressDialog = CHbDeviceProgressDialogSymbian::NewL(CHbDeviceProgressDialogSymbian::EWaitDialog,this);
+ iProgressDialog->SetTextL(KConnectText);
+ iProgressDialog->ShowL();
+
}
FLOG(_L("[BTSU]\t CBTServiceStarter::LaunchWaitNoteL() completed"));
}
@@ -441,10 +448,15 @@
{
FLOG(_L("[BTSU]\t CBTServiceStarter::CancelWaitNote()"));
- if ( iDialog )
- {
- TRAP_IGNORE( iDialog->CancelWaitDialogL() );
- }
+ // if ( iDialog )
+ // {
+ // TRAP_IGNORE( iDialog->CancelWaitDialogL() );
+ if(iProgressDialog)
+ {
+ //This has to be tested
+ iProgressDialog->Close();
+ }
+ // }
FLOG(_L("[BTSU]\t CBTServiceStarter::CancelWaitNote() completed"));
}
@@ -458,7 +470,8 @@
TInt aTotalSize )
{
FLOG(_L("[BTSU]\t CBTServiceStarter::LaunchProgressNoteL()"));
-
+ (void) aTotalSize;
+
if ( iService != EBTPrintingService )
{
iProgressGetter = aGetter;
@@ -468,8 +481,8 @@
{
iMessageServerIndex = TObexUtilsMessageHandler::CreateOutboxEntryL(
KUidMsgTypeBt, R_BT_SEND_OUTBOX_SENDING );
- iDialog->LaunchProgressDialogL( this, aTotalSize,
- R_BT_SENDING_DATA, KBTProgressInterval );
+ // iDialog->LaunchProgressDialogL( this, aTotalSize,
+ // R_BT_SENDING_DATA, KBTProgressInterval );
}
iProgressDialogActive=ETrue;
}
@@ -485,9 +498,9 @@
{
FLOG(_L("[BTSU]\t CBTServiceStarter::CancelProgressNote()"));
- if ( iDialog )
+ // if ( iDialog )
{
- TRAP_IGNORE( iDialog->CancelProgressDialogL() );
+ // TRAP_IGNORE( iDialog->CancelProgressDialogL() );
}
}
@@ -529,7 +542,8 @@
{
FLOG(_L("[BTSU]\t CBTServiceStarter::ShowNote()"));
- TInt resource = 0;
+// TInt resource = 0;
+ TBuf<255> buf;
switch ( aReason )
{
@@ -537,17 +551,24 @@
{
if ( iService == EBTPrintingService )
{
- resource = R_BT_DATA_SENT2;
+ // resource = R_BT_DATA_SENT2;
+
+ _LIT(KText, "Data Sent");
+ buf.Copy(KText);
}
else
{
- resource = R_BT_DATA_SENT;
+ //resource = R_BT_DATA_SENT;
+ _LIT(KText, "Data Sent");
+ buf.Copy(KText);
}
break;
}
case EBTSConnectingFailed:
{
- resource = R_BT_DEV_NOT_AVAIL;
+ //resource = R_BT_DEV_NOT_AVAIL;
+ _LIT(KText, "Cannot establish Bluetooth connection");
+ buf.Copy(KText);
break;
}
case EBTSGettingFailed:
@@ -555,11 +576,15 @@
{
if ( iService == EBTPrintingService )
{
- resource = R_BT_FAILED_TO_SEND2;
+ _LIT(KText, "Sending failed");
+ //resource = R_BT_FAILED_TO_SEND2;
+ buf.Copy(KText);
}
else
{
- resource = R_BT_FAILED_TO_SEND;
+ _LIT(KText, "Failed to send Data");
+ //resource = R_BT_FAILED_TO_SEND;
+ buf.Copy(KText);
}
break;
}
@@ -567,37 +592,50 @@
{
if ( iService == EBTPrintingService )
{
- resource = R_BT_PRINTING_NOT_SUPPORTED;
+ _LIT(KText, "Printer not supported");
+ buf.Copy(KText);
+ // resource = R_BT_PRINTING_NOT_SUPPORTED;
}
else
{
- resource = R_BT_FAILED_TO_SEND;
+ _LIT(KText, "Failed to send Data");
+ buf.Copy(KText);
+ // resource = R_BT_FAILED_TO_SEND;
}
break;
}
case EBTSBIPSomeSend:
{
- resource = R_BT_FAILED_TO_SEND;
+ _LIT(KText, "Failed to send Data");
+ buf.Copy(KText);
+ //resource = R_BT_FAILED_TO_SEND;
break;
}
case EBTSBIPOneNotSend:
{
- resource = R_BT_NOT_RECEIVE_ONE;
+ _LIT(KText, "Receiving device does not support this image format.");
+ buf.Copy(KText);
+ //resource = R_BT_NOT_RECEIVE_ONE;
break;
}
case EBTSBIPNoneSend:
{
- resource = R_BT_NOT_RECEIVE_ANY;
+ _LIT(KText, "Receiving device does not support the needed image formats.");
+ buf.Copy(KText);
+ //resource = R_BT_NOT_RECEIVE_ANY;
break;
}
default:
{
- resource = R_BT_DEV_NOT_AVAIL;
+ // resource = R_BT_DEV_NOT_AVAIL;
+ _LIT(KText, "Cannot establish Bluetooth connection");
+ buf.Copy(KText);
break;
}
}
- TRAP_IGNORE(TObexUtilsUiLayer::ShowInformationNoteL( resource ) );
+// TRAP_IGNORE(TObexUtilsUiLayer::ShowInformationNoteL( resource ) );
+ CHbDeviceMessageBoxSymbian::InformationL(buf);
FLOG(_L("[BTSU]\t CBTServiceStarter::ShowNote() completed"));
}
@@ -605,10 +643,10 @@
// CBTServiceStarter::LaunchConfirmationQuery
// -----------------------------------------------------------------------------
//
-TInt CBTServiceStarter::LaunchConfirmationQuery(TInt aResourceId)
+TInt CBTServiceStarter::LaunchConfirmationQuery(TInt /*aResourceId*/)
{
TInt keypress=0;
- TRAP_IGNORE( keypress = iDialog->LaunchQueryDialogL( aResourceId ));
+// TRAP_IGNORE( keypress = iDialog->LaunchQueryDialogL( aResourceId ));
if ( !keypress )
{
FLOG(_L("[BTSU]\t CBTServiceStarter::LaunchConfirmationQuery(), cancelled by user"));
@@ -624,6 +662,7 @@
//
void CBTServiceStarter::StopTransfer(TInt aError)
{
+
FLOG(_L("[BTSU]\t CBTServiceStarter::StopTransfer()"));
Cancel();
if( !iUserCancel )
@@ -905,7 +944,7 @@
void CBTServiceStarter::TurnBTPowerOnL( const TBTPowerStateValue aState )
{
FLOG( _L("[BTSU]\t CBTServiceStarter::TurnBTPowerOnL()") );
- if (iName() != EFalse)
+// if (iName() != EFalse)
{
if( !iBTEngSettings )
{
@@ -927,7 +966,7 @@
StartDiscoveryL();
}
}
- else
+ /* else
{
if ( !iNotifier.Handle() )
{
@@ -940,7 +979,7 @@
iNotifier.StartNotifierAndGetResponse( iStatus, KBTGenericQueryNotifierUid,
pckg, iName );
SetActive();
- }
+ }*/
FLOG(_L("[BTSU]\t CBTServiceStarter::TurnBTPowerOnL() - completed"));
}
@@ -988,6 +1027,7 @@
if( err )
{
+
err = ( err == KErrNotSupported ? KErrCancel : err );
if ( iWaiter && err != KErrInUse && err != KErrCancel )
{
@@ -1012,4 +1052,25 @@
FLOG(_L("[BTSU]\t CBTServiceStarter::RunError() - completed"));
return KErrNone;
}
-// End of File
+
+
+
+
+void CBTServiceStarter::ProgressDialogCancelled(const CHbDeviceProgressDialogSymbian*/* aDialog*/)
+ {
+ FLOG(_L("[BTSU]\t CBTServiceStarter::ProgressDialogCancelled(), cancelled by user"));
+ iUserCancel=ETrue;
+ if ( iController )
+ {
+ iController->Abort();
+ }
+ else
+ {
+ StopTransfer(KErrCancel);
+ }
+ }
+
+
+void CBTServiceStarter::ProgressDialogClosed(const CHbDeviceProgressDialogSymbian* /* aDialog*/)
+ {
+ }
--- a/localconnectivityservice/obexsendservices/rom/obexservicebtsend.iby Sat Apr 24 00:43:26 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2004 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: IBY file for btsendingservice
-*
-*/
-
-
-#ifndef BTSENDINGSERVICE_IBY
-#define BTSENDINGSERVICE_IBY
-
-#ifdef __BT
-ECOM_PLUGIN(obexservicebtsend.dll,101F86A2.rsc)
-#endif
-
-#endif // BTSENDINGSERVICE_IBY
-
-// End of File
--- a/localconnectivityservice/obexsendservices/rom/obexserviceirsend.iby Sat Apr 24 00:43:26 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2004 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: IBY file for btsendingservice
-*
-*/
-
-
-#ifndef IRSENDINGSERVICE_IBY
-#define IRSENDINGSERVICE_IBY
-
-#ifdef __IRDA
-ECOM_PLUGIN(obexserviceirsend.dll,001F86A2.rsc)
-#endif
-
-#endif // IRSENDINGSERVICE_IBY
-
-// End of File
--- a/sysdef_1_4_0.dtd Sat Apr 24 00:43:26 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
- name CDATA #REQUIRED
- schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
- name CDATA #REQUIRED
- levels CDATA #IMPLIED
- span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
- name CDATA #REQUIRED
- level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
- unitID ID #REQUIRED
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- bldFile CDATA #REQUIRED
- priority CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
- name CDATA #REQUIRED
- version CDATA #REQUIRED
- late (Y|N) #IMPLIED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
- name ID #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
- name ID #REQUIRED
- description CDATA #REQUIRED
- target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
- name ID #REQUIRED
- abldTarget CDATA #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
- name ID #REQUIRED
- abldOption CDATA #REQUIRED
- description CDATA #REQUIRED
- enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
- name ID #REQUIRED
- description CDATA #REQUIRED
- filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
- command CDATA #REQUIRED
- targetList IDREFS #IMPLIED
- unitParallel (Y | N | y | n) #REQUIRED
- targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
- name CDATA #REQUIRED
- cwd CDATA #REQUIRED
- command CDATA #REQUIRED>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_5_1.dtd Sun May 02 21:46:11 2010 +0300
@@ -0,0 +1,88 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+ name CDATA #REQUIRED
+ schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+ name CDATA #REQUIRED
+ levels CDATA #IMPLIED
+ span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+ name CDATA #REQUIRED
+ level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+ unitID ID #REQUIRED
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ bldFile CDATA #REQUIRED
+ priority CDATA #IMPLIED
+ contract CDATA #IMPLIED
+ proFile CDATA #IMPLIED
+ qmakeArgs CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED
+ late (Y|N) #IMPLIED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+ name ID #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+ name ID #REQUIRED
+ abldTarget CDATA #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+ name ID #REQUIRED
+ abldOption CDATA #REQUIRED
+ description CDATA #REQUIRED
+ enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+ command CDATA #REQUIRED
+ targetList IDREFS #IMPLIED
+ unitParallel (Y | N | y | n) #REQUIRED
+ targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+ name CDATA #REQUIRED
+ cwd CDATA #REQUIRED
+ command CDATA #REQUIRED>