diff options
Diffstat (limited to '')
-rw-r--r-- | inc/libcmis-c/Makefile.am | 20 | ||||
-rw-r--r-- | inc/libcmis-c/allowable-actions.h | 50 | ||||
-rw-r--r-- | inc/libcmis-c/document.h | 96 | ||||
-rw-r--r-- | inc/libcmis-c/error.h | 48 | ||||
-rw-r--r-- | inc/libcmis-c/folder.h | 81 | ||||
-rw-r--r-- | inc/libcmis-c/libcmis-c-api.h | 45 | ||||
-rw-r--r-- | inc/libcmis-c/libcmis-c.h | 50 | ||||
-rw-r--r-- | inc/libcmis-c/oauth2-data.h | 58 | ||||
-rw-r--r-- | inc/libcmis-c/object-type.h | 114 | ||||
-rw-r--r-- | inc/libcmis-c/object.h | 134 | ||||
-rw-r--r-- | inc/libcmis-c/property-type.h | 86 | ||||
-rw-r--r-- | inc/libcmis-c/property.h | 66 | ||||
-rw-r--r-- | inc/libcmis-c/rendition.h | 59 | ||||
-rw-r--r-- | inc/libcmis-c/repository.h | 107 | ||||
-rw-r--r-- | inc/libcmis-c/session-factory.h | 79 | ||||
-rw-r--r-- | inc/libcmis-c/session.h | 83 | ||||
-rw-r--r-- | inc/libcmis-c/types.h | 228 | ||||
-rw-r--r-- | inc/libcmis-c/vectors.h | 68 |
18 files changed, 1472 insertions, 0 deletions
diff --git a/inc/libcmis-c/Makefile.am b/inc/libcmis-c/Makefile.am new file mode 100644 index 0000000..eefbde2 --- /dev/null +++ b/inc/libcmis-c/Makefile.am @@ -0,0 +1,20 @@ +libcmis_cdir = $(includedir)/libcmis-c-@LIBCMIS_API_VERSION@/libcmis-c + +dist_libcmis_c_HEADERS = \ + allowable-actions.h \ + document.h \ + error.h \ + folder.h \ + libcmis-c-api.h \ + libcmis-c.h \ + oauth2-data.h \ + object-type.h \ + object.h \ + property-type.h \ + property.h \ + rendition.h \ + repository.h \ + session-factory.h \ + session.h \ + types.h \ + vectors.h diff --git a/inc/libcmis-c/allowable-actions.h b/inc/libcmis-c/allowable-actions.h new file mode 100644 index 0000000..c2764d3 --- /dev/null +++ b/inc/libcmis-c/allowable-actions.h @@ -0,0 +1,50 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_ALLOWABLE_ACTIONS_H_ +#define _LIBCMIS_ALLOWABLE_ACTIONS_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_allowable_actions_free( libcmis_AllowableActionsPtr allowable ); + +LIBCMIS_C_API bool libcmis_allowable_actions_isAllowed( libcmis_AllowableActionsPtr allowable, + libcmis_allowable_actions_Type action ); + +LIBCMIS_C_API bool libcmis_allowable_actions_isDefined( libcmis_AllowableActionsPtr allowable, + libcmis_allowable_actions_Type action ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/document.h b/inc/libcmis-c/document.h new file mode 100644 index 0000000..5436956 --- /dev/null +++ b/inc/libcmis-c/document.h @@ -0,0 +1,96 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_DOCUMENT_H_ +#define _LIBCMIS_DOCUMENT_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_vector_document_free( libcmis_vector_document_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_document_size( libcmis_vector_document_Ptr vector ); +LIBCMIS_C_API libcmis_DocumentPtr libcmis_vector_document_get( libcmis_vector_document_Ptr vector, size_t i ); + +LIBCMIS_C_API bool libcmis_is_document( libcmis_ObjectPtr object ); +LIBCMIS_C_API libcmis_DocumentPtr libcmis_document_cast( libcmis_ObjectPtr object ); + +LIBCMIS_C_API void libcmis_document_free( libcmis_DocumentPtr document ); + +LIBCMIS_C_API libcmis_vector_folder_Ptr libcmis_document_getParents( libcmis_DocumentPtr document, libcmis_ErrorPtr error ); + +LIBCMIS_C_API void libcmis_document_getContentStream( + libcmis_DocumentPtr document, + libcmis_writeFn writeFn, + void* userData, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API void libcmis_document_setContentStream( + libcmis_DocumentPtr document, + libcmis_readFn readFn, + void* userData, + const char* contentType, + const char* filename, + bool overwrite, + libcmis_ErrorPtr ); + +/** The resulting value needs to be free'd + */ +LIBCMIS_C_API char* libcmis_document_getContentType( libcmis_DocumentPtr document ); + +/** The resulting value needs to be free'd + */ +LIBCMIS_C_API char* libcmis_document_getContentFilename( libcmis_DocumentPtr document ); + +LIBCMIS_C_API long libcmis_document_getContentLength( libcmis_DocumentPtr document ); + +LIBCMIS_C_API libcmis_DocumentPtr libcmis_document_checkOut( libcmis_DocumentPtr document, libcmis_ErrorPtr error ); +LIBCMIS_C_API void libcmis_document_cancelCheckout( libcmis_DocumentPtr document, libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_DocumentPtr libcmis_document_checkIn( + libcmis_DocumentPtr document, + bool isMajor, + const char* comment, + libcmis_vector_property_Ptr properties, + libcmis_readFn readFn, + void* userData, + const char* contentType, + const char* filename, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_vector_document_Ptr libcmis_document_getAllVersions( + libcmis_DocumentPtr document, + libcmis_ErrorPtr error ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/error.h b/inc/libcmis-c/error.h new file mode 100644 index 0000000..8a63bfa --- /dev/null +++ b/inc/libcmis-c/error.h @@ -0,0 +1,48 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_ERROR_H_ +#define _LIBCMIS_ERROR_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API libcmis_ErrorPtr libcmis_error_create( ); +LIBCMIS_C_API void libcmis_error_free( libcmis_ErrorPtr e ); + +LIBCMIS_C_API const char* libcmis_error_getMessage( libcmis_ErrorPtr e ); +LIBCMIS_C_API const char* libcmis_error_getType( libcmis_ErrorPtr e ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/folder.h b/inc/libcmis-c/folder.h new file mode 100644 index 0000000..e741e71 --- /dev/null +++ b/inc/libcmis-c/folder.h @@ -0,0 +1,81 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_FOLDER_H_ +#define _LIBCMIS_FOLDER_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_vector_folder_free( libcmis_vector_folder_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_folder_size( libcmis_vector_folder_Ptr vector ); +LIBCMIS_C_API libcmis_FolderPtr libcmis_vector_folder_get( libcmis_vector_folder_Ptr vector, size_t i ); + + +LIBCMIS_C_API bool libcmis_is_folder( libcmis_ObjectPtr object ); +LIBCMIS_C_API libcmis_FolderPtr libcmis_folder_cast( libcmis_ObjectPtr object ); + +LIBCMIS_C_API void libcmis_folder_free( libcmis_FolderPtr folder ); + +LIBCMIS_C_API libcmis_FolderPtr libcmis_folder_getParent( libcmis_FolderPtr folder, libcmis_ErrorPtr error ); +LIBCMIS_C_API libcmis_vector_object_Ptr libcmis_folder_getChildren( libcmis_FolderPtr folder, libcmis_ErrorPtr error ); + +/** Get the path of the folder. The returned string needs to be freed. + */ +LIBCMIS_C_API char* libcmis_folder_getPath( libcmis_FolderPtr folder ); + +LIBCMIS_C_API bool libcmis_folder_isRootFolder( libcmis_FolderPtr folder ); + +LIBCMIS_C_API libcmis_FolderPtr libcmis_folder_createFolder( + libcmis_FolderPtr folder, + libcmis_vector_property_Ptr properties, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_DocumentPtr libcmis_folder_createDocument( + libcmis_FolderPtr folder, + libcmis_vector_property_Ptr properties, + libcmis_readFn readFn, + void* userData, + const char* contentType, + const char* filename, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_vector_string_Ptr libcmis_folder_removeTree( libcmis_FolderPtr folder, + bool allVersion, + libcmis_folder_UnfileObjects unfile, + bool continueOnError, + libcmis_ErrorPtr error ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/libcmis-c-api.h b/inc/libcmis-c/libcmis-c-api.h new file mode 100644 index 0000000..3fe7986 --- /dev/null +++ b/inc/libcmis-c/libcmis-c-api.h @@ -0,0 +1,45 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_C_API_H_ +#define _LIBCMIS_C_API_H_ + +#ifdef DLL_EXPORT +#ifdef LIBCMIS_C_BUILD +#define LIBCMIS_C_API __declspec(dllexport) +#else +#define LIBCMIS_C_API __declspec(dllimport) +#endif +#else /* !DLL_EXPORT */ +#ifdef LIBCMIS_C_VISIBILITY +#define LIBCMIS_C_API __attribute__((visibility("default"))) +#else +#define LIBCMIS_C_API +#endif +#endif + +#endif diff --git a/inc/libcmis-c/libcmis-c.h b/inc/libcmis-c/libcmis-c.h new file mode 100644 index 0000000..d9f6e4e --- /dev/null +++ b/inc/libcmis-c/libcmis-c.h @@ -0,0 +1,50 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_C_H_ +#define _LIBCMIS_C_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#include "libcmis-c/allowable-actions.h" +#include "libcmis-c/document.h" +#include "libcmis-c/error.h" +#include "libcmis-c/folder.h" +#include "libcmis-c/object.h" +#include "libcmis-c/object-type.h" +#include "libcmis-c/property.h" +#include "libcmis-c/property-type.h" +#include "libcmis-c/oauth2-data.h" +#include "libcmis-c/rendition.h" +#include "libcmis-c/repository.h" +#include "libcmis-c/types.h" +#include "libcmis-c/session.h" +#include "libcmis-c/session-factory.h" +#include "libcmis-c/vectors.h" + +#endif diff --git a/inc/libcmis-c/oauth2-data.h b/inc/libcmis-c/oauth2-data.h new file mode 100644 index 0000000..ec4a9d3 --- /dev/null +++ b/inc/libcmis-c/oauth2-data.h @@ -0,0 +1,58 @@ + +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_OAUTH2_DATA_H_ +#define _LIBCMIS_OAUTH2_DATA_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API libcmis_OAuth2DataPtr libcmis_oauth2data_create( + char* authUrl, char* tokenUrl, char* scopes, char* redirectUri, + char* clientId, char* clientSecret ); + +LIBCMIS_C_API void libcmis_oauth2data_free( libcmis_OAuth2DataPtr oauth2 ); + +LIBCMIS_C_API bool libcmis_oauth2data_isComplete( libcmis_OAuth2DataPtr oauth2 ); + +LIBCMIS_C_API const char* libcmis_oauth2data_getAuthUrl( libcmis_OAuth2DataPtr oauth2 ); +LIBCMIS_C_API const char* libcmis_oauth2data_getTokenUrl( libcmis_OAuth2DataPtr oauth2 ); +LIBCMIS_C_API const char* libcmis_oauth2data_getClientId( libcmis_OAuth2DataPtr oauth2 ); +LIBCMIS_C_API const char* libcmis_oauth2data_getClientSecret( libcmis_OAuth2DataPtr oauth2 ); +LIBCMIS_C_API const char* libcmis_oauth2data_getScope( libcmis_OAuth2DataPtr oauth2 ); +LIBCMIS_C_API const char* libcmis_oauth2data_getRedirectUri( libcmis_OAuth2DataPtr oauth2 ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/object-type.h b/inc/libcmis-c/object-type.h new file mode 100644 index 0000000..0e0317c --- /dev/null +++ b/inc/libcmis-c/object-type.h @@ -0,0 +1,114 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_OBJECT_TYPE_H_ +#define _LIBCMIS_OBJECT_TYPE_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +LIBCMIS_C_API void libcmis_vector_object_type_free( libcmis_vector_object_type_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_object_type_size( libcmis_vector_object_type_Ptr vector ); +LIBCMIS_C_API libcmis_ObjectTypePtr libcmis_vector_object_type_get( libcmis_vector_object_type_Ptr vector, size_t i ); + + +LIBCMIS_C_API void libcmis_object_type_free( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_getId( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_getLocalName( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_getLocalNamespace( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_getQueryName( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_getDisplayName( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_getDescription( libcmis_ObjectTypePtr type ); + +LIBCMIS_C_API libcmis_ObjectTypePtr libcmis_object_type_getParentType( + libcmis_ObjectTypePtr type, + libcmis_ErrorPtr error ); +LIBCMIS_C_API libcmis_ObjectTypePtr libcmis_object_type_getBaseType( + libcmis_ObjectTypePtr type, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_vector_object_type_Ptr libcmis_object_type_getChildren( + libcmis_ObjectTypePtr type, + libcmis_ErrorPtr error ); + +/** The resulting value needs to be freed + \since libcmis 0.4 + */ +LIBCMIS_C_API char* libcmis_object_type_getParentTypeId( libcmis_ObjectTypePtr type ); + +/** The resulting value needs to be freed + \since libcmis 0.4 + */ +LIBCMIS_C_API char* libcmis_object_type_getBaseTypeId( libcmis_ObjectTypePtr type ); + +LIBCMIS_C_API bool libcmis_object_type_isCreatable( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isFileable( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isQueryable( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isFulltextIndexed( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isIncludedInSupertypeQuery( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isControllablePolicy( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isControllableACL( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API bool libcmis_object_type_isVersionable( libcmis_ObjectTypePtr type ); + +LIBCMIS_C_API libcmis_object_type_ContentStreamAllowed libcmis_object_type_getContentStreamAllowed( libcmis_ObjectTypePtr type ); + +LIBCMIS_C_API libcmis_vector_property_type_Ptr libcmis_object_type_getPropertiesTypes( libcmis_ObjectTypePtr type ); +LIBCMIS_C_API libcmis_PropertyTypePtr libcmis_object_type_getPropertyType( libcmis_ObjectTypePtr type, const char* id ); + + +/** The resulting value needs to be freed + */ +LIBCMIS_C_API char* libcmis_object_type_toString( libcmis_ObjectTypePtr type ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/object.h b/inc/libcmis-c/object.h new file mode 100644 index 0000000..8739cff --- /dev/null +++ b/inc/libcmis-c/object.h @@ -0,0 +1,134 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_OBJECT_H_ +#define _LIBCMIS_OBJECT_H_ + +#include <time.h> + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_vector_object_free( libcmis_vector_object_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_object_size( libcmis_vector_object_Ptr vector ); +LIBCMIS_C_API libcmis_ObjectPtr libcmis_vector_object_get( libcmis_vector_object_Ptr vector, size_t i ); + + +LIBCMIS_C_API void libcmis_object_free( libcmis_ObjectPtr object ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getId( libcmis_ObjectPtr object ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getName( libcmis_ObjectPtr object ); + +LIBCMIS_C_API libcmis_vector_string_Ptr libcmis_object_getPaths( libcmis_ObjectPtr object ); + + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getBaseType( libcmis_ObjectPtr object ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getType( libcmis_ObjectPtr object ); + + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getCreatedBy( libcmis_ObjectPtr object ); +LIBCMIS_C_API time_t libcmis_object_getCreationDate( libcmis_ObjectPtr object ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getLastModifiedBy( libcmis_ObjectPtr object ); +LIBCMIS_C_API time_t libcmis_object_getLastModificationDate( libcmis_ObjectPtr object ); + + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getChangeToken( libcmis_ObjectPtr object ); +LIBCMIS_C_API bool libcmis_object_isImmutable( libcmis_ObjectPtr object ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API libcmis_vector_string_Ptr libcmis_object_getSecondaryTypes( libcmis_ObjectPtr object ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_getThumbnailUrl( libcmis_ObjectPtr object ); + +LIBCMIS_C_API libcmis_vector_rendition_Ptr libcmis_object_getRenditions( libcmis_ObjectPtr object, libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_ObjectPtr +LIBCMIS_C_API libcmis_object_addSecondaryType( libcmis_ObjectPtr object, + const char* id, + libcmis_vector_property_Ptr properties, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_ObjectPtr +LIBCMIS_C_API libcmis_object_removeSecondaryType( libcmis_ObjectPtr object, + const char* id, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_vector_property_Ptr libcmis_object_getProperties( libcmis_ObjectPtr object ); +LIBCMIS_C_API libcmis_PropertyPtr libcmis_object_getProperty( libcmis_ObjectPtr object, const char* name ); +LIBCMIS_C_API void libcmis_object_setProperty( libcmis_ObjectPtr object, libcmis_PropertyPtr property ); +LIBCMIS_C_API libcmis_ObjectPtr libcmis_object_updateProperties( + libcmis_ObjectPtr object, + libcmis_vector_property_Ptr properties, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_ObjectTypePtr libcmis_object_getTypeDescription( libcmis_ObjectPtr object ); +LIBCMIS_C_API libcmis_AllowableActionsPtr libcmis_object_getAllowableActions( libcmis_ObjectPtr object ); + +LIBCMIS_C_API void libcmis_object_refresh( libcmis_ObjectPtr object, libcmis_ErrorPtr error ); +LIBCMIS_C_API time_t libcmis_object_getRefreshTimestamp( libcmis_ObjectPtr object ); + +LIBCMIS_C_API void libcmis_object_remove( libcmis_ObjectPtr object, bool allVersions, libcmis_ErrorPtr error ); + +LIBCMIS_C_API void libcmis_object_move( libcmis_ObjectPtr object, + libcmis_FolderPtr source, + libcmis_FolderPtr dest, + libcmis_ErrorPtr error ); + + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_object_toString( libcmis_ObjectPtr object ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/property-type.h b/inc/libcmis-c/property-type.h new file mode 100644 index 0000000..f0faa90 --- /dev/null +++ b/inc/libcmis-c/property-type.h @@ -0,0 +1,86 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_PROPERTY_TYPE_H_ +#define _LIBCMIS_PROPERTY_TYPE_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +LIBCMIS_C_API void libcmis_vector_property_type_free( libcmis_vector_property_type_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_property_type_size( libcmis_vector_property_type_Ptr vector ); +LIBCMIS_C_API libcmis_PropertyTypePtr libcmis_vector_property_type_get( libcmis_vector_property_type_Ptr vector, size_t i ); + +LIBCMIS_C_API void libcmis_property_type_free( libcmis_PropertyTypePtr type ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_property_type_getId( libcmis_PropertyTypePtr type ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_property_type_getLocalName( libcmis_PropertyTypePtr type ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_property_type_getLocalNamespace( libcmis_PropertyTypePtr type ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_property_type_getDisplayName( libcmis_PropertyTypePtr type ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_property_type_getQueryName( libcmis_PropertyTypePtr type ); + +LIBCMIS_C_API libcmis_property_type_Type libcmis_property_type_getType( libcmis_PropertyTypePtr type ); + +/** The resulting value needs to be free'd. + */ +LIBCMIS_C_API char* libcmis_property_type_getXmlType( libcmis_PropertyTypePtr type ); + +LIBCMIS_C_API bool libcmis_property_type_isMultiValued( libcmis_PropertyTypePtr type ); +LIBCMIS_C_API bool libcmis_property_type_isUpdatable( libcmis_PropertyTypePtr type ); +LIBCMIS_C_API bool libcmis_property_type_isInherited( libcmis_PropertyTypePtr type ); +LIBCMIS_C_API bool libcmis_property_type_isRequired( libcmis_PropertyTypePtr type ); +LIBCMIS_C_API bool libcmis_property_type_isQueryable( libcmis_PropertyTypePtr type ); +LIBCMIS_C_API bool libcmis_property_type_isOrderable( libcmis_PropertyTypePtr type ); +LIBCMIS_C_API bool libcmis_property_type_isOpenChoice( libcmis_PropertyTypePtr type ); + +LIBCMIS_C_API void libcmis_property_type_update( libcmis_PropertyTypePtr propDef, + libcmis_vector_object_type_Ptr types ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/property.h b/inc/libcmis-c/property.h new file mode 100644 index 0000000..7d06418 --- /dev/null +++ b/inc/libcmis-c/property.h @@ -0,0 +1,66 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_PROPERTY_HXX_ +#define _LIBCMIS_PROPERTY_HXX_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API libcmis_vector_property_Ptr libcmis_vector_property_create( ); +LIBCMIS_C_API void libcmis_vector_property_free( libcmis_vector_property_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_property_size( libcmis_vector_property_Ptr vector ); +LIBCMIS_C_API libcmis_PropertyPtr libcmis_vector_property_get( libcmis_vector_property_Ptr vector, size_t i ); + +/** The item object can be deleted after this call safely. + */ +LIBCMIS_C_API void libcmis_vector_property_append( libcmis_vector_property_Ptr vector, libcmis_PropertyPtr item ); + + +LIBCMIS_C_API libcmis_PropertyPtr libcmis_property_create( libcmis_PropertyTypePtr type, const char** strValues, size_t size ); +LIBCMIS_C_API void libcmis_property_free( libcmis_PropertyPtr property ); + +LIBCMIS_C_API libcmis_PropertyTypePtr libcmis_property_getPropertyType( libcmis_PropertyPtr property ); + +LIBCMIS_C_API libcmis_vector_time_Ptr libcmis_property_getDateTimes( libcmis_PropertyPtr property ); +LIBCMIS_C_API libcmis_vector_bool_Ptr libcmis_property_getBools( libcmis_PropertyPtr property ); +LIBCMIS_C_API libcmis_vector_string_Ptr libcmis_property_getStrings( libcmis_PropertyPtr property ); +LIBCMIS_C_API libcmis_vector_long_Ptr libcmis_property_getLongs( libcmis_PropertyPtr property ); +LIBCMIS_C_API libcmis_vector_double_Ptr libcmis_property_getDoubles( libcmis_PropertyPtr property ); + +LIBCMIS_C_API void libcmis_property_setValues( libcmis_PropertyPtr property, const char** strValues, size_t size ); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/inc/libcmis-c/rendition.h b/inc/libcmis-c/rendition.h new file mode 100644 index 0000000..927fd28 --- /dev/null +++ b/inc/libcmis-c/rendition.h @@ -0,0 +1,59 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2013 Cao Cuong Ngo <cao.cuong.ngo@gmail.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ + +#ifndef _LIBCMIS_RENDITION_H_ +#define _LIBCMIS_RENDITION_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_rendition_free( libcmis_RenditionPtr rendition ); + +LIBCMIS_C_API bool libcmis_rendition_isThumbnail( libcmis_RenditionPtr rendition ); + +LIBCMIS_C_API const char* libcmis_rendition_getStreamId( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API const char* libcmis_rendition_getMimeType( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API const char* libcmis_rendition_getKind( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API const char* libcmis_rendition_getUrl( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API const char* libcmis_rendition_getTitle( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API long libcmis_rendition_getLength( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API long libcmis_rendition_getWidth( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API long libcmis_rendition_getHeight( libcmis_RenditionPtr rendition ); +LIBCMIS_C_API const char* libcmis_rendition_getRenditionDocumentId( libcmis_RenditionPtr rendition ); + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/inc/libcmis-c/repository.h b/inc/libcmis-c/repository.h new file mode 100644 index 0000000..651a881 --- /dev/null +++ b/inc/libcmis-c/repository.h @@ -0,0 +1,107 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _REPOSITORY_H_ +#define _REPOSITORY_H_ + +#include <libxml/tree.h> + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_vector_repository_free( libcmis_vector_Repository_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_repository_size( libcmis_vector_Repository_Ptr vector ); +LIBCMIS_C_API libcmis_RepositoryPtr libcmis_vector_repository_get( libcmis_vector_Repository_Ptr vector, size_t i ); + + +LIBCMIS_C_API libcmis_RepositoryPtr libcmis_repository_create( xmlNodePtr node ); + +LIBCMIS_C_API void libcmis_repository_free( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getId( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getName( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getDescription( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getVendorName( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getProductName( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getProductVersion( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getRootId( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getCmisVersionSupported( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getThinClientUri( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getPrincipalAnonymous( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getPrincipalAnyone( libcmis_RepositoryPtr repository ); + +/** The resulting value needs to be freed. + */ +LIBCMIS_C_API char* libcmis_repository_getCapability( + libcmis_RepositoryPtr repository, + libcmis_repository_capability_Type capability ); + +LIBCMIS_C_API bool libcmis_repository_getCapabilityAsBool( + libcmis_RepositoryPtr repository, + libcmis_repository_capability_Type capability ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/session-factory.h b/inc/libcmis-c/session-factory.h new file mode 100644 index 0000000..f10ddd2 --- /dev/null +++ b/inc/libcmis-c/session-factory.h @@ -0,0 +1,79 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _SESSION_FACTORY_H_ +#define _SESSION_FACTORY_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_setAuthenticationCallback( libcmis_authenticationCallback callback ); +LIBCMIS_C_API void libcmis_setCertValidationCallback( libcmis_certValidationCallback callback ); +LIBCMIS_C_API void libcmis_setOAuth2AuthCodeProvider( libcmis_oauth2AuthCodeProvider callback ); +LIBCMIS_C_API libcmis_oauth2AuthCodeProvider libcmis_getOAuth2AuthCodeProvider( ); + +LIBCMIS_C_API void libcmis_setProxySettings( + char* proxy, + char* noProxy, + char* proxyUser, + char* proxyPass ); + +LIBCMIS_C_API const char* libcmis_getProxy( ); +LIBCMIS_C_API const char* libcmis_getNoProxy( ); +LIBCMIS_C_API const char* libcmis_getProxyUser( ); +LIBCMIS_C_API const char* libcmis_getProxyPass( ); + +LIBCMIS_C_API libcmis_SessionPtr libcmis_createSession( + char* bindingUrl, + char* repositoryId, + char* username, + char* password, + bool noSslCheck, + libcmis_OAuth2DataPtr oauth2, + bool verbose, + libcmis_ErrorPtr error ); + +/** + \deprecated + use libcmis_createSession and libcmis_session_getRepositories instead + */ +LIBCMIS_C_API libcmis_vector_Repository_Ptr libcmis_getRepositories( + char* bindingUrl, + char* username, + char* password, + bool verbose, + libcmis_ErrorPtr error ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/session.h b/inc/libcmis-c/session.h new file mode 100644 index 0000000..77c0d90 --- /dev/null +++ b/inc/libcmis-c/session.h @@ -0,0 +1,83 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_SESSION_H_ +#define _LIBCMIS_SESSION_H_ + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_session_free( libcmis_SessionPtr session ); + +LIBCMIS_C_API libcmis_RepositoryPtr libcmis_session_getRepository( + libcmis_SessionPtr session, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_vector_Repository_Ptr libcmis_session_getRepositories( + libcmis_SessionPtr session ); + +LIBCMIS_C_API bool libcmis_session_setRepository( + libcmis_SessionPtr session, + const char* repositoryId ); + +LIBCMIS_C_API libcmis_FolderPtr libcmis_session_getRootFolder( + libcmis_SessionPtr session, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_ObjectPtr libcmis_session_getObject( + libcmis_SessionPtr session, + const char* id, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_ObjectPtr libcmis_session_getObjectByPath( + libcmis_SessionPtr session, + const char* path, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_FolderPtr libcmis_session_getFolder( + libcmis_SessionPtr session, + const char* id, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_ObjectTypePtr libcmis_session_getType( + libcmis_SessionPtr session, + const char* id, + libcmis_ErrorPtr error ); + +LIBCMIS_C_API libcmis_vector_object_type_Ptr libcmis_session_getBaseTypes( + libcmis_SessionPtr session, + libcmis_ErrorPtr error ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/types.h b/inc/libcmis-c/types.h new file mode 100644 index 0000000..c3e784c --- /dev/null +++ b/inc/libcmis-c/types.h @@ -0,0 +1,228 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_TYPES_H_ +#define _LIBCMIS_TYPES_H_ + +#ifndef __cplusplus +#include <stdbool.h> +#endif +#include <stddef.h> + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Vectors of simple types */ + + +typedef struct libcmis_vector_bool* libcmis_vector_bool_Ptr; + +typedef struct libcmis_vector_string* libcmis_vector_string_Ptr; + +typedef struct libcmis_vector_long* libcmis_vector_long_Ptr; + +typedef struct libcmis_vector_double* libcmis_vector_double_Ptr; + +typedef struct libcmis_vector_time* libcmis_vector_time_Ptr; + +typedef struct libcmis_vector_repository* libcmis_vector_Repository_Ptr; + + +/* AllowableActions */ + + +typedef struct libcmis_allowable_actions* libcmis_AllowableActionsPtr; + +typedef enum +{ + libcmis_DeleteObject, + libcmis_UpdateProperties, + libcmis_GetFolderTree, + libcmis_GetProperties, + libcmis_GetObjectRelationships, + libcmis_GetObjectParents, + libcmis_GetFolderParent, + libcmis_GetDescendants, + libcmis_MoveObject, + libcmis_DeleteContentStream, + libcmis_CheckOut, + libcmis_CancelCheckOut, + libcmis_CheckIn, + libcmis_SetContentStream, + libcmis_GetAllVersions, + libcmis_AddObjectToFolder, + libcmis_RemoveObjectFromFolder, + libcmis_GetContentStream, + libcmis_ApplyPolicy, + libcmis_GetAppliedPolicies, + libcmis_RemovePolicy, + libcmis_GetChildren, + libcmis_CreateDocument, + libcmis_CreateFolder, + libcmis_CreateRelationship, + libcmis_DeleteTree, + libcmis_GetRenditions, + libcmis_GetACL, + libcmis_ApplyACL +} libcmis_allowable_actions_Type; + + +/* Document */ + + +typedef struct libcmis_document* libcmis_DocumentPtr; +typedef size_t ( *libcmis_writeFn )( const void*, size_t, size_t, void* ); +typedef size_t ( *libcmis_readFn )( void*, size_t, size_t, void* ); + +typedef struct libcmis_vector_document* libcmis_vector_document_Ptr; + +/* Error */ + + +typedef struct libcmis_error* libcmis_ErrorPtr; + + +/* Folder */ + + +typedef struct libcmis_folder* libcmis_FolderPtr; + + +typedef struct libcmis_vector_folder* libcmis_vector_folder_Ptr; + +typedef enum +{ + libcmis_Unfile, + libcmis_DeleteSingleFiled, + libcmis_Delete +} libcmis_folder_UnfileObjects; + + +/* ObjectType */ + + +typedef struct libcmis_object_type* libcmis_ObjectTypePtr; + +typedef struct libcmis_vector_object_type* libcmis_vector_object_type_Ptr; + +typedef enum +{ + libcmis_NotAllowed, + libcmis_Allowed, + libcmis_Required +} libcmis_object_type_ContentStreamAllowed; + + +/* Object */ + + +typedef struct libcmis_object* libcmis_ObjectPtr; + +typedef struct libcmis_vector_object* libcmis_vector_object_Ptr; + + +/* Property */ + + +typedef struct libcmis_property* libcmis_PropertyPtr; + +typedef struct libcmis_vector_property* libcmis_vector_property_Ptr; + + +/* PropertyType */ + + +typedef struct libcmis_property_type* libcmis_PropertyTypePtr; + +typedef struct libcmis_vector_property_type* libcmis_vector_property_type_Ptr; + +typedef enum +{ + libcmis_String, + libcmis_Integer, + libcmis_Decimal, + libcmis_Bool, + libcmis_DateTime +} libcmis_property_type_Type; + + +/* Repository */ + +typedef enum +{ + libcmis_capability_ACL, + libcmis_capability_AllVersionsSearchable, + libcmis_capability_Changes, + libcmis_capability_ContentStreamUpdatability, + libcmis_capability_GetDescendants, + libcmis_capability_GetFolderTree, + libcmis_capability_OrderBy, + libcmis_capability_Multifiling, + libcmis_capability_PWCSearchable, + libcmis_capability_PWCUpdatable, + libcmis_capability_Query, + libcmis_capability_Renditions, + libcmis_capability_Unfiling, + libcmis_capability_VersionSpecificFiling, + libcmis_capability_Join +} libcmis_repository_capability_Type; + +typedef struct libcmis_repository* libcmis_RepositoryPtr; + + +/* Session */ + + +typedef struct libcmis_session* libcmis_SessionPtr; + +typedef bool ( *libcmis_authenticationCallback )( char* username, char* password ); +typedef bool ( *libcmis_certValidationCallback )( libcmis_vector_string_Ptr certificatesChain ); +typedef char * ( *libcmis_oauth2AuthCodeProvider ) ( const char* authUrl, const char* username, const char* password ); + + +/* OAuth2Data */ + + +typedef struct libcmis_oauth2data* libcmis_OAuth2DataPtr; + +typedef char* ( *libcmis_OAuth2AuthCodeProvider )( const char* authUrl, + const char* username, const char* password ); + + +/* Rendition */ + + +typedef struct libcmis_rendition* libcmis_RenditionPtr; +typedef struct libcmis_vector_rendition* libcmis_vector_rendition_Ptr; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/inc/libcmis-c/vectors.h b/inc/libcmis-c/vectors.h new file mode 100644 index 0000000..2c791c7 --- /dev/null +++ b/inc/libcmis-c/vectors.h @@ -0,0 +1,68 @@ +/* libcmis + * Version: MPL 1.1 / GPLv2+ / LGPLv2+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> + * + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPLv2+"), or + * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), + * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable + * instead of those above. + */ +#ifndef _LIBCMIS_VECTORS_HXX_ +#define _LIBCMIS_VECTORS_HXX_ + +#include <time.h> + +#include "libcmis-c/libcmis-c-api.h" +#include "libcmis-c/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBCMIS_C_API void libcmis_vector_bool_free( libcmis_vector_bool_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_bool_size( libcmis_vector_bool_Ptr vector ); +LIBCMIS_C_API bool libcmis_vector_bool_get( libcmis_vector_bool_Ptr vector, size_t i ); + + +LIBCMIS_C_API void libcmis_vector_string_free( libcmis_vector_string_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_string_size( libcmis_vector_string_Ptr vector ); +LIBCMIS_C_API const char* libcmis_vector_string_get( libcmis_vector_string_Ptr vector, size_t i ); + + +LIBCMIS_C_API void libcmis_vector_long_free( libcmis_vector_long_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_long_size( libcmis_vector_long_Ptr vector ); +LIBCMIS_C_API long libcmis_vector_long_get( libcmis_vector_long_Ptr vector, size_t i ); + + +LIBCMIS_C_API void libcmis_vector_double_free( libcmis_vector_double_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_double_size( libcmis_vector_double_Ptr vector ); +LIBCMIS_C_API double libcmis_vector_double_get( libcmis_vector_double_Ptr vector, size_t i ); + + +LIBCMIS_C_API void libcmis_vector_time_free( libcmis_vector_time_Ptr vector ); +LIBCMIS_C_API size_t libcmis_vector_time_size( libcmis_vector_time_Ptr vector ); +LIBCMIS_C_API time_t libcmis_vector_time_get( libcmis_vector_time_Ptr vector, size_t i ); + +#ifdef __cplusplus +} +#endif + +#endif |