Changed IF_IStream::close to return an RCODE so that it is compatible with IF_OStream::close. This allows the derivation of input/output stream objects with a single close method.
git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@351 0109f412-320b-0410-ab79-c3e0c5ffbbe6
This commit is contained in:
+8
-3
@@ -89,8 +89,9 @@ public:
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
FINLINE void XFLMAPI close( void)
|
||||
FINLINE RCODE XFLMAPI close( void)
|
||||
{
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -2836,13 +2837,15 @@ public:
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
FINLINE void XFLMAPI close( void)
|
||||
FINLINE RCODE XFLMAPI close( void)
|
||||
{
|
||||
if( m_pIStream)
|
||||
{
|
||||
m_pIStream->Release();
|
||||
m_pIStream = NULL;
|
||||
}
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
RCODE open(
|
||||
@@ -2987,13 +2990,15 @@ public:
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
FINLINE void XFLMAPI close( void)
|
||||
FINLINE RCODE XFLMAPI close( void)
|
||||
{
|
||||
if( m_pEncoderStream)
|
||||
{
|
||||
m_pEncoderStream->Release();
|
||||
m_pEncoderStream = NULL;
|
||||
}
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
RCODE open(
|
||||
|
||||
@@ -5763,13 +5763,15 @@ public:
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
void XFLMAPI close( void)
|
||||
RCODE XFLMAPI close( void)
|
||||
{
|
||||
if( m_pIStream)
|
||||
{
|
||||
m_pIStream->Release();
|
||||
m_pIStream = NULL;
|
||||
}
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
RCODE XFLMAPI read(
|
||||
@@ -5970,9 +5972,10 @@ public:
|
||||
return( m_uiStreamSize - (m_uiBufferStartOffset + m_uiBufferOffset));
|
||||
}
|
||||
|
||||
FINLINE void XFLMAPI close( void)
|
||||
FINLINE RCODE XFLMAPI close( void)
|
||||
{
|
||||
reset();
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
RCODE XFLMAPI positionTo(
|
||||
|
||||
@@ -121,7 +121,7 @@ public:
|
||||
F_DbRebuild * pRebuild,
|
||||
FLMBOOL bRecovDictionary);
|
||||
|
||||
void XFLMAPI close( void);
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
RCODE XFLMAPI read(
|
||||
void * pvBuffer,
|
||||
@@ -1860,7 +1860,7 @@ Exit:
|
||||
/***************************************************************************
|
||||
Desc:
|
||||
*****************************************************************************/
|
||||
void F_RebuildNodeIStream::close( void)
|
||||
RCODE F_RebuildNodeIStream::close( void)
|
||||
{
|
||||
if( m_pucFirstElmBlk)
|
||||
{
|
||||
@@ -1883,6 +1883,8 @@ void F_RebuildNodeIStream::close( void)
|
||||
|
||||
f_memset( &m_firstElmState, 0, sizeof( F_SCAN_STATE));
|
||||
f_memset( &m_tmpState, 0, sizeof( F_SCAN_STATE));
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
+30
-65
@@ -208,16 +208,19 @@ Exit:
|
||||
/****************************************************************************
|
||||
Desc: Closes the input stream and frees any resources
|
||||
*****************************************************************************/
|
||||
void F_FileIStream::close( void)
|
||||
RCODE F_FileIStream::close( void)
|
||||
{
|
||||
RCODE rc = NE_XFLM_OK;
|
||||
|
||||
if( m_pFileHdl)
|
||||
{
|
||||
m_pFileHdl->Close();
|
||||
rc = m_pFileHdl->Close();
|
||||
m_pFileHdl->Release();
|
||||
m_pFileHdl = NULL;
|
||||
}
|
||||
|
||||
m_ui64FileOffset = 0;
|
||||
return( rc);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@@ -409,13 +412,15 @@ Exit:
|
||||
/****************************************************************************
|
||||
Desc:
|
||||
*****************************************************************************/
|
||||
void XFLMAPI F_BufferedIStream::close( void)
|
||||
RCODE XFLMAPI F_BufferedIStream::close( void)
|
||||
{
|
||||
RCODE rc = NE_XFLM_OK;
|
||||
|
||||
if( m_pIStream)
|
||||
{
|
||||
if( m_pIStream->getRefCount() == 1)
|
||||
{
|
||||
m_pIStream->close();
|
||||
rc = m_pIStream->close();
|
||||
}
|
||||
|
||||
m_pIStream->Release();
|
||||
@@ -430,6 +435,8 @@ void XFLMAPI F_BufferedIStream::close( void)
|
||||
m_uiBufferSize = 0;
|
||||
m_uiBufferOffset = 0;
|
||||
m_uiBytesAvail = 0;
|
||||
|
||||
return( rc);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@@ -740,7 +747,7 @@ Exit:
|
||||
/******************************************************************************
|
||||
Desc:
|
||||
******************************************************************************/
|
||||
void XFLMAPI F_MultiFileIStream::close( void)
|
||||
RCODE XFLMAPI F_MultiFileIStream::close( void)
|
||||
{
|
||||
if( m_pIStream)
|
||||
{
|
||||
@@ -754,6 +761,8 @@ void XFLMAPI F_MultiFileIStream::close( void)
|
||||
m_szBaseName[ 0] = 0;
|
||||
m_bEndOfStream = FALSE;
|
||||
m_bOpen = FALSE;
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@@ -1289,7 +1298,7 @@ Exit:
|
||||
/*****************************************************************************
|
||||
Desc:
|
||||
******************************************************************************/
|
||||
void XFLMAPI F_BufferIStream::close( void)
|
||||
RCODE XFLMAPI F_BufferIStream::close( void)
|
||||
{
|
||||
if( m_bIsOpen)
|
||||
{
|
||||
@@ -1309,6 +1318,8 @@ void XFLMAPI F_BufferIStream::close( void)
|
||||
|
||||
m_bIsOpen = FALSE;
|
||||
}
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
@@ -2207,7 +2218,7 @@ Exit:
|
||||
/******************************************************************************
|
||||
Desc:
|
||||
******************************************************************************/
|
||||
void XFLMAPI F_UncompressingIStream::close( void)
|
||||
RCODE XFLMAPI F_UncompressingIStream::close( void)
|
||||
{
|
||||
if( m_pIStream)
|
||||
{
|
||||
@@ -2224,6 +2235,8 @@ void XFLMAPI F_UncompressingIStream::close( void)
|
||||
{
|
||||
f_free( &m_pucDecodeBuffer);
|
||||
}
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@@ -3059,8 +3072,8 @@ Exit:
|
||||
/********************************************************************
|
||||
Desc:
|
||||
*********************************************************************/
|
||||
RCODE F_TCPStream::write(
|
||||
FLMBYTE * pucBuffer,
|
||||
RCODE XFLMAPI F_TCPStream::write(
|
||||
const void * pucBuffer,
|
||||
FLMUINT uiBytesToWrite,
|
||||
FLMUINT * puiBytesWritten)
|
||||
{
|
||||
@@ -3141,12 +3154,12 @@ Exit:
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
Desc: Reads data from the connection
|
||||
Desc:
|
||||
*********************************************************************/
|
||||
RCODE F_TCPStream::read(
|
||||
FLMBYTE * pucBuffer,
|
||||
FLMUINT uiBytesToWrite,
|
||||
FLMUINT * puiBytesRead)
|
||||
RCODE XFLMAPI F_TCPStream::read(
|
||||
void * pucBuffer,
|
||||
FLMUINT uiBytesToWrite,
|
||||
FLMUINT * puiBytesRead)
|
||||
{
|
||||
RCODE rc = NE_XFLM_OK;
|
||||
FLMINT iReadCnt = 0;
|
||||
@@ -3310,63 +3323,13 @@ Exit:
|
||||
/********************************************************************
|
||||
Desc: Closes any open connections
|
||||
*********************************************************************/
|
||||
void F_TCPStream::close(
|
||||
FLMBOOL bForce)
|
||||
RCODE XFLMAPI F_TCPStream::close( void)
|
||||
{
|
||||
if( m_iSocket == INVALID_SOCKET)
|
||||
{
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
#ifdef FLM_NLM
|
||||
F_UNREFERENCED_PARM( bForce);
|
||||
#else
|
||||
if( !bForce)
|
||||
{
|
||||
char ucTmpBuf[ 128];
|
||||
struct timeval tv;
|
||||
fd_set fds;
|
||||
fd_set fds_read;
|
||||
fd_set fds_err;
|
||||
|
||||
// Close our half of the connection
|
||||
|
||||
shutdown( m_iSocket, 1);
|
||||
|
||||
// Set up to wait for readable data on the socket
|
||||
|
||||
FD_ZERO( &fds);
|
||||
#ifdef FLM_WIN
|
||||
#pragma warning( push)
|
||||
#pragma warning( disable : 4127)
|
||||
#endif
|
||||
FD_SET( m_iSocket, &fds);
|
||||
#ifdef FLM_WIN
|
||||
#pragma warning( pop)
|
||||
#endif
|
||||
|
||||
tv.tv_sec = 10;
|
||||
tv.tv_usec = 0;
|
||||
|
||||
fds_read = fds;
|
||||
fds_err = fds;
|
||||
|
||||
// Wait for data or an error
|
||||
|
||||
while( select( m_iSocket + 1, &fds_read, NULL, &fds_err, &tv) > 0)
|
||||
{
|
||||
if( recv( m_iSocket, ucTmpBuf, sizeof( ucTmpBuf), 0) <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
fds_read = fds;
|
||||
fds_err = fds;
|
||||
}
|
||||
|
||||
shutdown( m_iSocket, 2);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef FLM_UNIX
|
||||
closesocket( m_iSocket);
|
||||
#else
|
||||
@@ -3377,4 +3340,6 @@ Exit:
|
||||
|
||||
m_iSocket = INVALID_SOCKET;
|
||||
m_bConnected = FALSE;
|
||||
|
||||
return( NE_XFLM_OK);
|
||||
}
|
||||
|
||||
+29
-22
@@ -2189,7 +2189,7 @@
|
||||
return( m_uiBufferLen - m_uiOffset);
|
||||
}
|
||||
|
||||
void XFLMAPI close( void);
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
FINLINE RCODE XFLMAPI positionTo(
|
||||
FLMUINT64 ui64Position)
|
||||
@@ -2279,7 +2279,7 @@
|
||||
RCODE XFLMAPI open(
|
||||
const char * pszPath);
|
||||
|
||||
void XFLMAPI close( void);
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
RCODE XFLMAPI positionTo(
|
||||
FLMUINT64 ui64Position);
|
||||
@@ -2328,7 +2328,7 @@
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
void XFLMAPI close( void);
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
FINLINE FLMUINT64 XFLMAPI totalSize( void)
|
||||
{
|
||||
@@ -2493,7 +2493,7 @@
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
void XFLMAPI close( void);
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
private:
|
||||
|
||||
@@ -2586,13 +2586,15 @@
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
FINLINE void XFLMAPI close( void)
|
||||
FINLINE RCODE XFLMAPI close( void)
|
||||
{
|
||||
RCODE rc = NE_XFLM_OK;
|
||||
|
||||
if( m_pIStream)
|
||||
{
|
||||
if( m_pIStream->getRefCount() == 1)
|
||||
{
|
||||
m_pIStream->close();
|
||||
rc = m_pIStream->close();
|
||||
}
|
||||
|
||||
m_pIStream->Release();
|
||||
@@ -2601,6 +2603,8 @@
|
||||
|
||||
m_uiAvailBytes = 0;
|
||||
m_uiBufOffset = 0;
|
||||
|
||||
return( rc);
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -2638,18 +2642,22 @@
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
FINLINE void XFLMAPI close( void)
|
||||
FINLINE RCODE XFLMAPI close( void)
|
||||
{
|
||||
RCODE rc = NE_XFLM_OK;
|
||||
|
||||
if( m_pIStream)
|
||||
{
|
||||
if( m_pIStream->getRefCount() == 1)
|
||||
{
|
||||
m_pIStream->close();
|
||||
rc = m_pIStream->close();
|
||||
}
|
||||
|
||||
m_pIStream->Release();
|
||||
m_pIStream = NULL;
|
||||
}
|
||||
|
||||
return( rc);
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -2765,7 +2773,7 @@
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
void XFLMAPI close( void);
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
private:
|
||||
|
||||
@@ -2803,6 +2811,16 @@
|
||||
FLMUINT uiConnectTimeout = 3,
|
||||
FLMUINT uiDataTimeout = 15);
|
||||
|
||||
RCODE XFLMAPI read(
|
||||
void * pvBuffer,
|
||||
FLMUINT uiBytesToRead,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
RCODE XFLMAPI write(
|
||||
const void * pvBuffer,
|
||||
FLMUINT uiBytesToWrite,
|
||||
FLMUINT * puiBytesWritten);
|
||||
|
||||
FINLINE RCODE socketPeekWrite(
|
||||
FLMINT iTimeOut)
|
||||
{
|
||||
@@ -2839,11 +2857,6 @@
|
||||
return( (const char *)m_pszPeerIp);
|
||||
};
|
||||
|
||||
RCODE read(
|
||||
FLMBYTE * pucBuffer,
|
||||
FLMUINT uiCount,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
RCODE readNoWait(
|
||||
FLMBYTE * pucBuffer,
|
||||
FLMUINT uiCount,
|
||||
@@ -2854,16 +2867,10 @@
|
||||
FLMUINT uiCount,
|
||||
FLMUINT * puiBytesRead);
|
||||
|
||||
RCODE write(
|
||||
FLMBYTE * pucBuffer,
|
||||
FLMUINT uiCount,
|
||||
FLMUINT * puiBytesWritten);
|
||||
|
||||
RCODE setTcpDelay(
|
||||
FLMBOOL bOn);
|
||||
|
||||
void close(
|
||||
FLMBOOL bForce = FALSE);
|
||||
|
||||
RCODE XFLMAPI close( void);
|
||||
|
||||
private:
|
||||
|
||||
|
||||
+1
-1
@@ -4265,7 +4265,7 @@
|
||||
* @brief Close the input stream.
|
||||
*
|
||||
*/
|
||||
virtual void XFLMAPI close( void) = 0;
|
||||
virtual RCODE XFLMAPI close( void) = 0;
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user