/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// CLASS HEADER
#include <dali/devel-api/adaptor-framework/file-loader.h>
-
-#include <iostream>
+// EXTERNAL INCLUDES
#include <fstream>
+#include <iostream>
+
+// INTERNAL INCLUDES
+#include <dali/internal/adaptor-framework/common/file-loader-impl.h>
+#include <dali/internal/imaging/common/file-download.h>
namespace Dali
{
+namespace
+{
+// limit maximum image down load size to 50 MB
+const size_t MAXIMUM_DOWNLOAD_IMAGE_SIZE = 50 * 1024 * 1024;
+
+} // namespace
namespace FileLoader
{
-
-int ReadFile(const std::string& filename, Dali::Vector<char> & memblock, FileLoader::FileType fileType)
+int ReadFile(const std::string& filename, Dali::Vector<char>& memblock, FileLoader::FileType fileType)
{
- std::streampos size;
-
- return ReadFile( filename, size, memblock, fileType);
+ return Dali::Internal::Adaptor::ReadFile(filename, memblock, fileType);
}
-int ReadFile(const std::string& filename, std::streampos& fileSize, Dali::Vector<char> & memblock, FileLoader::FileType fileType)
+int ReadFile(const std::string& filename, std::streampos& fileSize, Dali::Vector<char>& memblock, FileLoader::FileType fileType)
{
- int errorCode = 0;
- std::ifstream * file;
-
-
- if( fileType == BINARY )
- {
- file = new std::ifstream (filename.c_str(), std::ios::in|std::ios::binary|std::ios::ate);
- }
- else if( fileType == TEXT )
- {
- file = new std::ifstream (filename.c_str(), std::ios::in|std::ios::ate);
- }
- else
- {
- return errorCode;
- }
-
- if( file->is_open() )
- {
- fileSize = file->tellg();
-
- memblock.Resize( fileSize );
-
- file->seekg (0, std::ios::beg);
- file->read( memblock.Begin(), fileSize );
- file->close();
-
- delete file;
-
- errorCode = 1;
- }
-
- return errorCode;
+ return Dali::Internal::Adaptor::ReadFile(filename, fileSize, memblock, fileType);
+ ;
}
-
std::streampos GetFileSize(const std::string& filename)
{
- std::streampos size = 0;
+ return Dali::Internal::Adaptor::GetFileSize(filename);
+}
- std::ifstream file (filename.c_str(), std::ios::in|std::ios::binary|std::ios::ate);
- if( file.is_open() )
- {
- size = file.tellg();
- file.close();
- }
- return size;
+bool DownloadFileSynchronously(const std::string& filename, Dali::Vector<uint8_t>& dataBuffer)
+{
+ size_t dataSize;
+ return TizenPlatform::Network::DownloadRemoteFileIntoMemory(filename, dataBuffer, dataSize, MAXIMUM_DOWNLOAD_IMAGE_SIZE);
}
-} //FileLoader
+} // namespace FileLoader
-} //Dali
+} // namespace Dali