提交 0f2c1b75 编写于 作者: J Jesse Zhang

Remove unused class gpos::COstreamFile.

I looked through the history, this class was dead on arrival and *never*
used. Ironically, we kept adding #include for its header over the years
to places that didn't use the class.
上级 dfa1f0a6
......@@ -38,7 +38,6 @@
#include "gpos/_api.h"
#include "gpos/common/CAutoP.h"
#include "gpos/io/COstreamFile.h"
#include "gpos/io/COstreamString.h"
#include "gpos/memory/CAutoMemoryPool.h"
#include "gpos/task/CAutoTraceFlag.h"
......
......@@ -9,12 +9,12 @@
// Implementation of optimizer I/O utilities
//---------------------------------------------------------------------------
#include "gpopt/base/CIOUtils.h"
#include "gpos/base.h"
#include "gpos/io/CFileWriter.h"
#include "gpos/task/CAutoSuspendAbort.h"
#include "gpos/task/CWorker.h"
#include "gpos/io/COstreamFile.h"
#include "gpopt/base/CIOUtils.h"
using namespace gpopt;
......
......@@ -9,19 +9,19 @@
// Implementation of plan enumerator config
//---------------------------------------------------------------------------
#include "gpopt/engine/CEnumeratorConfig.h"
#include "gpopt/base/CIOUtils.h"
#include "gpopt/base/CUtils.h"
#include "gpos/base.h"
#include "gpos/io/COstreamFile.h"
#include "gpos/error/CAutoTrace.h"
#include "gpos/io/CFileDescriptor.h"
#include "gpos/memory/CAutoMemoryPool.h"
#include "gpos/task/CAutoSuspendAbort.h"
#include "gpos/error/CAutoTrace.h"
#include "gpos/task/CTask.h"
#include "gpos/task/CWorker.h"
#include "gpopt/base/CIOUtils.h"
#include "gpopt/base/CUtils.h"
#include "gpopt/engine/CEnumeratorConfig.h"
using namespace gpos;
using namespace gpopt;
......
......@@ -17,7 +17,6 @@
#include "gpos/error/CAutoTrace.h"
#include "gpos/error/CErrorContext.h"
#include "gpos/error/CErrorHandlerStandard.h"
#include "gpos/io/COstreamFile.h"
#include "gpos/memory/CAutoMemoryPool.h"
#include "gpos/task/CAutoSuspendAbort.h"
#include "gpos/task/CAutoTraceFlag.h"
......
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2011 EMC Corp.
//
// @filename:
// COstreamFile.h
//
// @doc:
// Output file stream class;
//---------------------------------------------------------------------------
#ifndef GPOS_COstreamFile_H
#define GPOS_COstreamFile_H
#include "gpos/io/ioutils.h"
#include "gpos/io/CFileWriter.h"
#include "gpos/io/COstream.h"
namespace gpos
{
//---------------------------------------------------------------------------
// @class:
// COstreamFile
//
// @doc:
// Implements an output stream writing to a file
//
//---------------------------------------------------------------------------
class COstreamFile : public COstream
{
private:
// underlying file writer
CFileWriter m_file_writer;
public:
COstreamFile(const COstreamFile &) = delete;
// please see comments in COstream.h for an explanation
using COstream::operator<<;
// ctor
COstreamFile(const CHAR *file_path,
ULONG permission_bits = S_IRUSR | S_IWUSR);
// dtor
~COstreamFile() override;
// implement << operator
IOstream &operator<<(const WCHAR *) override;
};
} // namespace gpos
#endif // !GPOS_COstreamFile_H
// EOF
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2011 EMC Corp.
//
// @filename:
// COstreamFileTest.h
//
// @doc:
// Test for COstreamFile
//---------------------------------------------------------------------------
#ifndef GPOS_COstreamFileTest_H
#define GPOS_COstreamFileTest_H
#include "gpos/base.h"
namespace gpos
{
//---------------------------------------------------------------------------
// @class:
// COstreamFileTest
//
// @doc:
// Static unit tests for messages
//
//---------------------------------------------------------------------------
class COstreamFileTest
{
private:
// write to output file stream
static void Unittest_WriteFileStream(const CHAR *szFile);
// check file stream for correctness
static void Unittest_CheckOutputFile(const CHAR *szFile);
// delete temporary file and containing directory
static void Unittest_DeleteTmpFile(const CHAR *szDir, const CHAR *szFile);
public:
// unittests
static GPOS_RESULT EresUnittest();
static GPOS_RESULT EresUnittest_Basic();
};
} // namespace gpos
#endif // !GPOS_COstreamFileTest_H
// EOF
......@@ -46,7 +46,6 @@
#include "unittest/gpos/error/CMiniDumperTest.h"
#include "unittest/gpos/io/COstreamBasicTest.h"
#include "unittest/gpos/io/COstreamFileTest.h"
#include "unittest/gpos/io/COstreamStringTest.h"
#include "unittest/gpos/io/CFileTest.h"
......@@ -97,7 +96,6 @@ static gpos::CUnittest rgut[] = {
// io
GPOS_UNITTEST_STD(COstreamBasicTest),
GPOS_UNITTEST_STD(COstreamStringTest),
GPOS_UNITTEST_STD(COstreamFileTest),
GPOS_UNITTEST_STD(CFileTest),
// memory
......
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2011 EMC Corp.
//
// @filename:
// COstreamFileTest.cpp
//
// @doc:
// Tests for COstreamFile
//---------------------------------------------------------------------------
#include "gpos/io/ioutils.h"
#include "gpos/io/CFileReader.h"
#include "gpos/io/COstreamFile.h"
#include "gpos/string/CStringStatic.h"
#include "gpos/string/CWStringStatic.h"
#include "gpos/string/CWStringConst.h"
#include "gpos/task/CAutoTraceFlag.h"
#include "gpos/test/CUnittest.h"
#include "unittest/gpos/io/COstreamFileTest.h"
using namespace gpos;
//---------------------------------------------------------------------------
// @function:
// COstreamFileTest::EresUnittest
//
// @doc:
// Function for raising assert exceptions; again, encapsulated in a function
// to facilitate debugging
//
//---------------------------------------------------------------------------
GPOS_RESULT
COstreamFileTest::EresUnittest()
{
CUnittest rgut[] = {
GPOS_UNITTEST_FUNC(COstreamFileTest::EresUnittest_Basic),
};
return CUnittest::EresExecute(rgut, GPOS_ARRAY_SIZE(rgut));
}
//---------------------------------------------------------------------------
// @function:
// COstreamFileTest::EresUnittest_Basic
//
// @doc:
// Basic test for writing to output file stream;
//
//---------------------------------------------------------------------------
GPOS_RESULT
COstreamFileTest::EresUnittest_Basic()
{
// create temporary file in new directory under /tmp
CHAR file_path[GPOS_FILE_NAME_BUF_SIZE];
CHAR szFile[GPOS_FILE_NAME_BUF_SIZE];
CStringStatic strPath(file_path, GPOS_ARRAY_SIZE(file_path));
CStringStatic strFile(szFile, GPOS_ARRAY_SIZE(szFile));
strPath.AppendBuffer("/tmp/gpos_test_stream.XXXXXX");
// create dir
(void) ioutils::CreateTempDir(file_path);
strFile.Append(&strPath);
strFile.AppendBuffer("/COstreamFileTest");
GPOS_TRY
{
Unittest_WriteFileStream(strFile.Buffer());
Unittest_CheckOutputFile(strFile.Buffer());
}
GPOS_CATCH_EX(ex)
{
Unittest_DeleteTmpFile(strPath.Buffer(), strFile.Buffer());
GPOS_RETHROW(ex);
}
GPOS_CATCH_END;
Unittest_DeleteTmpFile(strPath.Buffer(), strFile.Buffer());
return GPOS_OK;
}
//---------------------------------------------------------------------------
// @function:
// COstreamFileTest::Unittest_WriteFileStream
//
// @doc:
// Write to output file stream
//
//---------------------------------------------------------------------------
void
COstreamFileTest::Unittest_WriteFileStream(const CHAR *szFile)
{
GPOS_ASSERT(NULL != szFile);
COstreamFile osf(szFile);
const WCHAR wc = 'W';
const CHAR c = 'C';
const ULLONG ull = 102;
const LINT li = -10;
const WCHAR wsz[] = GPOS_WSZ_LIT("some regular string");
const INT hex = 0xdeadbeef;
osf << wc << c << ull << li << wsz << COstream::EsmHex << hex;
}
//---------------------------------------------------------------------------
// @function:
// COstreamFileTest::Unittest_CheckOutputFile
//
// @doc:
// Check the contents of the file used by the output stream
//
//---------------------------------------------------------------------------
void
COstreamFileTest::Unittest_CheckOutputFile(const CHAR *szFile)
{
GPOS_ASSERT(NULL != szFile);
CFileReader fr;
fr.Open(szFile);
const ULONG ulReadBufferSize = 1024;
WCHAR wszReadBuffer[ulReadBufferSize];
ULONG_PTR ulpRead GPOS_ASSERTS_ONLY = fr.ReadBytesToBuffer(
(BYTE *) wszReadBuffer, GPOS_ARRAY_SIZE(wszReadBuffer));
CWStringConst strExpected(
GPOS_WSZ_LIT("WC102-10some regular stringdeadbeef"));
GPOS_ASSERT(ulpRead ==
(ULONG_PTR) strExpected.Length() * GPOS_SIZEOF(WCHAR));
GPOS_ASSERT(strExpected.Equals(&strExpected));
}
//---------------------------------------------------------------------------
// @function:
// COstreamFileTest::Unittest_DeleteTmpFile
//
// @doc:
// Delete temporary file;
//
//---------------------------------------------------------------------------
void
COstreamFileTest::Unittest_DeleteTmpFile(const CHAR *szDir, const CHAR *szFile)
{
GPOS_ASSERT(NULL != szDir);
GPOS_ASSERT(NULL != szFile);
if (ioutils::PathExists(szFile))
{
// delete temporary file
ioutils::Unlink(szFile);
}
if (ioutils::PathExists(szDir))
{
// delete temporary dir
ioutils::RemoveDir(szDir);
}
}
// EOF
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2011 EMC Corp.
//
// @filename:
// COstreamFile.cpp
//
// @doc:
// Implementation of output file stream class;
//---------------------------------------------------------------------------
#include "gpos/base.h"
#include "gpos/io/COstreamFile.h"
using namespace gpos;
//---------------------------------------------------------------------------
// @function:
// COstreamFile::COstreamFile
//
// @doc:
// Ctor
//
//---------------------------------------------------------------------------
COstreamFile::COstreamFile(const CHAR *file_path, ULONG permission_bits)
{
m_file_writer.Open(file_path, permission_bits);
}
//---------------------------------------------------------------------------
// @function:
// COstreamFile::COstreamFile
//
// @doc:
// Dtor
//
//---------------------------------------------------------------------------
COstreamFile::~COstreamFile()
{
m_file_writer.Close();
}
//---------------------------------------------------------------------------
// @function:
// COstreamFile::operator<<
//
// @doc:
// WCHAR write thru;
//
//---------------------------------------------------------------------------
IOstream &
COstreamFile::operator<<(const WCHAR *wsz)
{
ULONG_PTR ulpSize = GPOS_WSZ_LENGTH(wsz) * GPOS_SIZEOF(WCHAR);
m_file_writer.Write((const BYTE *) wsz, ulpSize);
return *this;
}
// EOF
......@@ -15,7 +15,6 @@ OBJS = CFileDescriptor.o \
CFileWriter.o \
COstream.o \
COstreamBasic.o \
COstreamFile.o \
COstreamString.o \
ioutils.o
......
......@@ -8,34 +8,34 @@
// @doc:
// Test for DXL-based minidumps
//---------------------------------------------------------------------------
#include "unittest/gpopt/minidump/CMiniDumperDXLTest.h"
#include "gpos/io/CFileDescriptor.h"
#include "gpos/io/COstreamString.h"
#include "gpos/io/COstreamFile.h"
#include "gpos/task/CAutoTraceFlag.h"
#include "naucrates/base/CQueryToDXLResult.h"
#include "naucrates/dxl/CDXLUtils.h"
#include "gpopt/base/CQueryContext.h"
#include "gpopt/engine/CEngine.h"
#include "gpopt/engine/CEnumeratorConfig.h"
#include "gpopt/engine/CStatisticsConfig.h"
#include "gpopt/eval/CConstExprEvaluatorDefault.h"
#include "gpopt/optimizer/COptimizerConfig.h"
#include "gpopt/minidump/CDXLMinidump.h"
#include "gpopt/minidump/CMiniDumperDXL.h"
#include "gpopt/minidump/CMinidumperUtils.h"
#include "gpopt/minidump/CSerializableQuery.h"
#include "gpopt/minidump/CSerializableMDAccessor.h"
#include "gpopt/minidump/CSerializableOptimizerConfig.h"
#include "gpopt/minidump/CSerializablePlan.h"
#include "gpopt/minidump/CSerializableQuery.h"
#include "gpopt/minidump/CSerializableStackTrace.h"
#include "gpopt/minidump/CSerializableOptimizerConfig.h"
#include "gpopt/optimizer/COptimizerConfig.h"
#include "gpopt/translate/CTranslatorDXLToExpr.h"
#include "gpopt/translate/CTranslatorExprToDXL.h"
#include "naucrates/base/CQueryToDXLResult.h"
#include "naucrates/dxl/CDXLUtils.h"
#include "unittest/base.h"
#include "unittest/gpopt/minidump/CMiniDumperDXLTest.h"
#include "unittest/gpopt/translate/CTranslatorExprToDXLTest.h"
#include "unittest/gpopt/CTestUtils.h"
#include "unittest/gpopt/translate/CTranslatorExprToDXLTest.h"
#include <fstream>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册