allow building with c++17

This commit is contained in:
Caolán McNamara 2018-12-10 09:32:45 +00:00
parent 34a63b50e2
commit 0b73c82fc1
2 changed files with 417 additions and 1 deletions

412
c++17.patch.0 Normal file
View File

@ -0,0 +1,412 @@
--- a/src/libcmis/allowable-actions.cxx
+++ b/src/libcmis/allowable-actions.cxx
@@ -62,7 +62,7 @@
}
}
- ObjectAction::Type ObjectAction::parseType( string type ) throw ( Exception )
+ ObjectAction::Type ObjectAction::parseType( string type )
{
Type value = DeleteObject;
if ( type == "canDeleteObject" )
--- a/src/libcmis/allowable-actions.hxx
+++ b/src/libcmis/allowable-actions.hxx
@@ -92,7 +92,7 @@
/** Parses the permission name into one of the enum values or throws
an exception for invalid input strings.
*/
- static Type parseType( std::string type ) throw ( Exception );
+ static Type parseType( std::string type );
};
--- a/src/libcmis/document.hxx
+++ b/src/libcmis/document.hxx
@@ -56,7 +56,7 @@
@return the parents folder if any.
*/
- virtual std::vector< boost::shared_ptr< Folder > > getParents( ) throw ( Exception ) = 0;
+ virtual std::vector< boost::shared_ptr< Folder > > getParents( ) = 0;
/** Get the content stream without using a temporary file.
@@ -74,7 +74,7 @@
guaranteed.
*/
virtual boost::shared_ptr< std::istream > getContentStream( std::string streamId = std::string( ) )
- throw ( Exception ) = 0;
+ = 0;
/** Set or replace the content stream of the document.
@@ -88,7 +88,7 @@
capability.
*/
virtual void setContentStream( boost::shared_ptr< std::ostream > os, std::string contentType,
- std::string filename, bool overwrite = true ) throw ( Exception ) = 0;
+ std::string filename, bool overwrite = true ) = 0;
/** Get the content mime type.
*/
@@ -107,12 +107,12 @@
\return the Private Working Copy document
*/
- virtual boost::shared_ptr< Document > checkOut( ) throw ( Exception ) = 0;
+ virtual boost::shared_ptr< Document > checkOut( ) = 0;
/** Cancels the checkout if the document is a private working copy, or
throws an exception.
*/
- virtual void cancelCheckout( ) throw ( Exception ) = 0;
+ virtual void cancelCheckout( ) = 0;
/** Check in the private working copy and create a new version or throw
an exception.
@@ -131,9 +131,9 @@
virtual boost::shared_ptr< Document > checkIn( bool isMajor, std::string comment,
const std::map< std::string, PropertyPtr >& properties,
boost::shared_ptr< std::ostream > stream,
- std::string contentType, std::string fileName ) throw ( Exception ) = 0;
+ std::string contentType, std::string fileName ) = 0;
- virtual std::vector< boost::shared_ptr< Document > > getAllVersions( ) throw ( Exception ) = 0;
+ virtual std::vector< boost::shared_ptr< Document > > getAllVersions( ) = 0;
// virtual methods form Object
virtual std::vector< std::string > getPaths( );
--- a/src/libcmis/folder.cxx
+++ b/src/libcmis/folder.cxx
@@ -40,7 +40,7 @@
return paths;
}
- libcmis::FolderPtr Folder::getFolderParent( ) throw ( libcmis::Exception )
+ libcmis::FolderPtr Folder::getFolderParent( )
{
if ( getAllowableActions( ).get() && !getAllowableActions()->isAllowed( libcmis::ObjectAction::GetFolderParent ) )
throw libcmis::Exception( string( "GetFolderParent not allowed on node " ) + getId() );
--- a/src/libcmis/folder.hxx
+++ b/src/libcmis/folder.hxx
@@ -59,20 +59,20 @@
virtual std::vector< std::string > getPaths( );
- virtual ::boost::shared_ptr< Folder > getFolderParent( ) throw ( Exception );
- virtual std::vector< ObjectPtr > getChildren( ) throw ( Exception ) = 0;
+ virtual ::boost::shared_ptr< Folder > getFolderParent( );
+ virtual std::vector< ObjectPtr > getChildren( ) = 0;
virtual std::string getParentId( );
virtual std::string getPath( );
virtual bool isRootFolder( );
virtual ::boost::shared_ptr< Folder > createFolder( const std::map< std::string, PropertyPtr >& properties )
- throw ( libcmis::Exception ) = 0;
+ = 0;
virtual ::boost::shared_ptr< Document > createDocument( const std::map< std::string, PropertyPtr >& properties,
- boost::shared_ptr< std::ostream > os, std::string contentType, std::string fileName ) throw ( Exception ) = 0;
+ boost::shared_ptr< std::ostream > os, std::string contentType, std::string fileName ) = 0;
virtual std::vector< std::string > removeTree( bool allVersion = true, UnfileObjects::Type unfile = UnfileObjects::Delete,
- bool continueOnError = false ) throw ( Exception ) = 0;
+ bool continueOnError = false ) = 0;
virtual std::string toString( );
};
--- a/src/libcmis/object.cxx
+++ b/src/libcmis/object.cxx
@@ -226,7 +226,6 @@
}
ObjectPtr Object::addSecondaryType( string id, PropertyPtrMap properties )
- throw ( Exception )
{
// First make sure the cmis:secondaryObjectTypeIds property can be defined
map< string, PropertyTypePtr >& propertyTypes = getTypeDescription( )->
@@ -253,7 +252,7 @@
return updateProperties( newProperties );
}
- ObjectPtr Object::removeSecondaryType( string id ) throw ( Exception )
+ ObjectPtr Object::removeSecondaryType( string id )
{
// First make sure the cmis:secondaryObjectTypeIds property can be defined
map< string, PropertyTypePtr >& propertyTypes = getTypeDescription( )->
@@ -297,12 +296,12 @@
return m_typeDescription;
}
- vector< RenditionPtr> Object::getRenditions( string /*filter*/ ) throw ( Exception )
+ vector< RenditionPtr> Object::getRenditions( string /*filter*/ )
{
return m_renditions;
}
- string Object::getThumbnailUrl( ) throw ( Exception )
+ string Object::getThumbnailUrl( )
{
string url;
vector< RenditionPtr > renditions = getRenditions( );
--- a/src/libcmis/object.hxx
+++ b/src/libcmis/object.hxx
@@ -129,8 +129,7 @@
*/
virtual boost::shared_ptr< Object > addSecondaryType(
std::string id,
- PropertyPtrMap properties )
- throw ( Exception );
+ PropertyPtrMap properties );
/** Convenience function removing a secondary type from the object.
@@ -154,8 +153,7 @@
to throw a constraint exception if it doesn't allow the
operation.
*/
- virtual boost::shared_ptr< Object > removeSecondaryType( std::string id )
- throw ( Exception );
+ virtual boost::shared_ptr< Object > removeSecondaryType( std::string id );
/** Gives access to the properties of the object.
@@ -179,8 +177,7 @@
\attention
The streamId of the rendition is used in getContentStream( )
*/
- virtual std::vector< RenditionPtr> getRenditions( std::string filter = std::string( ) )
- throw ( Exception );
+ virtual std::vector< RenditionPtr> getRenditions( std::string filter = std::string( ) );
virtual AllowableActionsPtr getAllowableActions( ) { return m_allowableActions; }
/** Update the object properties and return the updated object.
@@ -191,21 +188,21 @@
are still two different instances to ease memory handling.
*/
virtual boost::shared_ptr< Object > updateProperties(
- const PropertyPtrMap& properties ) throw ( Exception ) = 0;
+ const PropertyPtrMap& properties ) = 0;
virtual ObjectTypePtr getTypeDescription( );
/** Reload the data from the server.
*/
- virtual void refresh( ) throw ( Exception ) = 0;
+ virtual void refresh( ) = 0;
virtual time_t getRefreshTimestamp( ) { return m_refreshTimestamp; }
- virtual void remove( bool allVersions = true ) throw ( Exception ) = 0;
+ virtual void remove( bool allVersions = true ) = 0;
- virtual void move( boost::shared_ptr< Folder > source, boost::shared_ptr< Folder > destination ) throw ( Exception ) = 0;
+ virtual void move( boost::shared_ptr< Folder > source, boost::shared_ptr< Folder > destination ) = 0;
- virtual std::string getThumbnailUrl( ) throw ( Exception );
+ virtual std::string getThumbnailUrl( );
/** Dump the object as a string for debugging or display purpose.
*/
--- a/src/libcmis/object-type.cxx
+++ b/src/libcmis/object-type.cxx
@@ -293,22 +293,22 @@
}
}
- void ObjectType::refresh( ) throw ( Exception )
+ void ObjectType::refresh( )
{
throw Exception( "ObjectType::refresh() shouldn't be called" );
}
- ObjectTypePtr ObjectType::getParentType( ) throw ( Exception )
+ ObjectTypePtr ObjectType::getParentType( )
{
throw Exception( "ObjectType::getParentType() shouldn't be called" );
}
- ObjectTypePtr ObjectType::getBaseType( ) throw ( Exception )
+ ObjectTypePtr ObjectType::getBaseType( )
{
throw Exception( "ObjectType::getBaseType() shouldn't be called" );
}
- vector< ObjectTypePtr > ObjectType::getChildren( ) throw ( Exception )
+ vector< ObjectTypePtr > ObjectType::getChildren( )
{
throw Exception( "ObjectType::getChildren() shouldn't be called" );
}
--- a/src/libcmis/object-type.hxx
+++ b/src/libcmis/object-type.hxx
@@ -94,7 +94,7 @@
This method needs to be implemented in subclasses or it will
do nothing
*/
- virtual void refresh( ) throw ( Exception );
+ virtual void refresh( );
virtual time_t getRefreshTimestamp( ) const;
std::string getId( ) const;
@@ -104,9 +104,9 @@
std::string getQueryName( ) const;
std::string getDescription( ) const;
- virtual boost::shared_ptr< ObjectType > getParentType( ) throw ( Exception );
- virtual boost::shared_ptr< ObjectType > getBaseType( ) throw ( Exception );
- virtual std::vector< boost::shared_ptr< ObjectType > > getChildren( ) throw ( Exception );
+ virtual boost::shared_ptr< ObjectType > getParentType( );
+ virtual boost::shared_ptr< ObjectType > getBaseType( );
+ virtual std::vector< boost::shared_ptr< ObjectType > > getChildren( );
/** Get the parent type id without extracting the complete parent type from
the repository. This is mainly provided for performance reasons.
--- a/src/libcmis/session-factory.cxx
+++ b/src/libcmis/session-factory.cxx
@@ -57,7 +57,7 @@
Session* SessionFactory::createSession( string bindingUrl, string username,
string password, string repository, bool noSslCheck,
- libcmis::OAuth2DataPtr oauth2, bool verbose ) throw ( Exception )
+ libcmis::OAuth2DataPtr oauth2, bool verbose )
{
Session* session = NULL;
@@ -138,7 +138,7 @@
}
vector< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl,
- string username, string password, bool verbose ) throw ( Exception )
+ string username, string password, bool verbose )
{
vector< RepositoryPtr > repos;
--- a/src/libcmis/session-factory.hxx
+++ b/src/libcmis/session-factory.hxx
@@ -128,7 +128,7 @@
std::string password = std::string( ),
std::string repositoryId = std::string( ),
bool noSslCheck = false,
- OAuth2DataPtr oauth2 = OAuth2DataPtr(), bool verbose = false ) throw ( Exception );
+ OAuth2DataPtr oauth2 = OAuth2DataPtr(), bool verbose = false );
/**
Gets the informations of the repositories on the server.
@@ -142,7 +142,7 @@
static std::vector< RepositoryPtr > getRepositories( std::string bindingUrl,
std::string username = std::string( ),
std::string password = std::string( ),
- bool verbose = false ) throw ( Exception );
+ bool verbose = false );
};
}
--- a/src/libcmis/session.hxx
+++ b/src/libcmis/session.hxx
@@ -47,7 +47,7 @@
/** Get the current repository.
*/
- virtual RepositoryPtr getRepository( ) throw ( Exception ) = 0;
+ virtual RepositoryPtr getRepository( ) = 0;
virtual std::vector< RepositoryPtr > getRepositories( ) = 0;
@@ -61,27 +61,27 @@
/** Get the Root folder of the repository
*/
- virtual FolderPtr getRootFolder() throw ( Exception )= 0;
+ virtual FolderPtr getRootFolder() = 0;
/** Get a CMIS object from its ID.
*/
- virtual ObjectPtr getObject( std::string id ) throw ( Exception ) = 0;
+ virtual ObjectPtr getObject( std::string id ) = 0;
/** Get a CMIS object from one of its path.
*/
- virtual ObjectPtr getObjectByPath( std::string path ) throw ( Exception ) = 0;
+ virtual ObjectPtr getObjectByPath( std::string path ) = 0;
/** Get a CMIS folder from its ID.
*/
- virtual libcmis::FolderPtr getFolder( std::string id ) throw ( Exception ) = 0;
+ virtual libcmis::FolderPtr getFolder( std::string id ) = 0;
/** Get a CMIS object type from its ID.
*/
- virtual ObjectTypePtr getType( std::string id ) throw ( Exception ) = 0;
+ virtual ObjectTypePtr getType( std::string id ) = 0;
/** Get all the CMIS base object types known by the server.
*/
- virtual std::vector< ObjectTypePtr > getBaseTypes( ) throw ( Exception ) = 0;
+ virtual std::vector< ObjectTypePtr > getBaseTypes( ) = 0;
/** Enable or disable the SSL certificate verification.
--- a/src/libcmis/xml-utils.cxx
+++ b/src/libcmis/xml-utils.cxx
@@ -361,7 +361,6 @@
string getXmlNodeAttributeValue( xmlNodePtr node,
const char* attributeName,
const char* defaultValue )
- throw ( Exception )
{
xmlChar* xmlStr = xmlGetProp( node, BAD_CAST( attributeName ) );
if ( xmlStr == NULL )
@@ -450,7 +449,7 @@
return str;
}
- bool parseBool( string boolStr ) throw ( Exception )
+ bool parseBool( string boolStr )
{
bool value = false;
if ( boolStr == "true" || boolStr == "1" )
@@ -462,7 +461,7 @@
return value;
}
- long parseInteger( string intStr ) throw ( Exception )
+ long parseInteger( string intStr )
{
char* end;
errno = 0;
@@ -481,7 +480,7 @@
return value;
}
- double parseDouble( string doubleStr ) throw ( Exception )
+ double parseDouble( string doubleStr )
{
char* end;
errno = 0;
--- a/src/libcmis/xml-utils.hxx
+++ b/src/libcmis/xml-utils.hxx
@@ -132,8 +132,7 @@
*/
std::string getXmlNodeAttributeValue( xmlNodePtr node,
const char* attributeName,
- const char* defaultValue = NULL )
- throw ( Exception );
+ const char* defaultValue = NULL );
/** Parse a xsd:dateTime string and return the corresponding UTC posix time.
*/
@@ -142,11 +141,11 @@
/// Write a UTC time object to an xsd:dateTime string
std::string writeDateTime( boost::posix_time::ptime time );
- bool parseBool( std::string str ) throw ( Exception );
+ bool parseBool( std::string str );
- long parseInteger( std::string str ) throw ( Exception );
+ long parseInteger( std::string str );
- double parseDouble( std::string str ) throw ( Exception );
+ double parseDouble( std::string str );
/** Trim spaces on the left and right of a string.
*/

View File

@ -2,7 +2,7 @@
Name: libcmis
Version: 0.5.1
Release: 13%{?dist}
Release: 14%{?dist}
Summary: A C/C++ client library for CM interfaces
License: GPLv2+ or LGPLv2+ or MPLv1.1
@ -28,6 +28,7 @@ Patch6: 0001-rhbz-1410197-limit-the-number-of-redirections.patch
Patch7: 0001-do-not-try-to-use-on-an-empty-string.patch
Patch8: 0002-return-early-if-the-time-part-is-empty.patch
Patch9: 0001-Properly-encode-OAuth2-credentials.patch
Patch10: c++17.patch.0
%description
LibCMIS is a C/C++ client library for working with CM (content management)
@ -97,6 +98,9 @@ make %{?_smp_mflags} check
%{_mandir}/man1/cmis-client.1*
%changelog
* Mon Dec 10 2018 Caolán McNamara <caolanm@redhat.com> - 0.5.1-14
- allow building with c++17
* Wed Sep 12 2018 Stephan Bergmann <sbergman@redhat.com> - 0.5.1-13
- fix Google Drive login