Host library for controlling a WiConnect enabled Wi-Fi module.

Dependents:   wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more

FileInterface.h

Committer:
dan_ackme
Date:
2014-08-11
Revision:
1:6ec9998427ad
Parent:
0:ea85c4bb5e1f
Child:
11:ea484e1b7fc4

File content as of revision 1:6ec9998427ad:

/*
 * Copyright 2014, ACKme Networks
 * All Rights Reserved.
 *
 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks;
 * the contents of this file may not be disclosed to third parties, copied
 * or duplicated in any form, in whole or in part, without the prior
 * written permission of ACKme Networks.
 */

#pragma once

#include "mbed.h"

#include "WiconnectTypes.h"
#include "types/FileList.h"


#define FILE_NAME_MAX_SIZE 96
#define FILE_MAKE_VERSION(major, minor, patch, rc) ((unsigned int)((major) << 27)|(unsigned int)((minor) << 21)|(unsigned int)((patch) << 8)|(unsigned int)((rc) << 0))
#define FILE_VERSION_ARGS(version) (unsigned int)((version >> 27) & 0x1F),(unsigned int)((version >> 21) & 0x3F),(unsigned int)((version >> 8) & 0x1FFF),(unsigned int)(version & 0xFF)


namespace wiconnect {


class FileInterface
{
public:
    WiconnectResult createFile(const ReaderFunc &reader, void *user, const char *name, uint32_t size, uint32_t version = 0, FileType type = FILE_TYPE_ANY, bool isEssential = false, int32_t checksum = -1);
    WiconnectResult openFile(File &file, const char *name);
    WiconnectResult deleteFile(const char *name);
    WiconnectResult deleteFile(const File &file);
    WiconnectResult listFiles(FileList &list, const char *name = NULL, FileType type = FILE_TYPE_ANY, uint32_t version = 0);

    static const char* fileVersionIntToStr(uint32_t version, bool verbose = true, char *buffer = NULL);
    static bool fileVersionStrToInt(const char *versionStr, uint32_t *versionIntPtr);
    static const char* fileTypeToStr(FileType type);
    static const char* fileFlagsToStr(FileFlags flags, char *buffer = NULL);

protected:
    FileInterface(Wiconnect *wiconnect);

    WiconnectResult processFileList(char *responseStr, FileList &list, const char *name, FileType type, uint32_t version);
private:
    Wiconnect *wiconnect;
};

}