diff options
35 files changed, 115 insertions, 61 deletions
diff --git a/p2pvr/carddaemon/Jamfile.jam b/p2pvr/carddaemon/Jamfile.jam index 7088966..afa055f 100644 --- a/p2pvr/carddaemon/Jamfile.jam +++ b/p2pvr/carddaemon/Jamfile.jam @@ -5,4 +5,6 @@ lib p2pvrcarddaemon :  	<library>../ice//p2pvrice  	<library>../devices//p2pvrdevices  	<library>../daemonbase//p2pvrdaemonbase +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	; diff --git a/p2pvr/daemon/Jamfile.jam b/p2pvr/daemon/Jamfile.jam index 369e714..05b0e9b 100644 --- a/p2pvr/daemon/Jamfile.jam +++ b/p2pvr/daemon/Jamfile.jam @@ -23,6 +23,8 @@ lib p2pvrdaemon :  	<library>../devices//p2pvrdevices  	<library>../daemonbase//p2pvrdaemonbase  	<library>..//adhocutil +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	<implicit-dependency>../../libtmdb//tmdb  	<library>slicer  	<library>slicer-db diff --git a/p2pvr/daemon/globalDevices.h b/p2pvr/daemon/globalDevices.h index 33f6231..86d80c5 100644 --- a/p2pvr/daemon/globalDevices.h +++ b/p2pvr/daemon/globalDevices.h @@ -6,8 +6,9 @@  #include <dvb.h>  #include <options.h> +#include <visibility.h> -class GlobalDevices : public P2PVR::Devices { +class DLL_PUBLIC GlobalDevices : public P2PVR::Devices {  	public:  		P2PVR::TunerPrx GetTunerSpecific(const DVBSI::DeliveryPtr &, const Ice::Current &);  		P2PVR::TunerPrx GetTunerAny(const DVBSI::DeliveryPtr &, const Ice::Current &); diff --git a/p2pvr/daemon/maintenance.h b/p2pvr/daemon/maintenance.h index 7ec0541..7c3e9b3 100644 --- a/p2pvr/daemon/maintenance.h +++ b/p2pvr/daemon/maintenance.h @@ -2,9 +2,11 @@  #define P2PVR_MAINTENANCE_H  #include <p2pvr.h> +#include <IceUtil/Timer.h>  #include "dbClient.h" +#include <visibility.h> -class Maintenance : public P2PVR::Maintenance, public DatabaseClient { +class DLL_PUBLIC Maintenance : public P2PVR::Maintenance, public DatabaseClient {  	public:  		Maintenance(Ice::ObjectAdapterPtr, IceUtil::TimerPtr); @@ -17,7 +19,7 @@ class Maintenance : public P2PVR::Maintenance, public DatabaseClient {  		INITOPTIONS;  	private: -		void ScheduledUpdate(); +		DLL_PRIVATE void ScheduledUpdate();  		Ice::ObjectAdapterPtr adapter;  		IceUtil::TimerPtr timer; diff --git a/p2pvr/daemon/recorder.h b/p2pvr/daemon/recorder.h index bef331b..6a6940e 100644 --- a/p2pvr/daemon/recorder.h +++ b/p2pvr/daemon/recorder.h @@ -7,8 +7,9 @@  #include <p2pvr.h>  #include <mutex>  #include "serviceStreamer.h" +#include <visibility.h> -class Recorder : public P2PVR::Recorder { +class DLL_PUBLIC Recorder : public P2PVR::Recorder {  	public:  		typedef std::vector<IceUtil::TimerTaskPtr> Pendings; @@ -32,8 +33,8 @@ class Recorder : public P2PVR::Recorder {  		INITOPTIONS;  	private: -		void StartRecording(P2PVR::SchedulePtr schedule, DVBSI::ServicePtr service, P2PVR::EventPtr event); -		void StopRecording(CurrentPtr); +		DLL_PRIVATE void StartRecording(P2PVR::SchedulePtr schedule, DVBSI::ServicePtr service, P2PVR::EventPtr event); +		DLL_PRIVATE void StopRecording(CurrentPtr);  		Ice::ObjectAdapterPtr adapter;  		IceUtil::TimerPtr timer; diff --git a/p2pvr/daemon/recordings.h b/p2pvr/daemon/recordings.h index fc7863a..482ce23 100644 --- a/p2pvr/daemon/recordings.h +++ b/p2pvr/daemon/recordings.h @@ -4,8 +4,9 @@  #include <p2pvr.h>  #include <string>  #include "dbClient.h" +#include <visibility.h> -class Recordings : public DatabaseClient, public P2PVR::Recordings { +class DLL_PUBLIC Recordings : public DatabaseClient, public P2PVR::Recordings {  	public:  		Ice::Int NewRecording(const P2PVR::RecordingPtr & rec, const Ice::Current &);  		void DeleteRecording(int recordingId, const Ice::Current &); diff --git a/p2pvr/daemon/schedules.h b/p2pvr/daemon/schedules.h index 2669449..122e214 100644 --- a/p2pvr/daemon/schedules.h +++ b/p2pvr/daemon/schedules.h @@ -5,6 +5,7 @@  #include <options.h>  #include "dbClient.h"  #include <factory.h> +#include <visibility.h>  typedef boost::posix_time::ptime datetime;  class Episode; @@ -61,7 +62,7 @@ class EpisodeGroup {  		Showings selected;  }; -class Schedules : public P2PVR::Schedules, public DatabaseClient { +class DLL_PUBLIC Schedules : public P2PVR::Schedules, public DatabaseClient {  	public:  		void DeleteSchedule(int id, const Ice::Current &);  		P2PVR::SchedulePtr GetSchedule(int id, const Ice::Current &); @@ -74,6 +75,7 @@ class Schedules : public P2PVR::Schedules, public DatabaseClient {  		INITOPTIONS;  	protected:  		static void GetEpisodeIntersects(Episodes &, Episodes &); +  	private:  		static std::string SchedulerAlgorithm;  }; diff --git a/p2pvr/daemon/si.h b/p2pvr/daemon/si.h index c57a018..0e388a1 100644 --- a/p2pvr/daemon/si.h +++ b/p2pvr/daemon/si.h @@ -3,8 +3,9 @@  #include <p2pvr.h>  #include "dbClient.h" +#include <visibility.h> -class SI : public P2PVR::SI, public DatabaseClient { +class DLL_PUBLIC SI : public P2PVR::SI, public DatabaseClient {  	public:  		DVBSI::Networks GetNetworks(const Ice::Current &);  		P2PVR::Deliveries GetAllDeliveries(const Ice::Current &); diff --git a/p2pvr/daemon/storage.h b/p2pvr/daemon/storage.h index 144d6bd..982c3fd 100644 --- a/p2pvr/daemon/storage.h +++ b/p2pvr/daemon/storage.h @@ -6,8 +6,9 @@  #include <string>  #include <boost/filesystem/path.hpp>  #include "temporaryIceAdapterObject.h" +#include <visibility.h> -class Storage : public P2PVR::Storage { +class DLL_PUBLIC Storage : public P2PVR::Storage {  	public:  		P2PVR::RawDataClientPrx OpenForWrite(const std::string &, const Ice::Current &) override;  		void Close(const P2PVR::RawDataClientPrx & file, const Ice::Current &) override; diff --git a/p2pvr/daemon/unittests/testp2ice.cpp b/p2pvr/daemon/unittests/testp2ice.cpp index dc584b6..6eece19 100644 --- a/p2pvr/daemon/unittests/testp2ice.cpp +++ b/p2pvr/daemon/unittests/testp2ice.cpp @@ -27,9 +27,8 @@ void  unloadTests()  {  	BOOST_REQUIRE_THROW(RowSetFactory::get("P2PVR-SI-GetEvent"), AdHoc::NoSuchPluginException); -	// Known issue, these *should* unload, but for some reason, don't. -	BOOST_WARN_THROW(StreamFactory::get("p2pvrrecordingstream"), AdHoc::NoSuchPluginException); -	BOOST_WARN_THROW(StreamFactory::get("p2pvrservicestream"), AdHoc::NoSuchPluginException); +	BOOST_REQUIRE_THROW(StreamFactory::get("p2pvrrecordingstream"), AdHoc::NoSuchPluginException); +	BOOST_REQUIRE_THROW(StreamFactory::get("p2pvrservicestream"), AdHoc::NoSuchPluginException);  }  BOOST_GLOBAL_FIXTURE( TestAppInstance ); diff --git a/p2pvr/daemonbase/Jamfile.jam b/p2pvr/daemonbase/Jamfile.jam index f02a172..2168986 100644 --- a/p2pvr/daemonbase/Jamfile.jam +++ b/p2pvr/daemonbase/Jamfile.jam @@ -15,6 +15,8 @@ lib p2pvrdaemonbase :  	<library>../lib//p2pvrlib  	<library>../ice//p2pvrice  	<library>..//adhocutil +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	<implicit-dependency>../ice//p2pvrice  	: :  	<implicit-dependency>../ice//p2pvrice diff --git a/p2pvr/daemonbase/daemonBase.h b/p2pvr/daemonbase/daemonBase.h index 3cf9b19..87e741b 100644 --- a/p2pvr/daemonbase/daemonBase.h +++ b/p2pvr/daemonbase/daemonBase.h @@ -5,8 +5,9 @@  #include <Ice/Initialize.h>  #include <daemon.h>  #include <options.h> +#include <visibility.h> -class DaemonBase : public Daemon { +class DLL_PUBLIC DaemonBase : public Daemon {  	public:  		DaemonBase(int argc, char ** argv);  		~DaemonBase(); diff --git a/p2pvr/daemonbase/fileSink.h b/p2pvr/daemonbase/fileSink.h index 8c7594b..fbd469c 100644 --- a/p2pvr/daemonbase/fileSink.h +++ b/p2pvr/daemonbase/fileSink.h @@ -4,8 +4,9 @@  #include <boost/filesystem/path.hpp>  #include <stdio.h>  #include <dvb.h> +#include <visibility.h> -class FileSink : public P2PVR::RawDataClient { +class DLL_PUBLIC FileSink : public P2PVR::RawDataClient {  	public:  		FileSink(const boost::filesystem::path & path);  		FileSink(int fd); diff --git a/p2pvr/daemonbase/p2LoggerWrapper.h b/p2pvr/daemonbase/p2LoggerWrapper.h index e8de1e8..0d84683 100644 --- a/p2pvr/daemonbase/p2LoggerWrapper.h +++ b/p2pvr/daemonbase/p2LoggerWrapper.h @@ -2,8 +2,9 @@  #define P2LOGGERWRAPPER  #include <Ice/Logger.h> +#include <visibility.h> -class P2LoggerWrapper : public Ice::Logger { +class DLL_PUBLIC P2LoggerWrapper : public Ice::Logger {  	public:  		P2LoggerWrapper(const std::string & prefix = std::string()); diff --git a/p2pvr/devices/Jamfile.jam b/p2pvr/devices/Jamfile.jam index f39256b..67c86fe 100644 --- a/p2pvr/devices/Jamfile.jam +++ b/p2pvr/devices/Jamfile.jam @@ -25,6 +25,8 @@ lib p2pvrdevices :  	<library>..//p2common  	<library>..//adhocutil  	<implicit-dependency>../ice//p2pvrice +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	: :  	<library>boost_filesystem  	<implicit-dependency>../ice//p2pvrice diff --git a/p2pvr/devices/localDevices.h b/p2pvr/devices/localDevices.h index 3c3d51b..1845256 100644 --- a/p2pvr/devices/localDevices.h +++ b/p2pvr/devices/localDevices.h @@ -7,8 +7,10 @@  #include <dvb.h>  #include <options.h>  #include <mutex> +#include <visibility.h> +#include <IceUtil/Timer.h> -class LocalDevices : public P2PVR::LocalDevices { +class DLL_PUBLIC LocalDevices : public P2PVR::LocalDevices {  	public:  		LocalDevices(Ice::ObjectAdapterPtr adapter, IceUtil::TimerPtr);  		~LocalDevices(); @@ -30,9 +32,9 @@ class LocalDevices : public P2PVR::LocalDevices {  		IceUtil::TimerTaskPtr clientCheck;  		// Check that registered clients haven't silently gone away -		void ClientCheck(Ice::ObjectAdapterPtr adapter); +		DLL_PRIVATE void ClientCheck(Ice::ObjectAdapterPtr adapter); -		class OpenTuner { +		class DLL_PRIVATE OpenTuner {  			public:  				OpenTuner(DVBSI::DeliveryPtr, P2PVR::PrivateTunerPrx, bool); diff --git a/p2pvr/dvb/Jamfile.jam b/p2pvr/dvb/Jamfile.jam index e71093a..1e81a73 100644 --- a/p2pvr/dvb/Jamfile.jam +++ b/p2pvr/dvb/Jamfile.jam @@ -8,6 +8,8 @@ lib p2pvrdvb :  	:  	<library>../ice//p2pvrice  	<library>..//adhocutil +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	<implicit-dependency>../ice//p2pvrice  	: :  	<implicit-dependency>../ice//p2pvrice diff --git a/p2pvr/dvb/siParsers/event.h b/p2pvr/dvb/siParsers/event.h index d437c4e..5baadd4 100644 --- a/p2pvr/dvb/siParsers/event.h +++ b/p2pvr/dvb/siParsers/event.h @@ -3,6 +3,7 @@  #include "table.h"  #include <dvbsi.h> +#include <visibility.h>  struct EventInformation {  	SiTableHeader header; @@ -13,7 +14,7 @@ struct EventInformation {  	u_char data[];  } __attribute__((packed)); -class SiEpgParser : public SiTableParser<EventInformation, DVBSI::EitInformationPtr, int> { +class DLL_PUBLIC SiEpgParser : public SiTableParser<EventInformation, DVBSI::EitInformationPtr, int> {  	protected:  		bool CheckTableId(u_char tableId) const;  		int SectionNumberShift() const { return 3; } @@ -24,11 +25,11 @@ class SiEpgParser : public SiTableParser<EventInformation, DVBSI::EitInformation  		virtual bool HandleTable(DVBSI::EventPtr) = 0;  	private: -		static void parseStartTimeAndDuration(DVBSI::EventPtr, const u_char * data); -		static void parseDescriptor_ShortEvent(DVBSI::EventPtr, const u_char * data); -		static void parseDescriptor_Component(DVBSI::EventPtr, const u_char * data); -		static void parseDescriptor_Content(DVBSI::EventPtr, const u_char * data); -		static void parseDescriptor_ParentalRating(DVBSI::EventPtr, const u_char * data); +		DLL_PRIVATE static void parseStartTimeAndDuration(DVBSI::EventPtr, const u_char * data); +		DLL_PRIVATE static void parseDescriptor_ShortEvent(DVBSI::EventPtr, const u_char * data); +		DLL_PRIVATE static void parseDescriptor_Component(DVBSI::EventPtr, const u_char * data); +		DLL_PRIVATE static void parseDescriptor_Content(DVBSI::EventPtr, const u_char * data); +		DLL_PRIVATE static void parseDescriptor_ParentalRating(DVBSI::EventPtr, const u_char * data);  };  #endif diff --git a/p2pvr/dvb/siParsers/network.h b/p2pvr/dvb/siParsers/network.h index 4f8e6e3..fef11d0 100644 --- a/p2pvr/dvb/siParsers/network.h +++ b/p2pvr/dvb/siParsers/network.h @@ -3,6 +3,7 @@  #include "table.h"  #include <dvbsi.h> +#include <visibility.h>  struct NetworkInformation {  	SiTableHeader header; @@ -17,17 +18,17 @@ struct NetworkInformation {  	u_char data[];  } __attribute__((packed)); -class SiNetworkInformationParser : public SiTableParser<NetworkInformation, DVBSI::NetworkPtr, u_char> { +class DLL_PUBLIC SiNetworkInformationParser : public SiTableParser<NetworkInformation, DVBSI::NetworkPtr, u_char> {  	protected:  		bool CheckTableId(u_char tableId) const;  		void ParseSiTable(const struct NetworkInformation * nit, DVBSI::NetworkPtr);  	private: -		static void parseDescriptor_NetworkName(DVBSI::NetworkPtr, const u_char *data, size_t len); -		static void parseDescriptor_ServiceList(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); -		static void parseDescriptor_TerrestrialDelivery(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); -		static void parseDescriptor_SatelliteDelivery(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); -		static void parseDescriptor_CableDelivery(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_NetworkName(DVBSI::NetworkPtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_ServiceList(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_TerrestrialDelivery(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_SatelliteDelivery(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_CableDelivery(DVBSI::NetworkTransportStreamPtr, const u_char *data, size_t len);  };  #endif diff --git a/p2pvr/dvb/siParsers/programAssociation.h b/p2pvr/dvb/siParsers/programAssociation.h index 653be0c..3ef44f0 100644 --- a/p2pvr/dvb/siParsers/programAssociation.h +++ b/p2pvr/dvb/siParsers/programAssociation.h @@ -3,6 +3,7 @@  #include "table.h"  #include <dvbsi.h> +#include <visibility.h>  struct ProgramAssociationSection {  	SiTableHeader header; @@ -12,7 +13,7 @@ struct ProgramAssociationSection {  typedef std::map<uint16_t, uint16_t> ProgramAssociationMap;  typedef boost::shared_ptr<ProgramAssociationMap> ProgramAssociationMapPtr; -class SiProgramAssociationParser : public SiTableParser<ProgramAssociationSection, ProgramAssociationMapPtr, int> { +class DLL_PUBLIC SiProgramAssociationParser : public SiTableParser<ProgramAssociationSection, ProgramAssociationMapPtr, int> {  	protected:  		bool CheckTableId(u_char tableId) const;  		void ParseSiTable(const struct ProgramAssociationSection * pas, ProgramAssociationMapPtr); diff --git a/p2pvr/dvb/siParsers/programMap.h b/p2pvr/dvb/siParsers/programMap.h index 07821b5..14f0c8d 100644 --- a/p2pvr/dvb/siParsers/programMap.h +++ b/p2pvr/dvb/siParsers/programMap.h @@ -3,6 +3,7 @@  #include "table.h"  #include <dvbsi.h> +#include <visibility.h>  struct ProgramMap {  	SiTableHeader header; @@ -25,7 +26,7 @@ struct ProgramMap {  	u_char data[];  } __attribute__((packed)); -class SiProgramMapParser : public SiTableParser<ProgramMap, DVBSI::ProgramMapPtr, u_char> { +class DLL_PUBLIC SiProgramMapParser : public SiTableParser<ProgramMap, DVBSI::ProgramMapPtr, u_char> {  	protected:  		bool CheckTableId(u_char tableId) const;  		void ParseSiTable(const struct ProgramMap * nit, DVBSI::ProgramMapPtr); diff --git a/p2pvr/dvb/siParsers/service.h b/p2pvr/dvb/siParsers/service.h index 611eb90..64ec351 100644 --- a/p2pvr/dvb/siParsers/service.h +++ b/p2pvr/dvb/siParsers/service.h @@ -3,6 +3,7 @@  #include "table.h"  #include <dvbsi.h> +#include <visibility.h>  struct TransportStreamDescriptor {  	SiTableHeader header; @@ -11,14 +12,14 @@ struct TransportStreamDescriptor {  	u_char data[];  } __attribute__((packed)); -class SiServicesParser : public SiTableParser<TransportStreamDescriptor, DVBSI::TransportStreamPtr, int> { +class DLL_PUBLIC SiServicesParser : public SiTableParser<TransportStreamDescriptor, DVBSI::TransportStreamPtr, int> {  	protected:  		bool CheckTableId(u_char tableId) const;  		void ParseSiTable(const struct TransportStreamDescriptor * nit, DVBSI::TransportStreamPtr);  	private: -		static void parseDescriptor_Service(DVBSI::ServicePtr, const u_char *data, size_t len); -		static void parseDescriptor_DefaultAuthority(DVBSI::ServicePtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_Service(DVBSI::ServicePtr, const u_char *data, size_t len); +		DLL_PRIVATE static void parseDescriptor_DefaultAuthority(DVBSI::ServicePtr, const u_char *data, size_t len);  };  #endif diff --git a/p2pvr/dvb/siParsers/table.h b/p2pvr/dvb/siParsers/table.h index c470159..6333a2a 100644 --- a/p2pvr/dvb/siParsers/table.h +++ b/p2pvr/dvb/siParsers/table.h @@ -10,6 +10,7 @@  #include <dvb.h>  #include <logger.h>  #include <mutex> +#include <visibility.h>  typedef unsigned char u_char; @@ -19,9 +20,10 @@ typedef unsigned char u_char;  #define HILO4(x) (x##4 << 24 | x##2 << 16 | x##3 << 8 | x##4)  #define BcdCharToInt(x) (10*((x & 0xF0)>>4) + (x & 0xF)) -class SiTableParserBase : public P2PVR::RawDataClient { +class DLL_PUBLIC SiTableParserBase : public P2PVR::RawDataClient {  	public:  		const P2PVR::Data & CurrentRawData() const; +  	protected:  		SiTableParserBase();  		virtual ~SiTableParserBase() = 0; @@ -35,11 +37,12 @@ class SiTableParserBase : public P2PVR::RawDataClient {  		static const std::string ISO10646;  		static const std::string EitEncoding;  		static const std::string UTF8; -	protected: +  		virtual bool ParseInfoTable(const u_char * data, size_t len) = 0;  		time_t startTime;  		unsigned int incomplete;  		std::mutex lock; +  	private:  		const P2PVR::Data * currentRawData;  }; diff --git a/p2pvr/ice/Jamfile.jam b/p2pvr/ice/Jamfile.jam index ca27324..98d6018 100644 --- a/p2pvr/ice/Jamfile.jam +++ b/p2pvr/ice/Jamfile.jam @@ -12,6 +12,7 @@ lib p2pvrice :  	<library>..//adhocutil  	<library>..//p2ice  	<library>slicer +	<cflags>-fvisibility=hidden  	<slicer>yes  	: :  	<include>. diff --git a/p2pvr/ice/commonHelpers.h b/p2pvr/ice/commonHelpers.h index 3f7e57d..67e861c 100644 --- a/p2pvr/ice/commonHelpers.h +++ b/p2pvr/ice/commonHelpers.h @@ -5,6 +5,7 @@  #include <ostream>  #include <iomanip>  #include <boost/date_time/posix_time/posix_time_types.hpp> +#include <visibility.h>  namespace Common {  	template<typename C, typename T> @@ -30,13 +31,13 @@ namespace Common {  		return o;  	} -	boost::posix_time::ptime operator*(const Common::DateTime &); -	boost::posix_time::time_duration operator*(const Common::Duration &); +	DLL_PUBLIC boost::posix_time::ptime operator*(const Common::DateTime &); +	DLL_PUBLIC boost::posix_time::time_duration operator*(const Common::Duration &);  }  namespace boost {  	namespace posix_time { -		Common::DateTime operator*(const boost::posix_time::ptime &); -		Common::Duration operator*(const boost::posix_time::time_duration &); +		DLL_PUBLIC Common::DateTime operator*(const boost::posix_time::ptime &); +		DLL_PUBLIC Common::Duration operator*(const boost::posix_time::time_duration &);  	}  } diff --git a/p2pvr/ice/converters.cpp b/p2pvr/ice/converters.cpp index 2a6b3c2..2b5f653 100644 --- a/p2pvr/ice/converters.cpp +++ b/p2pvr/ice/converters.cpp @@ -5,53 +5,53 @@  template<>  VariableType -IceConvert<Common::DateTime>::ToVariable(const Common::DateTime & dt) +DLL_PUBLIC IceConvert<Common::DateTime>::ToVariable(const Common::DateTime & dt)  {  	return *dt;  }  template<>  VariableType -IceConvert<Common::Duration>::ToVariable(const Common::Duration & d) +DLL_PUBLIC IceConvert<Common::Duration>::ToVariable(const Common::Duration & d)  {  	return *d;  }  template<>  Common::DateTime -IceConvert<Common::DateTime>::FromVariable(const VariableType & dt) +DLL_PUBLIC IceConvert<Common::DateTime>::FromVariable(const VariableType & dt)  {  	return *dt.as<boost::posix_time::ptime>();  }  template<>  Common::Duration -IceConvert<Common::Duration>::FromVariable(const VariableType & d) +DLL_PUBLIC IceConvert<Common::Duration>::FromVariable(const VariableType & d)  {  	return *d.as<boost::posix_time::time_duration>();  } -	 +  namespace Slicer {  	Common::DateTime -	ptimeToDateTime(boost::posix_time::ptime const & p) +	DLL_PUBLIC ptimeToDateTime(boost::posix_time::ptime const & p)  	{  		return *p;  	}  	boost::posix_time::ptime -	dateTimeToPTime(Common::DateTime const & c) +	DLL_PUBLIC dateTimeToPTime(Common::DateTime const & c)  	{  		return *c;  	}  	Common::Duration -	timedurationToDuration(const boost::posix_time::time_duration & td) +	DLL_PUBLIC timedurationToDuration(const boost::posix_time::time_duration & td)  	{  		return *td;  	}  	boost::posix_time::time_duration -	durationToTimeDuration(const Common::Duration & td) +	DLL_PUBLIC durationToTimeDuration(const Common::Duration & td)  	{  		return *td;  	} diff --git a/p2pvr/lib/Jamfile.jam b/p2pvr/lib/Jamfile.jam index 31974b7..1cb0033 100644 --- a/p2pvr/lib/Jamfile.jam +++ b/p2pvr/lib/Jamfile.jam @@ -22,6 +22,8 @@ lib p2pvrlib :  	<library>..//adhocutil  	<implicit-dependency>../ice//p2pvrice  	<library>slicer +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	: :  	<library>boost_filesystem  	<implicit-dependency>../ice//p2pvrice diff --git a/p2pvr/lib/bindTimerTask.h b/p2pvr/lib/bindTimerTask.h index 8c82680..f420ee0 100644 --- a/p2pvr/lib/bindTimerTask.h +++ b/p2pvr/lib/bindTimerTask.h @@ -3,8 +3,9 @@  #include <boost/function.hpp>  #include <IceUtil/Timer.h> +#include <visibility.h> -class BindTimerTask : public IceUtil::TimerTask { +class DLL_PUBLIC BindTimerTask : public IceUtil::TimerTask {  	public:  		typedef boost::function<void()> Event;  		BindTimerTask(const Event & event); diff --git a/p2pvr/lib/fileHandle.h b/p2pvr/lib/fileHandle.h index 3c8d45e..0a3b7fc 100644 --- a/p2pvr/lib/fileHandle.h +++ b/p2pvr/lib/fileHandle.h @@ -1,7 +1,9 @@  #ifndef FILEHANDLE_H  #define FILEHANDLE_H -class FileHandle { +#include <visibility.h> + +class DLL_PUBLIC FileHandle {  	public:  		FileHandle(int fd);  		~FileHandle(); diff --git a/p2pvr/lib/muxer.h b/p2pvr/lib/muxer.h index cf0db1c..f0563a4 100644 --- a/p2pvr/lib/muxer.h +++ b/p2pvr/lib/muxer.h @@ -5,8 +5,9 @@  #include <mutex>  #include <boost/shared_ptr.hpp>  #include <processPipes.h> +#include <visibility.h> -class Muxer : public P2PVR::RawDataClient { +class DLL_PUBLIC Muxer : public P2PVR::RawDataClient {  	public:  		Muxer(const P2PVR::RawDataClientPrx & target, const std::string & cmd);  		~Muxer(); @@ -14,9 +15,9 @@ class Muxer : public P2PVR::RawDataClient {  		bool NewData(const P2PVR::Data &, const Ice::Current &);  	private: -		bool ReadWaiting() const; -		bool ReadAvailable() const; -		bool ReadMuxerAndSend(int wait) const; +		DLL_PRIVATE bool ReadWaiting() const; +		DLL_PRIVATE bool ReadAvailable() const; +		DLL_PRIVATE bool ReadMuxerAndSend(int wait) const;  		const P2PVR::RawDataClientPrx target;  		typedef boost::shared_ptr<AdHoc::System::ProcessPipes> ProcessPipesPtr;  		ProcessPipesPtr fds; diff --git a/p2pvr/lib/p2Helpers.h b/p2pvr/lib/p2Helpers.h index 3b73f1b..d94d161 100644 --- a/p2pvr/lib/p2Helpers.h +++ b/p2pvr/lib/p2Helpers.h @@ -3,8 +3,10 @@  #include <variableType.h>  #include <common.h> +#include <visibility.h>  template <typename T> +DLL_PUBLIC  const VariableType &  operator>>(const VariableType & vt, T & v)  { @@ -13,14 +15,17 @@ operator>>(const VariableType & vt, T & v)  }  template <> +DLL_PUBLIC  const VariableType &  operator>><Common::Duration>(const VariableType & vt, Common::Duration & d);  template <> +DLL_PUBLIC  const VariableType &  operator>><Common::DateTime>(const VariableType & vt, Common::DateTime & dt);  template <typename T> +DLL_PUBLIC  const VariableType &  operator>>(const VariableType & vt, IceUtil::Optional<T> & v)  { @@ -35,10 +40,12 @@ operator>>(const VariableType & vt, IceUtil::Optional<T> & v)  }  template <> +DLL_PUBLIC  const VariableType &  operator>>(const VariableType & vt, short int & v);  template <typename T> +DLL_PUBLIC  VariableType &  operator<<(VariableType & vt, const T & v)  { @@ -47,14 +54,17 @@ operator<<(VariableType & vt, const T & v)  }  template <> +DLL_PUBLIC  VariableType &  operator<<<Common::Duration>(VariableType & vt, const Common::Duration & d);  template <> +DLL_PUBLIC  VariableType &  operator<<<Common::DateTime>(VariableType & vt, const Common::DateTime & dt);  template <typename T> +DLL_PUBLIC  VariableType &  operator<<(VariableType & vt, const IceUtil::Optional<T> & v)  { diff --git a/p2pvr/lib/serviceStreamer.h b/p2pvr/lib/serviceStreamer.h index bff14ec..c4aa93e 100644 --- a/p2pvr/lib/serviceStreamer.h +++ b/p2pvr/lib/serviceStreamer.h @@ -2,8 +2,9 @@  #define SERVICESTREAMER_H  #include "serviceStreamerCore.h" +#include <visibility.h> -class ServiceStreamer : public ServiceStreamerCore { +class DLL_PUBLIC ServiceStreamer : public ServiceStreamerCore {  	public:  		ServiceStreamer(int sid, P2PVR::RawDataClientPrx, const Ice::CommunicatorPtr & ic, const Ice::ObjectAdapterPtr & a);  		ServiceStreamer(int sid, P2PVR::RawDataClientPrx, const P2PVR::DevicesPrx & d, const P2PVR::SIPrx & s, const Ice::ObjectAdapterPtr & a); diff --git a/p2pvr/lib/serviceStreamerCore.h b/p2pvr/lib/serviceStreamerCore.h index 4af422a..1db80f8 100644 --- a/p2pvr/lib/serviceStreamerCore.h +++ b/p2pvr/lib/serviceStreamerCore.h @@ -8,8 +8,9 @@  #include "temporaryIceAdapterObject.h"  #include <p2pvr.h>  #include <set> +#include <visibility.h> -class ServiceStreamerCore { +class DLL_PUBLIC ServiceStreamerCore {  	public:  		ServiceStreamerCore(int sid, P2PVR::RawDataClientPrx, P2PVR::RawDataClientPrx, P2PVR::RawDataClientPrx,  				P2PVR::DevicesPrx, Ice::ObjectAdapterPtr); diff --git a/p2pvr/lib/temporaryIceAdapterObject.h b/p2pvr/lib/temporaryIceAdapterObject.h index d7fc77d..0614066 100644 --- a/p2pvr/lib/temporaryIceAdapterObject.h +++ b/p2pvr/lib/temporaryIceAdapterObject.h @@ -2,9 +2,10 @@  #define TEMPORARYICEADAPTER_H  #include <Ice/ObjectAdapter.h> +#include <visibility.h>  template <typename Object> -class TemporaryIceAdapterObject { +class DLL_PUBLIC TemporaryIceAdapterObject {  	public:  		TemporaryIceAdapterObject(Ice::ObjectAdapterPtr a, IceUtil::Handle<Object> o) :  			adapter(a), diff --git a/p2pvr/p2comp/Jamfile.jam b/p2pvr/p2comp/Jamfile.jam index 10b7fea..6540d77 100644 --- a/p2pvr/p2comp/Jamfile.jam +++ b/p2pvr/p2comp/Jamfile.jam @@ -1,11 +1,13 @@  lib p2pvrp2comp :  	[ glob-tree *.cpp  ] -	: : +	:  	<library>../ice//p2pvrice  	<library>../lib//p2pvrlib  	<library>..//p2streams  	<library>..//p2ice  	<library>..//p2cgi  	<library>..//adhocutil +	<cflags>-fvisibility=hidden +	<variant>release:<cflags>-flto  	<implicit-dependency>../ice//p2pvrice  	;  | 
