# FMP

interface FMP

Является точкой входа во фрейморк FMP. Создаёт наследников FMPObject. Каждый раз, когда идёт обращение к свойству, создаётся новый объект. Стоит хранить их в переменных или доводить вызовы до build().

#### Since

21.04.01

#### See also

FMP.Builder

#### Samples

    import ru.fsight.fmp.FMP
    import ru.fsight.fmp.FMPFile
    import java.io.File
    fun main() {
       //sampleStart
       /*
     * Пример минимальной инициализации FMP.
     * Далее все параметры являются обязательными.
     */
    val fmp: FMP = FMP.Builder() // Создать конструктор FMP.
    	.api(FMP.API.V2) // Указать версию API сервера.
    	.address("https://HOST") // Адрес сервера платформы.
    	.environment("ENVIRONMENT") // Среда на сервере.
    	.project("PROJECT") // Проект внутри среды.
    	.username("USERNAME") // имя пользователя.
    	.deviceID("device_id") // Указать ID устройства.
    	.storage("/path/to/storage") // Указать рабочую директорию.
    	.build() // Создать FMP.
       //sampleEnd
    }

    import ru.fsight.fmp.FMP
    import ru.fsight.fmp.FMPFile
    import java.io.File
    fun main() {
       //sampleStart
       /*
     * Пример полной инициализации FMP.
     * Далее все обязательные и опциональные параметры.
     */
    val fmp: FMP = FMP.Builder() // Создать конструктор FMP.
    	.api(FMP.API.V2) // Указать версию API сервера.
    	.address("https://HOST") // Адрес сервера платформы.
    	.environment("ENVIRONMENT") // Среда на сервере.
    	.project("PROJECT") // Проект внутри среды.
    	.username("USERNAME") // имя пользователя.
    	.deviceID("device_id") // Указать ID устройства.
    	.storage("/path/to/storage") // Указать рабочую директорию.
    	.retryCount(10) // Повторять неудачные HTTP запросы 10 раз.
    	.retryInterval(6) // Повторять неудачные HTTP запросы каждые 6 секунд.
    	.certCheck(false) // Выключить проверку TLS сертификата сервера.
    	.cert(File("/path/to/cert.pem").readBytes()) // Указать путь к самоподписному сертификату сервера.
    	.headers(mapOf("Header" to "Value")) // Указать кастомные хедеры для каждого HTTP запроса.
    	.debug(true) // Включить дополнительное логирование в logcat.
    	.debugNoEncryption(true) // Выключить шифрование для отладки.
    	.build() // Создать FMP.
       //sampleEnd
    }

    import ru.fsight.fmp.FMP
    import ru.fsight.fmp.FMPFile
    import java.io.File
    fun main() {
       //sampleStart
       /*
     * Пример использования объектов FMP.
     */
    val builder1: FMPFile.Builder = fmp.file // Получить конструктор файла.
    val builder2: FMPFile.Builder = fmp.file // Получить новый конструктор файла.

    val file1: FMPFile = builder1.remote("file1").local("file1").build() // Получить файл 1.
    val file2: FMPFile = builder2.remote("file2").local("file2").build() // Получить файл 2.
       //sampleEnd
    }

## Types

API
Link copied to clipboard
enum API : Enum<FMP.API>

Версии API сервера FMP.

Builder
Link copied to clipboard
class Builder

Конструктор для FMP. Требуемые параметры: address, environment, project, api, deviceID, storage и username.

## Properties

database
Link copied to clipboard
abstract val database: FMPDatabase.Builder
file
Link copied to clipboard
abstract val file: FMPFile.Builder
log
Link copied to clipboard
abstract val log: FMPLog
push
Link copied to clipboard
abstract val push: FMPPush.Builder
query
Link copied to clipboard
abstract val query: FMPQuery.Builder
resource
Link copied to clipboard
abstract val resource: FMPResource.Builder
table
Link copied to clipboard
abstract val table: FMPTable.Builder
transaction
Link copied to clipboard
abstract val transaction: FMPTransaction.Builder
user
Link copied to clipboard
abstract val user: FMPUser
util
Link copied to clipboard
abstract val util: FMPUtil
web
Link copied to clipboard
abstract val web: FMPWeb.Builder