OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimAwsStreamFactory.h
Go to the documentation of this file.
1 //---
2 //
3 // License: MIT
4 //
5 // Description: OSSIM Amazon Web Services (AWS) stream factory.
6 //
7 //---
8 // $Id$
9 
10 #ifndef ossimAwsStreamFactory_HEADER
11 #define ossimAwsStreamFactory_HEADER 1
12 
15 #include <memory>
16 
17 namespace Aws
18 {
19  namespace S3
20  {
21  class S3Client;
22  }
23 }
24 
25 namespace ossim
26 {
28  {
29  public:
30  static AwsStreamFactory* instance();
31 
32  virtual ~AwsStreamFactory();
33 
34  virtual std::shared_ptr<ossim::istream>
35  createIstream(const std::string& connectionString,
36  const ossimKeywordlist& options,
37  std::ios_base::openmode openMode) const;
38 
39  virtual std::shared_ptr<ossim::ostream>
40  createOstream(const std::string& connectionString,
41  const ossimKeywordlist& options,
42  std::ios_base::openmode openMode) const;
43 
44  virtual std::shared_ptr<ossim::iostream>
45  createIOstream(const std::string& connectionString,
46  const ossimKeywordlist& options,
47  std::ios_base::openmode openMode) const;
48 
56  bool exists(const std::string& connectionString, bool& continueFlag) const;
57 
58  std::shared_ptr<Aws::S3::S3Client> getSharedS3Client()const{return m_client;}
59 
60  protected:
61 
65  bool isS3Url( const ossimFilename& file ) const;
66 
67  void initClient() const;
68 
71 
72  // mutable Aws::S3::S3Client* m_client;
73  mutable std::shared_ptr<Aws::S3::S3Client> m_client;
74 
76  };
77 }
78 
79 #endif /* #ifndef ossimAwsStreamFactory_HEADER */
80 
bool exists(const std::string &connectionString, bool &continueFlag) const
Methods to test if connection exists.
Represents serializable keyword/value map.
This code was derived from https://gist.github.com/mshockwave.
Definition: Barrier.h:8
virtual std::shared_ptr< ossim::istream > createIstream(const std::string &connectionString, const ossimKeywordlist &options, std::ios_base::openmode openMode) const
static AwsStreamFactory * m_instance
std::shared_ptr< Aws::S3::S3Client > getSharedS3Client() const
std::shared_ptr< Aws::S3::S3Client > m_client
static AwsStreamFactory * instance()
bool isS3Url(const ossimFilename &file) const
virtual std::shared_ptr< ossim::iostream > createIOstream(const std::string &connectionString, const ossimKeywordlist &options, std::ios_base::openmode openMode) const
virtual std::shared_ptr< ossim::ostream > createOstream(const std::string &connectionString, const ossimKeywordlist &options, std::ios_base::openmode openMode) const