From 314014e817dc0d337cbbdeae80b60c0b72d73f90 Mon Sep 17 00:00:00 2001 From: Jihoon Chung Date: Tue, 23 Oct 2012 11:43:13 +0900 Subject: [PATCH] hidden symbol for enhancement shared library loading time (orm.h) [Issue#] N/A [Problem] shared library loading time takes long time [Cause] Unexpected symbols are exported by shared library [Solution] Add visibility("hidden") in the class [SCMRequest] N/A Change-Id: Id7fa3ddeafd1f01e209aca08537362153c180b03 --- modules/db/include/dpl/db/orm.h | 51 ++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/modules/db/include/dpl/db/orm.h b/modules/db/include/dpl/db/orm.h index 8ba96c4..64c0705 100644 --- a/modules/db/include/dpl/db/orm.h +++ b/modules/db/include/dpl/db/orm.h @@ -77,7 +77,7 @@ namespace DataCommandUtils { void BindArgument(DataCommand *command, ArgumentIndex index, const DPL::String& argument); void BindArgument(DataCommand *command, ArgumentIndex index, const OptionalString& argument); } -class Expression { +class __attribute__ ((visibility("hidden"))) Expression { public: virtual ~Expression() {} virtual std::string GetString() const = 0; @@ -87,7 +87,7 @@ public: typedef DPL::SharedPtr ExpressionPtr; template -class BinaryExpression : public Expression { +class __attribute__ ((visibility("hidden"))) BinaryExpression : public Expression { protected: LeftExpression m_leftExpression; RightExpression m_rightExpression; @@ -129,7 +129,7 @@ BinaryExpression } template -class ExpressionWithArgument : public Expression { +class __attribute__ ((visibility("hidden"))) ExpressionWithArgument : public Expression { protected: ArgumentType argument; @@ -143,9 +143,8 @@ public: } }; - template -class Compare : public ExpressionWithArgument { +class __attribute__ ((visibility("hidden"))) Compare : public ExpressionWithArgument { public: explicit Compare(typename ColumnData::ColumnType column) : ExpressionWithArgument(column) @@ -170,7 +169,7 @@ public: }; #define ORM_DEFINE_COMPARE_EXPRESSION(name, relationType) \ template \ - class name : public Compare { \ + class __attribute__ ((visibility("hidden"))) name : public Compare { \ public: \ name(typename ColumnData::ColumnType column) : \ Compare(column) \ @@ -181,7 +180,7 @@ ORM_DEFINE_COMPARE_EXPRESSION(Equals, Equal) ORM_DEFINE_COMPARE_EXPRESSION(Is, Is) template -class CompareBinaryColumn { +class __attribute__ ((visibility("hidden"))) CompareBinaryColumn { private: std::string m_relation; public: @@ -216,7 +215,7 @@ CompareBinaryColumn } template -class NumerousArguments : public Expression { +class __attribute__ ((visibility("hidden"))) NumerousArguments : public Expression { protected: std::set m_argumentList; public: @@ -265,7 +264,7 @@ public: #define ORM_DEFINE_COMPARE_EXPRESSION_NUMEROUS_ARGUMENTS(name, relationType) \ template \ - class name : public NumerousArguments { \ + class __attribute__ ((visibility("hidden"))) name : public NumerousArguments { \ public: \ name(std::set column) : \ NumerousArguments(column) \ @@ -277,14 +276,14 @@ ORM_DEFINE_COMPARE_EXPRESSION_NUMEROUS_ARGUMENTS(In, In) template ColumnType GetColumnFromCommand(ColumnIndex columnIndex, DataCommand *command); -class CustomColumnBase { +class __attribute__ ((visibility("hidden"))) CustomColumnBase { public: CustomColumnBase() {} virtual ~CustomColumnBase() {} }; template -class CustomColumn : public CustomColumnBase { +class __attribute__ ((visibility("hidden"))) CustomColumn : public CustomColumnBase { private: ColumnType m_columnData; @@ -307,7 +306,7 @@ public: }; template -class CustomRowUtil { +class __attribute__ ((visibility("hidden"))) CustomRowUtil { public: static void MakeColumnList(std::vector& columnList) { @@ -349,7 +348,7 @@ friend class CustomRowUtil; }; template<> -class CustomRowUtil { +class __attribute__ ((visibility("hidden"))) CustomRowUtil { public: static void MakeColumnList(std::vector&) {} private: @@ -361,7 +360,7 @@ friend class CustomRowUtil; }; template -class CustomRow { +class __attribute__ ((visibility("hidden"))) CustomRow { private: std::vector m_columns; @@ -416,7 +415,7 @@ void SetColumnData(CustomRow& row, ColumnType columnData, ColumnIndex columnInde } template -class FillCustomRowUtil { +class __attribute__ ((visibility("hidden"))) FillCustomRowUtil { public: static void FillCustomRow(CustomRow& row, DataCommand* command) { @@ -437,7 +436,7 @@ friend class FillCustomRowUtil; }; template -class FillCustomRowUtil { +class __attribute__ ((visibility("hidden"))) FillCustomRowUtil { private: static void FillCustomRow(CustomRow&, ColumnIndex, DataCommand *) { /* do nothing, we're past the last element of column list */ } @@ -447,7 +446,7 @@ friend class FillCustomRowUtil; }; template -class FillRowUtil { +class __attribute__ ((visibility("hidden"))) FillRowUtil { public: static void FillRow(Row& row, DataCommand *command) { @@ -468,7 +467,7 @@ friend class FillRowUtil; }; template -class FillRowUtil { +class __attribute__ ((visibility("hidden"))) FillRowUtil { private: static void FillRow(Row&, ColumnIndex, DataCommand *) { /* do nothing, we're past the last element of column list */ } @@ -478,7 +477,7 @@ friend class FillRowUtil; }; template -class JoinUtil { +class __attribute__ ((visibility("hidden"))) JoinUtil { public: static std::string GetColumnNames() { @@ -503,7 +502,7 @@ public: }; template<> -class JoinUtil { +class __attribute__ ((visibility("hidden"))) JoinUtil { public: static std::string GetColumnNames() { return ""; } static std::string GetJoinTableName(std::string) { return ""; } @@ -518,7 +517,7 @@ public: }; template -class Query +class __attribute__ ((visibility("hidden"))) Query { protected: explicit Query(IOrmInterface* interface) : @@ -542,7 +541,7 @@ protected: }; template -class QueryWithWhereClause : public Query +class __attribute__ ((visibility("hidden"))) QueryWithWhereClause : public Query { protected: ExpressionPtr m_whereExpression; @@ -593,7 +592,7 @@ public: }; template -class Delete : public QueryWithWhereClause +class __attribute__ ((visibility("hidden"))) Delete : public QueryWithWhereClause { protected: void Prepare() @@ -634,7 +633,7 @@ public: }; template -class Insert : public Query +class __attribute__ ((visibility("hidden"))) Insert : public Query { public: typedef typename TableDefinition::Row Row; @@ -755,7 +754,7 @@ public: }; template -class Select : public QueryWithWhereClause +class __attribute__ ((visibility("hidden"))) Select : public QueryWithWhereClause { public: typedef typename TableDefinition::ColumnList ColumnList; @@ -939,7 +938,7 @@ public: }; template -class Update : public QueryWithWhereClause { +class __attribute__ ((visibility("hidden"))) Update : public QueryWithWhereClause { public: typedef typename TableDefinition::Row Row; -- 2.7.4