diff options
43 files changed, 55 insertions, 53 deletions
diff --git a/project2/basics/if.h b/project2/basics/if.h index 64f885b..a626bcc 100644 --- a/project2/basics/if.h +++ b/project2/basics/if.h @@ -6,7 +6,7 @@ #include "test.h" /// Project2 component to conditionally execute its children -class If : public IHaveSubTasks, public View { +class DLL_PUBLIC If : public IHaveSubTasks, public View { public: If(ScriptNodePtr); diff --git a/project2/basics/tasks/iterate.h b/project2/basics/tasks/iterate.h index 2afbe98..807c8c3 100644 --- a/project2/basics/tasks/iterate.h +++ b/project2/basics/tasks/iterate.h @@ -9,7 +9,7 @@ class Iterate; typedef boost::intrusive_ptr<Iterate> IteratePtr; /// Project2 component to iterate over a row set, executing its children for each record -class Iterate : public IHaveSubTasks, public RowProcessor { +class DLL_PUBLIC Iterate : public IHaveSubTasks, public RowProcessor { public: Iterate(ScriptNodePtr p); virtual ~Iterate(); diff --git a/project2/basics/tasks/session/sessionClearTask.h b/project2/basics/tasks/session/sessionClearTask.h index ead88bf..d5103a5 100644 --- a/project2/basics/tasks/session/sessionClearTask.h +++ b/project2/basics/tasks/session/sessionClearTask.h @@ -10,7 +10,7 @@ class CommonObjects; /// Project2 component to remove a variable from the session -class SessionClearTask : public Task { +class DLL_PUBLIC SessionClearTask : public Task { public: SessionClearTask(ScriptNodePtr p); virtual ~SessionClearTask(); diff --git a/project2/basics/tasks/session/sessionSetTask.h b/project2/basics/tasks/session/sessionSetTask.h index d38c216..51222c0 100644 --- a/project2/basics/tasks/session/sessionSetTask.h +++ b/project2/basics/tasks/session/sessionSetTask.h @@ -11,7 +11,7 @@ class CommonObjects; /// Project2 component to add/update a variable in the session -class SessionSetTask : public Task { +class DLL_PUBLIC SessionSetTask : public Task { public: SessionSetTask(ScriptNodePtr p); virtual ~SessionSetTask(); diff --git a/project2/basics/tasks/structExceptHandling.h b/project2/basics/tasks/structExceptHandling.h index b6702f1..e6f0398 100644 --- a/project2/basics/tasks/structExceptHandling.h +++ b/project2/basics/tasks/structExceptHandling.h @@ -3,7 +3,7 @@ #include "iHaveSubTasks.h" -class StructuredExceptionHandler : public IHaveSubTasks { +class DLL_PUBLIC StructuredExceptionHandler : public IHaveSubTasks { public: StructuredExceptionHandler(ScriptNodePtr); diff --git a/project2/basics/tests/compoundTest.h b/project2/basics/tests/compoundTest.h index cc213c3..182ed0e 100644 --- a/project2/basics/tests/compoundTest.h +++ b/project2/basics/tests/compoundTest.h @@ -4,7 +4,7 @@ #include <test.h> #include "scriptStorage.h" -class CompoundTest : public Test { +class DLL_PUBLIC CompoundTest : public Test { public: CompoundTest(ScriptNodePtr); diff --git a/project2/basics/views/autotree.h b/project2/basics/views/autotree.h index 48f46be..ace3d8d 100644 --- a/project2/basics/views/autotree.h +++ b/project2/basics/views/autotree.h @@ -9,7 +9,7 @@ class AutoTreeNode; typedef boost::intrusive_ptr<const AutoTreeNode> AutoTreeNodePtr; -class AutoTreeState { +class DLL_PUBLIC AutoTreeState { public: typedef boost::tuple<bool, bool> Opened; @@ -17,7 +17,7 @@ class AutoTreeState { std::vector<VariableType> values; }; -class AutoTreeNode : public IntrusivePtrBase { +class DLL_PUBLIC AutoTreeNode : public IntrusivePtrBase { public: typedef std::map<Glib::ustring, Variable> Values; @@ -44,7 +44,7 @@ class AutoTreeNode : public IntrusivePtrBase { }; /// Project2 component to create tree output based on a records in a row set -class AutoTree : public View, public RowProcessor { +class DLL_PUBLIC AutoTree : public View, public RowProcessor { public: AutoTree(ScriptNodePtr); virtual ~AutoTree(); diff --git a/project2/basics/views/rowView.h b/project2/basics/views/rowView.h index a65ea69..1ace513 100644 --- a/project2/basics/views/rowView.h +++ b/project2/basics/views/rowView.h @@ -8,7 +8,7 @@ #include "aggregate.h" /// Project2 component to create output based on a records in a row set -class RowView : public View, public RowProcessor { +class DLL_PUBLIC RowView : public View, public RowProcessor { public: RowView(ScriptNodePtr); virtual ~RowView(); diff --git a/project2/cgi/cgiEnvInput.h b/project2/cgi/cgiEnvInput.h index 2704fd5..62b24ca 100644 --- a/project2/cgi/cgiEnvInput.h +++ b/project2/cgi/cgiEnvInput.h @@ -2,8 +2,9 @@ #define CGIENVINPUT #include <string> +#include <visibility.h> -class CgiEnvInput { +class DLL_PUBLIC CgiEnvInput { public: virtual std::string getenv(const std::string & varName) const = 0; }; diff --git a/project2/cgi/cgiOutputOptions.h b/project2/cgi/cgiOutputOptions.h index 9914665..75a19b0 100644 --- a/project2/cgi/cgiOutputOptions.h +++ b/project2/cgi/cgiOutputOptions.h @@ -5,7 +5,7 @@ #include "options.h" #include "variables.h" -class OutputOptions : public IntrusivePtrBase { +class DLL_PUBLIC OutputOptions : public IntrusivePtrBase { public: OutputOptions(ScriptNodePtr); diff --git a/project2/cgi/cgiRequestContext.h b/project2/cgi/cgiRequestContext.h index d79a0e4..1728103 100644 --- a/project2/cgi/cgiRequestContext.h +++ b/project2/cgi/cgiRequestContext.h @@ -19,7 +19,7 @@ namespace Glib { class Regex; } -class CgiRequestContext : public ExecContext { +class DLL_PUBLIC CgiRequestContext : public ExecContext { public: typedef std::string ETag; typedef std::vector<ETag> ETags; diff --git a/project2/cgi/cgiResult.h b/project2/cgi/cgiResult.h index 35165c8..ce28ca7 100644 --- a/project2/cgi/cgiResult.h +++ b/project2/cgi/cgiResult.h @@ -4,7 +4,7 @@ #include "transform.h" #include "cgiAppEngine.h" -class CgiResult : public TransformChainLink { +class DLL_PUBLIC CgiResult : public TransformChainLink { public: CgiResult(CgiApplicationEngine::HttpHeaderPtr & h, std::ostream & s, const std::string & e) : header(h), diff --git a/project2/cgi/cgiRouter.h b/project2/cgi/cgiRouter.h index bc4ce44..5417bce 100644 --- a/project2/cgi/cgiRouter.h +++ b/project2/cgi/cgiRouter.h @@ -7,7 +7,7 @@ class MultiRowSetPresenter; -class Router : public IntrusivePtrBase { +class DLL_PUBLIC Router : public IntrusivePtrBase { public: virtual bool isDefault() const = 0; virtual std::string route() const = 0; diff --git a/project2/compression/decompressor.h b/project2/compression/decompressor.h index c15fef2..0f3a434 100644 --- a/project2/compression/decompressor.h +++ b/project2/compression/decompressor.h @@ -5,7 +5,7 @@ #include "intrusivePtrBase.h" #include <factory.h> -class Decompressor : public IntrusivePtrBase { +class DLL_PUBLIC Decompressor : public IntrusivePtrBase { public: virtual ~Decompressor(); diff --git a/project2/daemon/p2daemonAppEngine.h b/project2/daemon/p2daemonAppEngine.h index 19bd000..cecdbbb 100644 --- a/project2/daemon/p2daemonAppEngine.h +++ b/project2/daemon/p2daemonAppEngine.h @@ -9,7 +9,7 @@ #include <glibmm/main.h> #include <appInstance.h> -class DaemonAppEngine : AppInstance { +class DLL_PUBLIC DaemonAppEngine : AppInstance { public: DaemonAppEngine(int, char **); ~DaemonAppEngine(); diff --git a/project2/files/fsRows.h b/project2/files/fsRows.h index 53df49e..773fd75 100644 --- a/project2/files/fsRows.h +++ b/project2/files/fsRows.h @@ -13,7 +13,7 @@ class CommonObjects; /// Project2 component to create a row set based on files and directories on the local filesystem -class FsRows : public RowSet { +class DLL_PUBLIC FsRows : public RowSet { public: class SearchState; class SpecBase : public virtual IntrusivePtrBase { diff --git a/project2/ice/iceClient.h b/project2/ice/iceClient.h index 7d1d5e1..1c33e78 100644 --- a/project2/ice/iceClient.h +++ b/project2/ice/iceClient.h @@ -17,7 +17,7 @@ class DLL_PUBLIC IceClientBase { }; template <typename Interface> -class IceClient : public IceClientBase { +class DLL_PUBLIC IceClient : public IceClientBase { public: IceClient(ScriptNodePtr p) : IceClientBase(p) { } diff --git a/project2/ice/iceRows.h b/project2/ice/iceRows.h index dded0db..b333eb2 100644 --- a/project2/ice/iceRows.h +++ b/project2/ice/iceRows.h @@ -24,7 +24,7 @@ class DLL_PUBLIC RowProcSerializer : public Slicer::Serializer { }; template <typename Interface> -class IceRows : public RowSet, public IceClient<Interface> { +class DLL_PUBLIC IceRows : public RowSet, public IceClient<Interface> { public: IceRows(ScriptNodePtr p) : SourceObject(p), diff --git a/project2/ice/iceTask.h b/project2/ice/iceTask.h index 281429f..18e3b50 100644 --- a/project2/ice/iceTask.h +++ b/project2/ice/iceTask.h @@ -6,7 +6,7 @@ #include "iceClient.h" template <typename Interface> -class IceTask : public Task, public IceClient<Interface> { +class DLL_PUBLIC IceTask : public Task, public IceClient<Interface> { public: IceTask(ScriptNodePtr p) : SourceObject(p), diff --git a/project2/ice/iceViewSerializer.h b/project2/ice/iceViewSerializer.h index ff4188d..135a059 100644 --- a/project2/ice/iceViewSerializer.h +++ b/project2/ice/iceViewSerializer.h @@ -4,7 +4,7 @@ #include <slicer/modelParts.h> #include <presenter.h> -class IceViewSerializer : public RowSetPresenter { +class DLL_PUBLIC IceViewSerializer : public RowSetPresenter { public: IceViewSerializer(Slicer::ModelPartPtr mpp); diff --git a/project2/ice/iceboxLogger.h b/project2/ice/iceboxLogger.h index d306419..5f9145c 100644 --- a/project2/ice/iceboxLogger.h +++ b/project2/ice/iceboxLogger.h @@ -5,7 +5,7 @@ #include <loggerFactory.h> #include <options.h> -class IceBoxLogDriver : public LogDriverBase { +class DLL_PUBLIC IceBoxLogDriver : public LogDriverBase { public: IceBoxLogDriver(Ice::LoggerPtr l); @@ -18,7 +18,7 @@ class IceBoxLogDriver : public LogDriverBase { static std::string debugCategory; }; -class IceBoxLoggerFactory : public LogDriverFactoryImpl<IceBoxLogDriver> +class DLL_PUBLIC IceBoxLoggerFactory : public LogDriverFactoryImpl<IceBoxLogDriver> { public: IceBoxLoggerFactory(Ice::LoggerPtr l); diff --git a/project2/ice/slice2Rows.h b/project2/ice/slice2Rows.h index c85e4b8..7417523 100644 --- a/project2/ice/slice2Rows.h +++ b/project2/ice/slice2Rows.h @@ -3,7 +3,7 @@ #include "slice2Common.h" -class Slice2Rows : public Slice2Common { +class DLL_PUBLIC Slice2Rows : public Slice2Common { public: Slice2Rows(FILE * c); diff --git a/project2/json/presenter.h b/project2/json/presenter.h index 981953c..b18f05f 100644 --- a/project2/json/presenter.h +++ b/project2/json/presenter.h @@ -7,7 +7,7 @@ #include "transform.h" #include <stack> -class JsonPresenter : public MultiRowSetPresenter, public ContentPresenter, public SourceOf<json::Object>, public WritableContent, public SourceOf<WritableContent> { +class DLL_PUBLIC JsonPresenter : public MultiRowSetPresenter, public ContentPresenter, public SourceOf<json::Object>, public WritableContent, public SourceOf<WritableContent> { public: JsonPresenter(ScriptNodePtr s, ObjectSource, ExecContext *); JsonPresenter(ScriptNodePtr s, ObjectSource, const Glib::ustring &); diff --git a/project2/mail/sendmailTask.h b/project2/mail/sendmailTask.h index e09b871..80341d3 100644 --- a/project2/mail/sendmailTask.h +++ b/project2/mail/sendmailTask.h @@ -10,7 +10,7 @@ #include <options.h> /// Project2 component to send an email -class SendMailTask : public Task { +class DLL_PUBLIC SendMailTask : public Task { public: class MailPart : public IntrusivePtrBase { public: diff --git a/project2/regex/regexRows.h b/project2/regex/regexRows.h index 1a4ddb1..373d853 100644 --- a/project2/regex/regexRows.h +++ b/project2/regex/regexRows.h @@ -5,7 +5,7 @@ #include "variables.h" /// Base class for Project2 components that create a row set based on the contents of a byte stream -class RegexRows : public DefinedColumns, public RowSet { +class DLL_PUBLIC RegexRows : public DefinedColumns, public RowSet { public: RegexRows(ScriptNodePtr p); ~RegexRows(); diff --git a/project2/regex/regexTest.h b/project2/regex/regexTest.h index 00038a1..38d2cf7 100644 --- a/project2/regex/regexTest.h +++ b/project2/regex/regexTest.h @@ -5,7 +5,7 @@ #include "variables.h" /// Project2 component to test the value of a variable against a regular expression -class RegexTest : public Test { +class DLL_PUBLIC RegexTest : public Test { public: RegexTest(ScriptNodePtr p); virtual ~RegexTest(); diff --git a/project2/sql/rdbmsDataSource.h b/project2/sql/rdbmsDataSource.h index 373ed34..807ad3f 100644 --- a/project2/sql/rdbmsDataSource.h +++ b/project2/sql/rdbmsDataSource.h @@ -12,7 +12,7 @@ #include "scriptLoader.h" /// Project2 component to provide access to transactional RDBMS data sources -class RdbmsDataSource : public DataSource { +class DLL_PUBLIC RdbmsDataSource : public DataSource { public: class ConnectionRef; diff --git a/project2/sql/sqlBase.h b/project2/sql/sqlBase.h index 461589f..7e906c3 100644 --- a/project2/sql/sqlBase.h +++ b/project2/sql/sqlBase.h @@ -6,7 +6,7 @@ class RdbmsDataSource; -class SqlBase : public virtual SourceObject { +class DLL_PUBLIC SqlBase : public virtual SourceObject { public: SqlBase(ScriptNodePtr); SqlBase(const std::string &); diff --git a/project2/sql/sqlHandleAsVariableType.h b/project2/sql/sqlHandleAsVariableType.h index d843c4e..97b63c9 100644 --- a/project2/sql/sqlHandleAsVariableType.h +++ b/project2/sql/sqlHandleAsVariableType.h @@ -4,7 +4,7 @@ #include "column.h" #include "variables.h" -class HandleAsVariableType : public DB::HandleField { +class DLL_PUBLIC HandleAsVariableType : public DB::HandleField { public: void null(); void string(const char * c, size_t l); diff --git a/project2/sql/sqlMergeTask.h b/project2/sql/sqlMergeTask.h index 0c005f8..60b5952 100644 --- a/project2/sql/sqlMergeTask.h +++ b/project2/sql/sqlMergeTask.h @@ -17,7 +17,7 @@ #include <list> /// Project2 component merge arbitrary data into an RDBMS table -class SqlMergeTask : public Task { +class DLL_PUBLIC SqlMergeTask : public Task { public: typedef std::string Table; typedef std::string Column; diff --git a/project2/sql/sqlRows.h b/project2/sql/sqlRows.h index 20aa473..30abb08 100644 --- a/project2/sql/sqlRows.h +++ b/project2/sql/sqlRows.h @@ -12,7 +12,7 @@ class RdbmsDataSource; /// Project2 component to create a row set based on an SQL SELECT statement issued against an RDBMS data source -class SqlRows : public RowSet, SqlBase { +class DLL_PUBLIC SqlRows : public RowSet, SqlBase { public: SqlRows(ScriptNodePtr p); ~SqlRows(); diff --git a/project2/sql/sqlTask.h b/project2/sql/sqlTask.h index d6193ae..cb22173 100644 --- a/project2/sql/sqlTask.h +++ b/project2/sql/sqlTask.h @@ -12,7 +12,7 @@ namespace DB { class ModifyCommand; } /// Project2 component to execute a modifying SQL statement against an RDBMS data source -class SqlTask : public Task, SqlBase { +class DLL_PUBLIC SqlTask : public Task, SqlBase { public: SqlTask(ScriptNodePtr p); virtual ~SqlTask(); diff --git a/project2/sql/sqlTest.h b/project2/sql/sqlTest.h index d0a40ab..04a5570 100644 --- a/project2/sql/sqlTest.h +++ b/project2/sql/sqlTest.h @@ -8,7 +8,7 @@ namespace DB { class SelectCommand; } /// Project2 component to test the value of a variable against an RDBMS data source -class SqlTest : public Test, SqlBase { +class DLL_PUBLIC SqlTest : public Test, SqlBase { public: SqlTest(ScriptNodePtr p); virtual ~SqlTest(); diff --git a/project2/sql/sqlVariableBinder.h b/project2/sql/sqlVariableBinder.h index 9f351e4..2ab202f 100644 --- a/project2/sql/sqlVariableBinder.h +++ b/project2/sql/sqlVariableBinder.h @@ -6,7 +6,7 @@ namespace DB { class Command; } -class SqlVariableBinder : public boost::static_visitor<> { +class DLL_PUBLIC SqlVariableBinder : public boost::static_visitor<> { public: SqlVariableBinder(DB::Command * c, unsigned int i); void operator()(const Null & i) const; diff --git a/project2/sql/sqlWriters.h b/project2/sql/sqlWriters.h index 878a12e..a16412d 100644 --- a/project2/sql/sqlWriters.h +++ b/project2/sql/sqlWriters.h @@ -17,7 +17,7 @@ namespace DynamicSql { typedef boost::intrusive_ptr<SqlWriter> SqlWriterPtr; typedef std::list<SqlWriterPtr> Writers; - class SqlWriter : public IntrusivePtrBase { + class DLL_PUBLIC SqlWriter : public IntrusivePtrBase { public: virtual ~SqlWriter() = default; virtual void writeSql(AdHoc::Buffer & sql) const = 0; @@ -25,7 +25,7 @@ namespace DynamicSql { virtual void setFilter(const Glib::ustring &) const; }; - class SqlText : public SqlWriter { + class DLL_PUBLIC SqlText : public SqlWriter { public: SqlText(const Glib::ustring &); virtual void writeSql(AdHoc::Buffer & sql) const override; @@ -34,14 +34,14 @@ namespace DynamicSql { const Glib::ustring text; }; - class SqlParameter : public SqlWriter, Variable { + class DLL_PUBLIC SqlParameter : public SqlWriter, Variable { public: SqlParameter(ScriptNodePtr); virtual void writeSql(AdHoc::Buffer & sql) const override; virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const override; }; - class SqlFilter : public SqlWriter { + class DLL_PUBLIC SqlFilter : public SqlWriter { public: SqlFilter(ScriptNodePtr); virtual void writeSql(AdHoc::Buffer & sql) const override; @@ -55,7 +55,7 @@ namespace DynamicSql { Writers writers; }; - class SqlCommand : public SqlWriter { + class DLL_PUBLIC SqlCommand : public SqlWriter { public: SqlCommand(ScriptNodePtr); @@ -67,7 +67,7 @@ namespace DynamicSql { Writers writers; }; - class SqlWriterWrapper : public DB::SqlWriter { + class DLL_PUBLIC SqlWriterWrapper : public DB::SqlWriter { public: SqlWriterWrapper(ExecContext *, const DynamicSql::SqlWriter *); diff --git a/project2/streams/textReader.h b/project2/streams/textReader.h index b101272..98386c1 100644 --- a/project2/streams/textReader.h +++ b/project2/streams/textReader.h @@ -3,8 +3,9 @@ #include <boost/function.hpp> #include <glib.h> +#include <visibility.h> -class TextReader { +class DLL_PUBLIC TextReader { public: typedef boost::function<void(gunichar)> CharSink; diff --git a/project2/xml/sessionXml.h b/project2/xml/sessionXml.h index d3300bd..dd194fe 100644 --- a/project2/xml/sessionXml.h +++ b/project2/xml/sessionXml.h @@ -5,7 +5,7 @@ #include "options.h" #include <boost/filesystem/path.hpp> -class SessionContainerXml : public SessionContainer { +class DLL_PUBLIC SessionContainerXml : public SessionContainer { public: SessionContainerXml(); ~SessionContainerXml(); diff --git a/project2/xml/xmlDocumentCache.h b/project2/xml/xmlDocumentCache.h index e735a24..97fdb6d 100644 --- a/project2/xml/xmlDocumentCache.h +++ b/project2/xml/xmlDocumentCache.h @@ -12,7 +12,7 @@ #include <curlMultiHandle.h> #include <curlHelper.h> -class XmlDocumentCache : protected VariableCurlHelper { +class DLL_PUBLIC XmlDocumentCache : protected VariableCurlHelper { public: typedef std::set<Glib::ustring> Queued; typedef xmlpp::Document * DocumentPtr; diff --git a/project2/xml/xmlDocumentPrefetch.h b/project2/xml/xmlDocumentPrefetch.h index 7861971..7dd428f 100644 --- a/project2/xml/xmlDocumentPrefetch.h +++ b/project2/xml/xmlDocumentPrefetch.h @@ -8,7 +8,7 @@ #include <libxml++/nodes/element.h> /// Project2 component to queue up CURL objects to be downloaded -class XmlDocumentPrefetch : public View, public Task, XmlDocumentCache { +class DLL_PUBLIC XmlDocumentPrefetch : public View, public Task, XmlDocumentCache { public: XmlDocumentPrefetch(ScriptNodePtr p); ~XmlDocumentPrefetch(); diff --git a/project2/xml/xmlPresenter.h b/project2/xml/xmlPresenter.h index 1410a34..e27f169 100644 --- a/project2/xml/xmlPresenter.h +++ b/project2/xml/xmlPresenter.h @@ -13,7 +13,7 @@ namespace xmlpp { class Element; } -class XmlDocMutator : public IntrusivePtrBase { +class DLL_PUBLIC XmlDocMutator : public IntrusivePtrBase { public: XmlDocMutator(ScriptNodePtr); virtual void mutateElement(xmlpp::Element *) const = 0; diff --git a/project2/xml/xmlRawRows.h b/project2/xml/xmlRawRows.h index ac5a30f..483863d 100644 --- a/project2/xml/xmlRawRows.h +++ b/project2/xml/xmlRawRows.h @@ -4,7 +4,7 @@ namespace xmlpp { class Document; } -class XmlRawRowsBase : public RowSet { +class DLL_PUBLIC XmlRawRowsBase : public RowSet { public: XmlRawRowsBase(ScriptNodePtr p); XmlRawRowsBase(); @@ -13,7 +13,7 @@ class XmlRawRowsBase : public RowSet { void execute(const xmlpp::Document *, const RowProcessorCallback &, ExecContext *) const; }; -class XmlRawRows : public XmlRawRowsBase { +class DLL_PUBLIC XmlRawRows : public XmlRawRowsBase { public: XmlRawRows(ScriptNodePtr p); XmlRawRows(const Glib::ustring & p); @@ -24,7 +24,7 @@ class XmlRawRows : public XmlRawRowsBase { const Variable path; }; -class XmlMemRawRows : public XmlRawRowsBase { +class DLL_PUBLIC XmlMemRawRows : public XmlRawRowsBase { public: XmlMemRawRows(boost::shared_ptr<const xmlpp::Document> d); diff --git a/project2/xml/xmlRows.h b/project2/xml/xmlRows.h index bfc6514..4f0d9f1 100644 --- a/project2/xml/xmlRows.h +++ b/project2/xml/xmlRows.h @@ -7,7 +7,7 @@ #include "rowSet.h" /// Project2 component to create a row set based on the contents of an XML file -class XmlRows : public RowSet { +class DLL_PUBLIC XmlRows : public RowSet { public: typedef std::vector<std::string> Path; typedef std::map<Path, unsigned int> Interests; diff --git a/project2/xml/xpathRows.h b/project2/xml/xpathRows.h index f81c4c8..663df89 100644 --- a/project2/xml/xpathRows.h +++ b/project2/xml/xpathRows.h @@ -12,7 +12,7 @@ #include "definedColumns.h" /// Project2 component to create a row set based on the contents of an XML resource and specific XPaths with its hierarchy -class XPathRows : public RowSet, XmlDocumentCache { +class DLL_PUBLIC XPathRows : public RowSet, XmlDocumentCache { public: XPathRows(ScriptNodePtr p); ~XPathRows(); |