
/*-----------------------------------------------------------------------------------------------*/
/* dbfiles_s3.h                                                                                  */
/* copyright (c) innovaphone 2026                                                                */
/*-----------------------------------------------------------------------------------------------*/

class IDbFilesS3 {
public:
    virtual ~IDbFilesS3() {};

    static IDbFilesS3 * Create(
        class UDbFilesS3 * const user,
        class IIoMux * const iomux,
        class ISocketProvider * const tcpSocketProvider,
        class ISocketProvider * const tlsSocketProvider,
        class IInstanceLog * const log,
        class IDns * const dns,
        class IDbFiles * dbfiles,

        const char * url,
        const char * usr,
        const char * pwd);

    virtual void Connect(const char * url) = 0;
    virtual void Start(ulong64 id, const char * file, size_t length) = 0;
    virtual void Close() = 0;

    char * usr;
    char * pwd;
};

class UDbFilesS3 {
public:
    virtual void S3ConnectComplete() = 0;
    virtual void S3Next() = 0;
    virtual void S3Closed() = 0;
};
