Refactoring webp-loading and loader-webp
[platform/core/uifw/dali-adaptor.git] / dali / devel-api / adaptor-framework / file-loader.cpp
index 9403781..340b875 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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, Dali::Vector<uint8_t>& 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, memblock, fileType);
 }
 
+int ReadFile(const std::string& filename, std::streampos& fileSize, Dali::Vector<char>& memblock, FileLoader::FileType fileType)
+{
+  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