diff --git a/cmake/tusclientConfig.cmake.in b/cmake/ctusConfig.cmake.in similarity index 100% rename from cmake/tusclientConfig.cmake.in rename to cmake/ctusConfig.cmake.in diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 2649976..ce27806 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,2 +1,2 @@ -add_subdirectory(tusclient) +add_subdirectory(ctus) diff --git a/lib/ctus/.cmake/ctus_sources.cmake b/lib/ctus/.cmake/ctus_sources.cmake new file mode 100644 index 0000000..049b650 --- /dev/null +++ b/lib/ctus/.cmake/ctus_sources.cmake @@ -0,0 +1,50 @@ +set(CTUS_HEADERS + include/ctus/ctus.h + include/ctus/TusStatus.h + include/ctus/cache/CacheRepository.h + include/ctus/cache/ICacheManager.h + include/ctus/cache/TUSFile.h + include/ctus/chunk/FileChunker.h + include/ctus/chunk/IFileChunker.h + include/ctus/chunk/TUSChunk.h + include/ctus/chunk/utility/ChunkUtility.h + include/ctus/config.h + include/ctus/exceptions/TUSException.h + include/ctus/http/HttpClient.h + include/ctus/http/IHttpClient.h + include/ctus/http/Request.h + include/ctus/http/RequestTask.h + include/ctus/ctus.h + include/ctus/logging/GLoggingService.h + include/ctus/logging/ILogger.h + include/ctus/repository/IRepository.h + include/ctus/verifiers/IFileVerifier.h + include/ctus/verifiers/Md5Verifier.h +) + +set(CTUS_SOURCES + src/ctus/TusClient.cpp + src/ctus/cache/CacheRepository.cpp + src/ctus/cache/TUSFile.cpp + src/ctus/chunk/FileChunker.cpp + src/ctus/chunk/TUSChunk.cpp + src/ctus/chunk/utility/ChunkUtility.cpp + src/ctus/http/HttpClient.cpp + src/ctus/http/Request.cpp + src/ctus/http/RequestTask.cpp + src/ctus/ctus.cpp + src/ctus/logging/GLoggingService.cpp + src/ctus/verifiers/Md5Verifier.cpp +) + +set(CTUS_TEST_SOURCES + FileChunkerTest.cpp + TusClientTest.cpp + http/HttpClientTest.cpp + main.cpp + repository/CacheRepositoryTest.cpp + verifiers/FileVerifiersTest.cpp +) + +set(CTUS_RESOURCES +) diff --git a/lib/ctus/.cmake/sources.cmake b/lib/ctus/.cmake/sources.cmake new file mode 100644 index 0000000..24f661f --- /dev/null +++ b/lib/ctus/.cmake/sources.cmake @@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/ctus_sources.cmake) diff --git a/lib/ctus/CMakeLists.txt b/lib/ctus/CMakeLists.txt new file mode 100644 index 0000000..fc36a3e --- /dev/null +++ b/lib/ctus/CMakeLists.txt @@ -0,0 +1,43 @@ +# Include common cmake scripts +include(${CMAKE_CURRENT_SOURCE_DIR}/.cmake/sources.cmake) +show_module_info(${CMAKE_CURRENT_LIST_DIR}/package.json) + +# Configure build output directories for the target +configure_build(ctus) + +# Create executable target +if(BUILD_SHARED_LIBS) +add_library(ctus SHARED ${CTUS_SOURCES} ${CTUS_HEADERS} ${CTUS_RESOURCES}) +else() + add_library(ctus STATIC ${CTUS_SOURCES} ${CTUS_HEADERS} ${CTUS_RESOURCES}) +endif() + +# Include headers directory +target_include_directories(ctus PUBLIC + $ + $) + +# Link libraries +target_link_libraries(ctus PUBLIC CURL::libcurl Boost::uuid Boost::lexical_cast nlohmann_json::nlohmann_json glog::glog fmt::fmt) +if(BUILD_SHARED_LIBS) + target_compile_definitions(ctus PRIVATE CTUS_EXPORTS) + target_compile_definitions(ctus PRIVATE CTUS_SHARED) +endif () +# Enable testing if tests exist +include(CTest) +if(BUILD_TESTING) + add_subdirectory(test) +endif() +# Install target +configure_install(ctus) +#For destribution, we need to create a config file for the package +include(CMakePackageConfigHelpers) +configure_package_config_file( + "${CMAKE_SOURCE_DIR}/cmake/ctusConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/ctusConfig.cmake" + INSTALL_DESTINATION lib/cmake/ctus + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ctusConfig.cmake" + DESTINATION lib/cmake/ctus) \ No newline at end of file diff --git a/lib/tusclient/README.md b/lib/ctus/README.md similarity index 100% rename from lib/tusclient/README.md rename to lib/ctus/README.md diff --git a/lib/tusclient/docs/.gitignore b/lib/ctus/docs/.gitignore similarity index 100% rename from lib/tusclient/docs/.gitignore rename to lib/ctus/docs/.gitignore diff --git a/lib/tusclient/docs/Doxyfile b/lib/ctus/docs/Doxyfile similarity index 100% rename from lib/tusclient/docs/Doxyfile rename to lib/ctus/docs/Doxyfile diff --git a/lib/tusclient/include/tusclient/TusClient.h b/lib/ctus/include/ctus/TusClient.h similarity index 98% rename from lib/tusclient/include/tusclient/TusClient.h rename to lib/ctus/include/ctus/TusClient.h index b2138ab..142107f 100644 --- a/lib/tusclient/include/tusclient/TusClient.h +++ b/lib/ctus/include/ctus/TusClient.h @@ -16,7 +16,7 @@ #include #include "TusStatus.h" -#include "libtusclient.h" +#include "ctus.h" #include "logging/ILogger.h" using std::string; @@ -54,7 +54,7 @@ namespace TUS { * @brief The ITusClient class represents an interface for a client for * uploading files using the TUS protocol. */ - class EXPORT_LIBTUSCLIENT ITusClient { + class EXPORT_CTUS ITusClient { public: virtual ~ITusClient() = default; @@ -96,7 +96,7 @@ namespace TUS { * @brief The TusClient class represents a client for uploading files using the * TUS protocol. */ - class EXPORT_LIBTUSCLIENT TusClient : public ITusClient { + class EXPORT_CTUS TusClient : public ITusClient { private: using OnSuccessCallback = std::function; using OnErrorCallback = std::function; diff --git a/lib/tusclient/include/tusclient/TusStatus.h b/lib/ctus/include/ctus/TusStatus.h similarity index 84% rename from lib/tusclient/include/tusclient/TusStatus.h rename to lib/ctus/include/ctus/TusStatus.h index 0f10a78..769c151 100644 --- a/lib/tusclient/include/tusclient/TusStatus.h +++ b/lib/ctus/include/ctus/TusStatus.h @@ -7,10 +7,10 @@ #ifndef INCLUDE_TUSSTATUS_H_ #define INCLUDE_TUSSTATUS_H_ -#include "libtusclient.h" +#include "ctus.h" namespace TUS { - enum class EXPORT_LIBTUSCLIENT TusStatus { + enum class EXPORT_CTUS TusStatus { READY, UPLOADING, FAILED, diff --git a/lib/tusclient/include/tusclient/cache/CacheRepository.h b/lib/ctus/include/ctus/cache/CacheRepository.h similarity index 92% rename from lib/tusclient/include/tusclient/cache/CacheRepository.h rename to lib/ctus/include/ctus/cache/CacheRepository.h index a24c3ba..6625955 100644 --- a/lib/tusclient/include/tusclient/cache/CacheRepository.h +++ b/lib/ctus/include/ctus/cache/CacheRepository.h @@ -6,7 +6,7 @@ #ifndef INCLUDE_CACHE_CACHEREPOSITORY_H_ #define INCLUDE_CACHE_CACHEREPOSITORY_H_ -#include "libtusclient.h" +#include "ctus.h" #include "repository/IRepository.h" #include "cache/TUSFile.h" @@ -17,7 +17,7 @@ namespace TUS::Cache { * The repository stores TUSFile objects in a cache file. */ - class EXPORT_LIBTUSCLIENT CacheRepository : public Repository::IRepository { + class EXPORT_CTUS CacheRepository : public Repository::IRepository { public: explicit CacheRepository(std::string appName, bool clearCache = false); static std::shared_ptr create(std::string appName, bool clearCache = false); diff --git a/lib/tusclient/include/tusclient/cache/ICacheManager.h b/lib/ctus/include/ctus/cache/ICacheManager.h similarity index 96% rename from lib/tusclient/include/tusclient/cache/ICacheManager.h rename to lib/ctus/include/ctus/cache/ICacheManager.h index 520f653..d2dc69b 100644 --- a/lib/tusclient/include/tusclient/cache/ICacheManager.h +++ b/lib/ctus/include/ctus/cache/ICacheManager.h @@ -9,7 +9,7 @@ #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS { class TUSFile; @@ -22,7 +22,7 @@ namespace TUS { * from the cache. */ - class EXPORT_LIBTUSCLIENT ICacheManager { + class EXPORT_CTUS ICacheManager { public: virtual ~ICacheManager() = default; diff --git a/lib/tusclient/include/tusclient/cache/TUSFile.h b/lib/ctus/include/ctus/cache/TUSFile.h similarity index 98% rename from lib/tusclient/include/tusclient/cache/TUSFile.h rename to lib/ctus/include/ctus/cache/TUSFile.h index 2163175..cc3e502 100644 --- a/lib/tusclient/include/tusclient/cache/TUSFile.h +++ b/lib/ctus/include/ctus/cache/TUSFile.h @@ -12,7 +12,7 @@ #include #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Cache { /** @@ -23,7 +23,7 @@ namespace TUS::Cache { * the size of the full file and the application name that created the record. * This class provides methods for storing and retrieving data from the cache. */ - class EXPORT_LIBTUSCLIENT TUSFile { + class EXPORT_CTUS TUSFile { public: /** * @brief Construct a new TUSFile object. diff --git a/lib/tusclient/include/tusclient/chunk/FileChunker.h b/lib/ctus/include/ctus/chunk/FileChunker.h similarity index 94% rename from lib/tusclient/include/tusclient/chunk/FileChunker.h rename to lib/ctus/include/ctus/chunk/FileChunker.h index 7c9dd97..b8d377f 100644 --- a/lib/tusclient/include/tusclient/chunk/FileChunker.h +++ b/lib/ctus/include/ctus/chunk/FileChunker.h @@ -12,7 +12,7 @@ #include "IFileChunker.h" #include "verifiers/IFileVerifier.h" -#include "libtusclient.h" +#include "ctus.h" using std::string; @@ -28,7 +28,7 @@ namespace TUS::Chunk { * To get the chunks, the loadChunks method must be called and you can get the chunks with the getChunks method, * which returns a vector of TUSChunk objects. */ - class EXPORT_LIBTUSCLIENT FileChunker : public IFileChunker, public FileVerifier::IFileVerifier { + class EXPORT_CTUS FileChunker : public IFileChunker, public FileVerifier::IFileVerifier { private: const string CHUNK_FILE_NAME_PREFIX = "_chunk_"; const string CHUNK_FILE_EXTENSION = ".bin"; diff --git a/lib/tusclient/include/tusclient/chunk/IFileChunker.h b/lib/ctus/include/ctus/chunk/IFileChunker.h similarity index 97% rename from lib/tusclient/include/tusclient/chunk/IFileChunker.h rename to lib/ctus/include/ctus/chunk/IFileChunker.h index 3b438fe..67e560c 100644 --- a/lib/tusclient/include/tusclient/chunk/IFileChunker.h +++ b/lib/ctus/include/ctus/chunk/IFileChunker.h @@ -9,7 +9,7 @@ #include #include #include -#include "libtusclient.h" +#include "ctus.h" using std::string; using std::filesystem::path; @@ -25,7 +25,7 @@ namespace TUS::Chunk { * and retrieve the total number of chunks. */ template - class EXPORT_LIBTUSCLIENT IFileChunker { + class EXPORT_CTUS IFileChunker { public: virtual ~IFileChunker() = default; diff --git a/lib/tusclient/include/tusclient/chunk/TUSChunk.h b/lib/ctus/include/ctus/chunk/TUSChunk.h similarity index 95% rename from lib/tusclient/include/tusclient/chunk/TUSChunk.h rename to lib/ctus/include/ctus/chunk/TUSChunk.h index 1425937..e2ca26e 100644 --- a/lib/tusclient/include/tusclient/chunk/TUSChunk.h +++ b/lib/ctus/include/ctus/chunk/TUSChunk.h @@ -8,7 +8,7 @@ #include #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Chunk { @@ -19,7 +19,7 @@ namespace TUS::Chunk { * This class represents a chunk of a TUS file. A chunk is a part of a file * that is uploaded to the server in a single request. */ - class EXPORT_LIBTUSCLIENT TUSChunk { + class EXPORT_CTUS TUSChunk { public: /** * @brief Construct a TUSChunk object. diff --git a/lib/tusclient/include/tusclient/chunk/utility/ChunkUtility.h b/lib/ctus/include/ctus/chunk/utility/ChunkUtility.h similarity index 94% rename from lib/tusclient/include/tusclient/chunk/utility/ChunkUtility.h rename to lib/ctus/include/ctus/chunk/utility/ChunkUtility.h index 19f270c..32f061b 100644 --- a/lib/tusclient/include/tusclient/chunk/utility/ChunkUtility.h +++ b/lib/ctus/include/ctus/chunk/utility/ChunkUtility.h @@ -7,14 +7,14 @@ #ifndef INCLUDE_CHUNK_UTILITY_CHUNKUTILITY_H_ #define INCLUDE_CHUNK_UTILITY_CHUNKUTILITY_H_ #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Chunk::Utility { /** * @brief The ChunkUtility class provides utility methods for working with chunks. */ - class EXPORT_LIBTUSCLIENT ChunkUtility { + class EXPORT_CTUS ChunkUtility { public: /** * @brief Get the chunk size in GB. diff --git a/lib/tusclient/include/tusclient/config.h b/lib/ctus/include/ctus/config.h similarity index 100% rename from lib/tusclient/include/tusclient/config.h rename to lib/ctus/include/ctus/config.h diff --git a/lib/ctus/include/ctus/ctus.h b/lib/ctus/include/ctus/ctus.h new file mode 100644 index 0000000..9489a0b --- /dev/null +++ b/lib/ctus/include/ctus/ctus.h @@ -0,0 +1,23 @@ +#ifndef INCLUDE_LIBTUSCLIENT_H_ +#define INCLUDE_LIBTUSCLIENT_H_ +#include + +constexpr auto TUS_PROTOCOL_VERSION = "1.0.0"; +#if defined(CTUS_SHARED) + #if defined(_WIN32) || defined(__CYGWIN__) + #ifdef CTUS_EXPORTS + #define EXPORT_CTUS __declspec(dllexport) + #else + #define EXPORT_CTUS __declspec(dllimport) + #endif + #else + #ifdef CTUS_EXPORTS + #define EXPORT_CTUS __attribute__((visibility("default"))) + #else + #define EXPORT_CTUS + #endif + #endif + #else + #define EXPORT_CTUS + #endif +#endif // INCLUDE_LIBTUSCLIENT_H_ \ No newline at end of file diff --git a/lib/tusclient/include/tusclient/exceptions/TUSException.h b/lib/ctus/include/ctus/exceptions/TUSException.h similarity index 84% rename from lib/tusclient/include/tusclient/exceptions/TUSException.h rename to lib/ctus/include/ctus/exceptions/TUSException.h index 5fde123..df437a1 100644 --- a/lib/tusclient/include/tusclient/exceptions/TUSException.h +++ b/lib/ctus/include/ctus/exceptions/TUSException.h @@ -7,7 +7,7 @@ */ #include #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Exceptions { @@ -15,7 +15,7 @@ namespace TUS::Exceptions { * @brief Exception class for TUS client errors. */ - class EXPORT_LIBTUSCLIENT TUSException : public std::runtime_error { + class EXPORT_CTUS TUSException : public std::runtime_error { public: using std::runtime_error::runtime_error; }; diff --git a/lib/tusclient/include/tusclient/http/HttpClient.h b/lib/ctus/include/ctus/http/HttpClient.h similarity index 95% rename from lib/tusclient/include/tusclient/http/HttpClient.h rename to lib/ctus/include/ctus/http/HttpClient.h index 6946865..a39e2ef 100644 --- a/lib/tusclient/include/tusclient/http/HttpClient.h +++ b/lib/ctus/include/ctus/http/HttpClient.h @@ -12,7 +12,7 @@ #include #include -#include "libtusclient.h" +#include "ctus.h" #include "IHttpClient.h" #include "http/RequestTask.h" #include "logging/ILogger.h" @@ -20,7 +20,7 @@ namespace TUS::Http { - struct EXPORT_LIBTUSCLIENT Progress { + struct EXPORT_CTUS Progress { char *data; size_t size; }; @@ -28,7 +28,7 @@ namespace TUS::Http { /** * @brief Represents a HTTP client */ - class EXPORT_LIBTUSCLIENT HttpClient : public IHttpClient { + class EXPORT_CTUS HttpClient : public IHttpClient { public: HttpClient(); diff --git a/lib/tusclient/include/tusclient/http/IHttpClient.h b/lib/ctus/include/ctus/http/IHttpClient.h similarity index 97% rename from lib/tusclient/include/tusclient/http/IHttpClient.h rename to lib/ctus/include/ctus/http/IHttpClient.h index c2f3e7e..827f12f 100644 --- a/lib/tusclient/include/tusclient/http/IHttpClient.h +++ b/lib/ctus/include/ctus/http/IHttpClient.h @@ -5,7 +5,7 @@ * This file is part of libtusclient, licensed under the MIT License. * See the LICENSE file in the project root for more information. */ -#include "libtusclient.h" +#include "ctus.h" #include using std::list; using std::string; @@ -20,7 +20,7 @@ namespace TUS::Http { * It provides methods for performing various HTTP methods such as GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS. * It also provides a method for aborting a request. */ - class EXPORT_LIBTUSCLIENT IHttpClient { + class EXPORT_CTUS IHttpClient { public: /** * @brief Perform a GET request. diff --git a/lib/tusclient/include/tusclient/http/Request.h b/lib/ctus/include/ctus/http/Request.h similarity index 96% rename from lib/tusclient/include/tusclient/http/Request.h rename to lib/ctus/include/ctus/http/Request.h index 079f2d3..bf60769 100644 --- a/lib/tusclient/include/tusclient/http/Request.h +++ b/lib/ctus/include/ctus/http/Request.h @@ -8,7 +8,7 @@ */ #include #include -#include "libtusclient.h" +#include "ctus.h" #include using std::string; using std::map; @@ -16,7 +16,7 @@ using std::function; namespace TUS::Http { - enum class EXPORT_LIBTUSCLIENT HttpMethod { + enum class EXPORT_CTUS HttpMethod { _GET, _POST, _PUT, @@ -29,7 +29,7 @@ namespace TUS::Http { /** * @brief Represents a HTTP request */ - class EXPORT_LIBTUSCLIENT Request { + class EXPORT_CTUS Request { public: using SuccessCallback = std::function; using ErrorCallback = std::function; diff --git a/lib/tusclient/include/tusclient/http/RequestTask.h b/lib/ctus/include/ctus/http/RequestTask.h similarity index 84% rename from lib/tusclient/include/tusclient/http/RequestTask.h rename to lib/ctus/include/ctus/http/RequestTask.h index 3dbafbd..dddf20e 100644 --- a/lib/tusclient/include/tusclient/http/RequestTask.h +++ b/lib/ctus/include/ctus/http/RequestTask.h @@ -8,11 +8,11 @@ #include #include "Request.h" -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Http { - struct EXPORT_LIBTUSCLIENT RequestTask : public Request { + struct EXPORT_CTUS RequestTask : public Request { CURL *curl; RequestTask(const Request &request, CURL *curl); diff --git a/lib/tusclient/include/tusclient/logging/GLoggingService.h b/lib/ctus/include/ctus/logging/GLoggingService.h similarity index 94% rename from lib/tusclient/include/tusclient/logging/GLoggingService.h rename to lib/ctus/include/ctus/logging/GLoggingService.h index 9ce873e..448ae3d 100644 --- a/lib/tusclient/include/tusclient/logging/GLoggingService.h +++ b/lib/ctus/include/ctus/logging/GLoggingService.h @@ -13,7 +13,7 @@ namespace TUS::Logging { -class EXPORT_LIBTUSCLIENT GLoggingService : public ILogger { +class EXPORT_CTUS GLoggingService : public ILogger { public: explicit GLoggingService(LogLevel level); ~GLoggingService() override; diff --git a/lib/tusclient/include/tusclient/logging/ILogger.h b/lib/ctus/include/ctus/logging/ILogger.h similarity index 94% rename from lib/tusclient/include/tusclient/logging/ILogger.h rename to lib/ctus/include/ctus/logging/ILogger.h index 1e0bfab..df5e000 100644 --- a/lib/tusclient/include/tusclient/logging/ILogger.h +++ b/lib/ctus/include/ctus/logging/ILogger.h @@ -6,7 +6,7 @@ * See the LICENSE file in the project root for more information. */ #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Logging { enum class LogLevel { @@ -21,7 +21,7 @@ namespace TUS::Logging { /** * @brief Interface for logging */ - class EXPORT_LIBTUSCLIENT ILogger { + class EXPORT_CTUS ILogger { public: virtual void setLevel(LogLevel level) = 0; diff --git a/lib/tusclient/include/tusclient/repository/IRepository.h b/lib/ctus/include/ctus/repository/IRepository.h similarity index 91% rename from lib/tusclient/include/tusclient/repository/IRepository.h rename to lib/ctus/include/ctus/repository/IRepository.h index 10587dd..8640dd1 100644 --- a/lib/tusclient/include/tusclient/repository/IRepository.h +++ b/lib/ctus/include/ctus/repository/IRepository.h @@ -8,12 +8,12 @@ #include -#include "libtusclient.h" +#include "ctus.h" namespace TUS::Repository { template - class EXPORT_LIBTUSCLIENT IRepository { + class EXPORT_CTUS IRepository { public: virtual ~IRepository() = default; diff --git a/lib/tusclient/include/tusclient/verifiers/IFileVerifier.h b/lib/ctus/include/ctus/verifiers/IFileVerifier.h similarity index 94% rename from lib/tusclient/include/tusclient/verifiers/IFileVerifier.h rename to lib/ctus/include/ctus/verifiers/IFileVerifier.h index 5d570ad..f89415e 100644 --- a/lib/tusclient/include/tusclient/verifiers/IFileVerifier.h +++ b/lib/ctus/include/ctus/verifiers/IFileVerifier.h @@ -7,7 +7,7 @@ #define INCLUDE_VERIFIERS_IFILEVERIFIER_H_ #include #include -#include "libtusclient.h" +#include "ctus.h" using std::string; using std::filesystem::path; @@ -16,7 +16,7 @@ namespace TUS::FileVerifier { /** * @brief The IFileVerifier class provides an interface for verifying files. */ - class EXPORT_LIBTUSCLIENT IFileVerifier { + class EXPORT_CTUS IFileVerifier { public: virtual ~IFileVerifier() = default; diff --git a/lib/tusclient/include/tusclient/verifiers/Md5Verifier.h b/lib/ctus/include/ctus/verifiers/Md5Verifier.h similarity index 87% rename from lib/tusclient/include/tusclient/verifiers/Md5Verifier.h rename to lib/ctus/include/ctus/verifiers/Md5Verifier.h index c749b3f..cfcd6fe 100644 --- a/lib/tusclient/include/tusclient/verifiers/Md5Verifier.h +++ b/lib/ctus/include/ctus/verifiers/Md5Verifier.h @@ -7,10 +7,10 @@ #define INCLUDE_VERIFIERS_MD5VERIFIER_H_ #include "IFileVerifier.h" -#include "libtusclient.h" +#include "ctus.h" namespace TUS::FileVerifier{ - class EXPORT_LIBTUSCLIENT Md5Verifier : public IFileVerifier + class EXPORT_CTUS Md5Verifier : public IFileVerifier { public: Md5Verifier(); diff --git a/lib/ctus/package.json b/lib/ctus/package.json new file mode 100644 index 0000000..74a1d1b --- /dev/null +++ b/lib/ctus/package.json @@ -0,0 +1,6 @@ +{ + "name": "ctus", + "version": "1.0.0", + "type": "lib", + "description": "ctus module of type lib" +} \ No newline at end of file diff --git a/lib/tusclient/src/tusclient/TusClient.cpp b/lib/ctus/src/ctus/TusClient.cpp similarity index 100% rename from lib/tusclient/src/tusclient/TusClient.cpp rename to lib/ctus/src/ctus/TusClient.cpp diff --git a/lib/tusclient/src/tusclient/cache/CacheRepository.cpp b/lib/ctus/src/ctus/cache/CacheRepository.cpp similarity index 100% rename from lib/tusclient/src/tusclient/cache/CacheRepository.cpp rename to lib/ctus/src/ctus/cache/CacheRepository.cpp diff --git a/lib/tusclient/src/tusclient/cache/TUSFile.cpp b/lib/ctus/src/ctus/cache/TUSFile.cpp similarity index 100% rename from lib/tusclient/src/tusclient/cache/TUSFile.cpp rename to lib/ctus/src/ctus/cache/TUSFile.cpp diff --git a/lib/tusclient/src/tusclient/chunk/FileChunker.cpp b/lib/ctus/src/ctus/chunk/FileChunker.cpp similarity index 100% rename from lib/tusclient/src/tusclient/chunk/FileChunker.cpp rename to lib/ctus/src/ctus/chunk/FileChunker.cpp diff --git a/lib/tusclient/src/tusclient/chunk/TUSChunk.cpp b/lib/ctus/src/ctus/chunk/TUSChunk.cpp similarity index 100% rename from lib/tusclient/src/tusclient/chunk/TUSChunk.cpp rename to lib/ctus/src/ctus/chunk/TUSChunk.cpp diff --git a/lib/tusclient/src/tusclient/chunk/utility/ChunkUtility.cpp b/lib/ctus/src/ctus/chunk/utility/ChunkUtility.cpp similarity index 100% rename from lib/tusclient/src/tusclient/chunk/utility/ChunkUtility.cpp rename to lib/ctus/src/ctus/chunk/utility/ChunkUtility.cpp diff --git a/lib/tusclient/src/tusclient/libtusclient.cpp b/lib/ctus/src/ctus/ctus.cpp similarity index 87% rename from lib/tusclient/src/tusclient/libtusclient.cpp rename to lib/ctus/src/ctus/ctus.cpp index ce9ad07..571bff3 100644 --- a/lib/tusclient/src/tusclient/libtusclient.cpp +++ b/lib/ctus/src/ctus/ctus.cpp @@ -4,4 +4,4 @@ * See the LICENSE file in the project root for more information. */ -#include "libtusclient.h" +#include "ctus.h" diff --git a/lib/tusclient/src/tusclient/http/HttpClient.cpp b/lib/ctus/src/ctus/http/HttpClient.cpp similarity index 100% rename from lib/tusclient/src/tusclient/http/HttpClient.cpp rename to lib/ctus/src/ctus/http/HttpClient.cpp diff --git a/lib/tusclient/src/tusclient/http/Request.cpp b/lib/ctus/src/ctus/http/Request.cpp similarity index 100% rename from lib/tusclient/src/tusclient/http/Request.cpp rename to lib/ctus/src/ctus/http/Request.cpp diff --git a/lib/tusclient/src/tusclient/http/RequestTask.cpp b/lib/ctus/src/ctus/http/RequestTask.cpp similarity index 100% rename from lib/tusclient/src/tusclient/http/RequestTask.cpp rename to lib/ctus/src/ctus/http/RequestTask.cpp diff --git a/lib/tusclient/src/tusclient/logging/GLoggingService.cpp b/lib/ctus/src/ctus/logging/GLoggingService.cpp similarity index 100% rename from lib/tusclient/src/tusclient/logging/GLoggingService.cpp rename to lib/ctus/src/ctus/logging/GLoggingService.cpp diff --git a/lib/tusclient/src/tusclient/verifiers/Md5Verifier.cpp b/lib/ctus/src/ctus/verifiers/Md5Verifier.cpp similarity index 100% rename from lib/tusclient/src/tusclient/verifiers/Md5Verifier.cpp rename to lib/ctus/src/ctus/verifiers/Md5Verifier.cpp diff --git a/lib/tusclient/test/CMakeLists.txt b/lib/ctus/test/CMakeLists.txt similarity index 67% rename from lib/tusclient/test/CMakeLists.txt rename to lib/ctus/test/CMakeLists.txt index 9fad05e..1e5feb3 100644 --- a/lib/tusclient/test/CMakeLists.txt +++ b/lib/ctus/test/CMakeLists.txt @@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/../.cmake/sources.cmake) #Find GoogleTest package find_package(GTest REQUIRED) -configure_build(tusclient_test) +configure_build(CTUS_test) find_package(GTest REQUIRED)#GoogleTest package inclusion find_package(libzippp REQUIRED) # Include directories @@ -13,12 +13,12 @@ include_directories( # Add test executable # Use the modified copies -add_executable(tusclient_test ${TUSCLIENT_TEST_SOURCES}) +add_executable(CTUS_test ${CTUS_TEST_SOURCES}) # Link libraries -target_link_libraries(tusclient_test PRIVATE GTest::GTest GTest::gmock libzippp::libzippp tusclient) +target_link_libraries(CTUS_test PRIVATE GTest::GTest GTest::gmock libzippp::libzippp ctus) #auto discover tests -gtest_discover_tests(tusclient_test +gtest_discover_tests(CTUS_test DISCOVERY_TIMEOUT 60 PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" ) diff --git a/lib/tusclient/test/FileChunkerTest.cpp b/lib/ctus/test/FileChunkerTest.cpp similarity index 100% rename from lib/tusclient/test/FileChunkerTest.cpp rename to lib/ctus/test/FileChunkerTest.cpp diff --git a/lib/tusclient/test/TusClientTest.cpp b/lib/ctus/test/TusClientTest.cpp similarity index 96% rename from lib/tusclient/test/TusClientTest.cpp rename to lib/ctus/test/TusClientTest.cpp index 76819c8..0a67aa2 100644 --- a/lib/tusclient/test/TusClientTest.cpp +++ b/lib/ctus/test/TusClientTest.cpp @@ -23,9 +23,9 @@ namespace TUS::Test { const std::string URL = "http://localhost:8080/files/"; Logging::LogLevel logLevel = Logging::LogLevel::_DEBUG_; - static std::filesystem::path generateTestFile(int size = 10); + static path generateTestFile(int size = 10); - static std::filesystem::path generateSimpleFile(); + static path generateSimpleFile(); void SetUp() override { std::cout << "URL: " << URL << std::endl; @@ -50,7 +50,7 @@ namespace TUS::Test { } } - std::filesystem::path TusClientTest::generateTestFile(int size) { + path TusClientTest::generateTestFile(int size) { std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution dis(0, 255); @@ -87,7 +87,7 @@ namespace TUS::Test { return "test.zip"; } - std::filesystem::path TusClientTest::generateSimpleFile() { + path TusClientTest::generateSimpleFile() { std::ofstream testFile("test.txt"); testFile << "Hello World"; return "test.txt"; diff --git a/lib/tusclient/test/http/HttpClientTest.cpp b/lib/ctus/test/http/HttpClientTest.cpp similarity index 100% rename from lib/tusclient/test/http/HttpClientTest.cpp rename to lib/ctus/test/http/HttpClientTest.cpp diff --git a/lib/tusclient/test/main.cpp b/lib/ctus/test/main.cpp similarity index 100% rename from lib/tusclient/test/main.cpp rename to lib/ctus/test/main.cpp diff --git a/lib/tusclient/test/repository/CacheRepositoryTest.cpp b/lib/ctus/test/repository/CacheRepositoryTest.cpp similarity index 100% rename from lib/tusclient/test/repository/CacheRepositoryTest.cpp rename to lib/ctus/test/repository/CacheRepositoryTest.cpp diff --git a/lib/tusclient/test/verifiers/FileVerifiersTest.cpp b/lib/ctus/test/verifiers/FileVerifiersTest.cpp similarity index 100% rename from lib/tusclient/test/verifiers/FileVerifiersTest.cpp rename to lib/ctus/test/verifiers/FileVerifiersTest.cpp diff --git a/lib/tusclient/.cmake/sources.cmake b/lib/tusclient/.cmake/sources.cmake deleted file mode 100644 index df4fce6..0000000 --- a/lib/tusclient/.cmake/sources.cmake +++ /dev/null @@ -1 +0,0 @@ -include(${CMAKE_CURRENT_LIST_DIR}/tusclient_sources.cmake) diff --git a/lib/tusclient/.cmake/tusclient_sources.cmake b/lib/tusclient/.cmake/tusclient_sources.cmake deleted file mode 100644 index d966d56..0000000 --- a/lib/tusclient/.cmake/tusclient_sources.cmake +++ /dev/null @@ -1,50 +0,0 @@ -set(TUSCLIENT_HEADERS - include/tusclient/TusClient.h - include/tusclient/TusStatus.h - include/tusclient/cache/CacheRepository.h - include/tusclient/cache/ICacheManager.h - include/tusclient/cache/TUSFile.h - include/tusclient/chunk/FileChunker.h - include/tusclient/chunk/IFileChunker.h - include/tusclient/chunk/TUSChunk.h - include/tusclient/chunk/utility/ChunkUtility.h - include/tusclient/config.h - include/tusclient/exceptions/TUSException.h - include/tusclient/http/HttpClient.h - include/tusclient/http/IHttpClient.h - include/tusclient/http/Request.h - include/tusclient/http/RequestTask.h - include/tusclient/libtusclient.h - include/tusclient/logging/GLoggingService.h - include/tusclient/logging/ILogger.h - include/tusclient/repository/IRepository.h - include/tusclient/verifiers/IFileVerifier.h - include/tusclient/verifiers/Md5Verifier.h -) - -set(TUSCLIENT_SOURCES - src/tusclient/TusClient.cpp - src/tusclient/cache/CacheRepository.cpp - src/tusclient/cache/TUSFile.cpp - src/tusclient/chunk/FileChunker.cpp - src/tusclient/chunk/TUSChunk.cpp - src/tusclient/chunk/utility/ChunkUtility.cpp - src/tusclient/http/HttpClient.cpp - src/tusclient/http/Request.cpp - src/tusclient/http/RequestTask.cpp - src/tusclient/libtusclient.cpp - src/tusclient/logging/GLoggingService.cpp - src/tusclient/verifiers/Md5Verifier.cpp -) - -set(TUSCLIENT_TEST_SOURCES - FileChunkerTest.cpp - TusClientTest.cpp - http/HttpClientTest.cpp - main.cpp - repository/CacheRepositoryTest.cpp - verifiers/FileVerifiersTest.cpp -) - -set(TUSCLIENT_RESOURCES -) diff --git a/lib/tusclient/CMakeLists.txt b/lib/tusclient/CMakeLists.txt deleted file mode 100644 index fce6bc3..0000000 --- a/lib/tusclient/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -# Include common cmake scripts -include(${CMAKE_CURRENT_SOURCE_DIR}/.cmake/sources.cmake) -show_module_info(${CMAKE_CURRENT_LIST_DIR}/package.json) - -# Configure build output directories for the target -configure_build(tusclient) - -# Create executable target -if(BUILD_SHARED_LIBS) -add_library(tusclient SHARED ${TUSCLIENT_SOURCES} ${TUSCLIENT_HEADERS} ${TUSCLIENT_RESOURCES}) -else() - add_library(tusclient STATIC ${TUSCLIENT_SOURCES} ${TUSCLIENT_HEADERS} ${TUSCLIENT_RESOURCES}) -endif() - -# Include headers directory -target_include_directories(tusclient PUBLIC - $ - $) - -# Link libraries -target_link_libraries(tusclient PUBLIC CURL::libcurl Boost::uuid Boost::lexical_cast nlohmann_json::nlohmann_json glog::glog fmt::fmt) -if(BUILD_SHARED_LIBS) - target_compile_definitions(tusclient PRIVATE TUSCLIENT_EXPORTS) - target_compile_definitions(tusclient PRIVATE TUSCLIENT_SHARED) -endif () -# Enable testing if tests exist -include(CTest) -if(BUILD_TESTING) - add_subdirectory(test) -endif() -# Install target -configure_install(tusclient) -#For destribution, we need to create a config file for the package -include(CMakePackageConfigHelpers) -configure_package_config_file( - "${CMAKE_SOURCE_DIR}/cmake/tusclientConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/tusclientConfig.cmake" - INSTALL_DESTINATION lib/cmake/tusclient - NO_SET_AND_CHECK_MACRO - NO_CHECK_REQUIRED_COMPONENTS_MACRO -) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tusclientConfig.cmake" - DESTINATION lib/cmake/tusclient) \ No newline at end of file diff --git a/lib/tusclient/include/tusclient/libtusclient.h b/lib/tusclient/include/tusclient/libtusclient.h deleted file mode 100644 index b2601ff..0000000 --- a/lib/tusclient/include/tusclient/libtusclient.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef INCLUDE_LIBTUSCLIENT_H_ -#define INCLUDE_LIBTUSCLIENT_H_ -#include - -constexpr auto TUS_PROTOCOL_VERSION = "1.0.0"; -#if defined(TUSCLIENT_SHARED) - #if defined(_WIN32) || defined(__CYGWIN__) - #ifdef TUSCLIENT_EXPORTS - #define EXPORT_LIBTUSCLIENT __declspec(dllexport) - #else - #define EXPORT_LIBTUSCLIENT __declspec(dllimport) - #endif - #else - #ifdef TUSCLIENT_EXPORTS - #define EXPORT_LIBTUSCLIENT __attribute__((visibility("default"))) - #else - #define EXPORT_LIBTUSCLIENT - #endif - #endif - #else - #define EXPORT_LIBTUSCLIENT - #endif -#endif // INCLUDE_LIBTUSCLIENT_H_ \ No newline at end of file diff --git a/lib/tusclient/package.json b/lib/tusclient/package.json deleted file mode 100644 index fb6bc36..0000000 --- a/lib/tusclient/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "tusclient", - "version": "1.0.0", - "type": "lib", - "description": "tusclient module of type lib" -} \ No newline at end of file