2011-01-27 07:29 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rdd/wacore.c
% minor optimization
* harbour/src/rdd/usrrdd/usrrdd.c
+ extended USRRDD_ID() to accept RDD name as parameter
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
* harbour/src/rdd/usrrdd/rdds/logrdd.prg
! fixed to not use:
( AScan( RDDLIST( RDT_FULL ), "ARRAYRDD" ) - 1 )
to extract RDD ID.
In theory it could work if RDDLIST( 0 ) is used instead
of RDDLIST( RDT_FULL ) anyhow it's much more efficient to
simply store RDD ID in static variable inside *_GETFUNCTABLE()
function
This commit is contained in:
@@ -16,6 +16,23 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2011-01-27 07:29 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/src/rdd/wacore.c
|
||||
% minor optimization
|
||||
|
||||
* harbour/src/rdd/usrrdd/usrrdd.c
|
||||
+ extended USRRDD_ID() to accept RDD name as parameter
|
||||
|
||||
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
|
||||
* harbour/src/rdd/usrrdd/rdds/logrdd.prg
|
||||
! fixed to not use:
|
||||
( AScan( RDDLIST( RDT_FULL ), "ARRAYRDD" ) - 1 )
|
||||
to extract RDD ID.
|
||||
In theory it could work if RDDLIST( 0 ) is used instead
|
||||
of RDDLIST( RDT_FULL ) anyhow it's much more efficient to
|
||||
simply store RDD ID in static variable inside *_GETFUNCTABLE()
|
||||
function
|
||||
|
||||
2011-01-27 01:30 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
|
||||
* contrib/hbnetio/utils/netiosrv/netiocui.prg
|
||||
|
||||
@@ -98,6 +98,8 @@ ANNOUNCE ARRAYRDD
|
||||
#define RECDATA_DELETED 1
|
||||
#define RECDATA_SIZEOF 1
|
||||
|
||||
static s_nRddID := -1
|
||||
|
||||
/*
|
||||
* non work area methods receive RDD ID as first parameter
|
||||
* Methods INIT and EXIT does not have to execute SUPER methods - these is
|
||||
@@ -944,6 +946,8 @@ FUNCTION ARRAYRDD_GETFUNCTABLE( pFuncCount, pFuncTable, pSuperTable, nRddID, pSu
|
||||
LOCAL cSuperRDD := NIL /* NO SUPER RDD */
|
||||
LOCAL aMyFunc[ UR_METHODCOUNT ]
|
||||
|
||||
s_nRddID := nRddID
|
||||
|
||||
aMyFunc[ UR_INIT ] := ( @AR_INIT() )
|
||||
aMyFunc[ UR_NEW ] := ( @AR_NEW() )
|
||||
aMyFunc[ UR_FLUSH ] := ( @AR_DUMMY() )
|
||||
@@ -988,17 +992,11 @@ INIT PROCEDURE ARRAYRDD_INIT()
|
||||
FUNCTION hb_EraseArrayRdd( cFullName )
|
||||
LOCAL nReturn := HB_FAILURE
|
||||
LOCAL aDBFData, oError
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL hRDDData
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "ARRAYRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in AR_INIT() ? - TODO
|
||||
|
||||
hRDDData := USRRDD_RDDDATA( nRDD )
|
||||
hRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
IF hRDDData != NIL
|
||||
|
||||
@@ -1080,17 +1078,11 @@ FUNCTION hb_EraseArrayRdd( cFullName )
|
||||
FUNCTION hb_FileArrayRdd( cFullName )
|
||||
LOCAL nReturn := HB_FAILURE
|
||||
LOCAL oError
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL hRDDData
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "ARRAYRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in AR_INIT() ? - TODO
|
||||
|
||||
hRDDData := USRRDD_RDDDATA( nRDD )
|
||||
hRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
IF hRDDData != NIL
|
||||
|
||||
|
||||
@@ -75,6 +75,8 @@
|
||||
ANNOUNCE LOGRDD
|
||||
DYNAMIC HB_LOGRDDINHERIT /* To be defined at user level */
|
||||
|
||||
STATIC s_nRddID := -1
|
||||
|
||||
STATIC FUNCTION LOGRDD_INIT( nRDD )
|
||||
LOCAL lActive, cFileName, cTag, cRDDName
|
||||
|
||||
@@ -186,6 +188,8 @@ FUNCTION LOGRDD_GETFUNCTABLE( pFuncCount, pFuncTable, pSuperTable, nRddID, pSupe
|
||||
LOCAL cSuperRDD := hb_LogRddInherit() /* We are inheriting from a User Defined RDD */
|
||||
LOCAL aMyFunc[ UR_METHODCOUNT ]
|
||||
|
||||
s_nRddID := nRddID
|
||||
|
||||
aMyFunc[ UR_INIT ] := ( @LOGRDD_INIT() )
|
||||
aMyFunc[ UR_EXIT ] := ( @LOGRDD_EXIT() )
|
||||
aMyFunc[ UR_CREATE ] := ( @LOGRDD_CREATE() )
|
||||
@@ -210,18 +214,12 @@ INIT PROCEDURE _LOGRDD_INIT()
|
||||
/* -------------------------------------------------- */
|
||||
|
||||
FUNCTION hb_LogRddLogFileName( cFileName )
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL aRDDData
|
||||
LOCAL cOldFileName
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "LOGRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in UR_INIT() ? - TODO
|
||||
|
||||
aRDDData := USRRDD_RDDDATA( nRDD )
|
||||
aRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
cOldFileName := aRDDData[ ARRAY_FILENAME ]
|
||||
|
||||
@@ -233,18 +231,12 @@ FUNCTION hb_LogRddLogFileName( cFileName )
|
||||
RETURN cOldFileName
|
||||
|
||||
FUNCTION hb_LogRddTag( cTag )
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL aRDDData
|
||||
LOCAL cOldTag
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "LOGRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in UR_INIT() ? - TODO
|
||||
|
||||
aRDDData := USRRDD_RDDDATA( nRDD )
|
||||
aRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
cOldTag := aRDDData[ ARRAY_TAG ]
|
||||
|
||||
@@ -256,18 +248,12 @@ FUNCTION hb_LogRddTag( cTag )
|
||||
RETURN cOldTag
|
||||
|
||||
FUNCTION hb_LogRddActive( lActive )
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL aRDDData
|
||||
LOCAL lOldActive
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "LOGRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in UR_INIT() ? - TODO
|
||||
|
||||
aRDDData := USRRDD_RDDDATA( nRDD )
|
||||
aRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
lOldActive := aRDDData[ ARRAY_ACTIVE ]
|
||||
|
||||
@@ -279,18 +265,12 @@ FUNCTION hb_LogRddActive( lActive )
|
||||
RETURN lOldActive
|
||||
|
||||
FUNCTION hb_LogRddMsgLogBlock( bMsgLogBlock )
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL aRDDData
|
||||
LOCAL bOldMsgLogBlock
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "LOGRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in UR_INIT() ? - TODO
|
||||
|
||||
aRDDData := USRRDD_RDDDATA( nRDD )
|
||||
aRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
bOldMsgLogBlock := aRDDData[ ARRAY_MSGLOGBLOCK ]
|
||||
|
||||
@@ -302,18 +282,12 @@ FUNCTION hb_LogRddMsgLogBlock( bMsgLogBlock )
|
||||
RETURN bOldMsgLogBlock
|
||||
|
||||
FUNCTION hb_LogRddUserLogBlock( bUserLogBlock )
|
||||
LOCAL nRDD, aRDDList
|
||||
LOCAL aRDDData
|
||||
LOCAL bOldUserLogBlock
|
||||
|
||||
aRDDList := RDDLIST( RDT_FULL )
|
||||
nRDD := AScan( aRDDList, "LOGRDD" )
|
||||
IF s_nRddID >= 0
|
||||
|
||||
IF nRDD > 0
|
||||
|
||||
nRDD -- // HACK: Possibly an error of nRDD value in UR_INIT() ? - TODO
|
||||
|
||||
aRDDData := USRRDD_RDDDATA( nRDD )
|
||||
aRDDData := USRRDD_RDDDATA( s_nRddID )
|
||||
|
||||
bOldUserLogBlock := aRDDData[ ARRAY_MSGLOGBLOCK ]
|
||||
|
||||
|
||||
@@ -2928,13 +2928,24 @@ HB_FUNC( USRRDD_ID )
|
||||
{
|
||||
AREAP pArea;
|
||||
|
||||
if( HB_ISNUM( 1 ) )
|
||||
pArea = hb_usrGetAreaPointer( hb_parni( 1 ) );
|
||||
else
|
||||
pArea = ( AREAP ) hb_parptr( 1 );
|
||||
if( HB_ISCHAR( 1 ) )
|
||||
{
|
||||
HB_USHORT uiRddId;
|
||||
LPRDDNODE pRddNode = hb_rddFindNode( hb_parc( 1 ), &uiRddId );
|
||||
|
||||
if( pArea && pArea->rddID < s_uiUsrNodes && SELF_USRNODE( pArea ) )
|
||||
hb_retni( pArea->rddID );
|
||||
if( pRddNode && uiRddId < s_uiUsrNodes && s_pUsrRddNodes[ uiRddId ] )
|
||||
hb_retni( uiRddId );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( HB_ISNUM( 1 ) )
|
||||
pArea = hb_usrGetAreaPointer( hb_parni( 1 ) );
|
||||
else
|
||||
pArea = ( AREAP ) hb_parptr( 1 );
|
||||
|
||||
if( pArea && pArea->rddID < s_uiUsrNodes && SELF_USRNODE( pArea ) )
|
||||
hb_retni( pArea->rddID );
|
||||
}
|
||||
}
|
||||
|
||||
HB_FUNC( USRRDD_AREADATA )
|
||||
|
||||
@@ -372,13 +372,14 @@ const char * hb_rddDefaultDrv( const char * szDriver )
|
||||
if( szDriver && *szDriver )
|
||||
{
|
||||
char szNewDriver[ HB_RDD_MAX_DRIVERNAME_LEN + 1 ];
|
||||
HB_USHORT uiRddID;
|
||||
LPRDDNODE pRddNode;
|
||||
|
||||
hb_strncpyUpper( szNewDriver, szDriver, sizeof( szNewDriver ) - 1 );
|
||||
if( !hb_rddFindNode( szNewDriver, &uiRddID ) )
|
||||
pRddNode = hb_rddFindNode( szNewDriver, NULL );
|
||||
if( !pRddNode )
|
||||
return NULL;
|
||||
|
||||
pRddInfo->szDefaultRDD = hb_rddGetNode( uiRddID )->szName;
|
||||
pRddInfo->szDefaultRDD = pRddNode->szName;
|
||||
}
|
||||
else if( !pRddInfo->szDefaultRDD && hb_rddGetNode( 0 ) )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user