avads_db_connector

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2025 License: MIT Imports: 15 Imported by: 0

README

avads_db_connector

Библиотека на языке Go для подключения и управления данными Сервера Архивирования AVADS

Установка

Используй go get для установки библиотеки

go get -u github.com/AVADS-Soft/avads_db_connector

Пример использования

package main

import (
	"lite_db_connector"
)

func main() {
    onn := avads_db_connectror.NewConnection("127.0.0.1", "7777","admin", "admin")
    errConnect := conn.Connect()
	if errConnect != nil {
		t.Fatal(errConnect)
	}

	bl, errGetBaseList := conn.GetBaseList()
    if errGetBaseList!=nil {
		t.Fatal(errGetBaseList)
    }

    for _, val := range *bl {
        ...
    }

    errAddBase := conn.AddBase(BaseT{
		Name:    "test tcp api",
		Comment: "test tcp api",
		Path:    "./db/test_tcp_api",
		Looping: avads_db_connector.LoopingT{
			Type: 0,
			Lt:   "",
		},
		DbSize:        "100m",
		FsType:        avads_db_connector.FS_FS,
		AutoAddSeries: true,
		AutoSave:      false,
	})
	if errAddBase != nil {
		log.Fatal(errAddBase)
	}

    errAddSer := conn.AddSeries("test tcp api", SeriesT{
		Name:        "LINT_single",
		Type:        types.LINT,
		Id:          0,
		Comment:     "",
		ViewTimeMod: 0,
		Looping:     avads_db_connector.LoopingT{},
		Class:       0,
	})
	if errAddSer != nil {
		log.Fatal(errAddSer)
	}

    baseOpenId := 1

    errOpen := conn.OpenBase(baseOpenId, "test tcp api")
	if errOpen != nil {
		log.Fatal(errOpen)
	}

    for i := 0; i < 10; i++ {
		errAdd := conn.DataAddRow(baseOpenId, 2, 0, time.Now().Unix(), 92, i)
		if errAdd != nil {
			t.Fatal(errAdd)
		}
	}

	errClose := conn.CloseBase(baseOpenId)
	if errClose != nil {
		log.Fatal(errClose)
	}
}

Documentation

Index

Constants

View Source
const (
	FS_FS        = "fs"    // Файл базы пишется единым сегментом
	FS_MULTIPART = "fs_mp" // Файл бары разбивается по кускам 1 гб
	FS_MEMORY    = "mem_fs"
)
View Source
const (
	LoopInherit  = 0
	LoopNone     = 1
	LoopDuration = 2
)
View Source
const (
	Disconnect            = 0
	BaseCreate            = 1
	BaseOpen              = 2
	BaseGetInfo           = 3
	BaseGetList           = 4
	BaseRemove            = 5
	BaseUpdate            = 6
	BaseClose             = 7
	SeriesCreate          = 8
	SeriesRemove          = 9
	SeriesUpdate          = 10
	SeriesGetAll          = 11
	SeriesGetInfo         = 12
	SeriesGetInfoById     = 34
	UserGetList           = 13
	UserGetInfo           = 14
	UserCreate            = 15
	UserRemove            = 16
	UserUpdate            = 17
	PropsGetList          = 18
	PropsGetInfo          = 19
	PropsSet              = 20
	DataGetBoundary       = 21
	DataGetCP             = 22
	DataGetFromCP         = 23
	DateGetRangeFromCP    = 24
	DateGetRangeDirection = 25
	DataAddRow            = 26
	DataDeleteRow         = 27
	DataDeleteRows        = 28
	DataAddRowCache       = 29
	DataGetValueAtTime    = 30
	DataMathFunc          = 31
	DataAddRows           = 32
	DataGetLastValue      = 33
	GetAddRowCacheErrors  = 35
	BaseRepair            = 36

	GroupAdd        = 40
	GroupUpdate     = 41
	GroupDelete     = 42
	GroupGetAll     = 43
	GroupGetRefs    = 44
	GroupAddRefs    = 45
	GroupRemoveRefs = 46
)
View Source
const (
	LoginGetKeys       = 0
	LoginValidPass     = 1
	RestoreSession     = 2
	GetProtocolVersion = 254
)

Variables

View Source
var OpenBaseList = map[int]string{}
View Source
var TryBaseList = map[int]string{}

Functions

This section is empty.

Types

type BaseT

type BaseT struct {
	Name             string   `json:"name"`               // Программное имя базы (должно быть уникальным)
	Comment          string   `json:"comment"`            // Комментарий к базе
	Path             string   `json:"path"`               // Физическое место расположение базы
	DataSize         int      `json:"data_size"`          // размер блока данных
	Status           int      `json:"status"`             // Статус базы
	Looping          LoopingT `json:"looping,omitempty"`  // Настройки зацикливания
	DbSize           string   `json:"db_size"`            // Строковое значение предельного размера базы "500gb"
	FsType           string   `json:"fs_type"`            // Тип файловой системы
	AutoAddSeries    bool     `json:"auto_add_series"`    // Автоматическое добавление рядов
	AutoSave         bool     `json:"auto_save"`          // Автоматически сохранять долго неиспользуемый кеш
	AutoSaveDuration string   `json:"auto_save_duration"` // Дельта времени для проверки устаревших данных
	AutoSaveInterval string   `json:"auto_save_interval"` // Время интервала для проверки неиспользованных данных
}

type BoundaryT

type BoundaryT struct {
	Min      int64
	Max      int64
	RowCount int
	StartCP  string
	EndCP    string
}

type CacheRowT

type CacheRowT struct {
	// contains filtered or unexported fields
}

type ConnectionT

type ConnectionT struct {
	sync.Mutex

	Address    string
	Port       string
	Login      string
	Pass       string
	SessionKey string
	TimeOut    time.Duration

	Reconnect ReconnectT
	// contains filtered or unexported fields
}

func NewConnection

func NewConnection(addr string, port string, login string, pass string) *ConnectionT

NewConnection создание нового подключения

func (*ConnectionT) AddBase

func (c *ConnectionT) AddBase(base BaseT) error

AddBase добавление новой базы

func (*ConnectionT) AddSeries

func (c *ConnectionT) AddSeries(baseName string, series SeriesT) error

AddSeries добавление нового временного ряда

func (*ConnectionT) Close

func (c *ConnectionT) Close() error

Close закрытие соединения

func (*ConnectionT) CloseBase

func (c *ConnectionT) CloseBase(id int) error

CloseBase закрытие базы

func (*ConnectionT) Connect

func (c *ConnectionT) Connect() error

func (*ConnectionT) DataAddRow

func (c *ConnectionT) DataAddRow(baseId int, seriesId int, class byte, t int64, q uint32, val interface{}) error

func (*ConnectionT) DataAddRowCache

func (c *ConnectionT) DataAddRowCache(baseId int, r RowsCacheT) (int, error)

func (*ConnectionT) DataAddRows

func (c *ConnectionT) DataAddRows(baseId int, r RowsCacheT) error

func (*ConnectionT) DataDeleteRow

func (c *ConnectionT) DataDeleteRow(baseId int, seriesId int, t int64) error

func (*ConnectionT) DataDeleteRows

func (c *ConnectionT) DataDeleteRows(baseId int, seriesId int, TimeStart int64, TimeEnd int64) (int, error)

func (*ConnectionT) DataGetBoundary

func (c *ConnectionT) DataGetBoundary(baseId int, seriesId int) (*BoundaryT, error)

func (*ConnectionT) DataGetCP

func (c *ConnectionT) DataGetCP(baseId int, seriesId int, t int64) (string, error)

func (*ConnectionT) DataGetFromCP

func (c *ConnectionT) DataGetFromCP(baseId int, cp string, direct byte, limit int, class int) (*RecWitchCP, error)

func (*ConnectionT) DataGetLastValue

func (c *ConnectionT) DataGetLastValue(baseId int, seriesId int, class int) (*RowT, error)

func (*ConnectionT) DataGetRangeDirection

func (c *ConnectionT) DataGetRangeDirection(baseId int, seriesId int, class int, direct byte, limit int, min int64, max int64, dpi int16) (*RecWitchCP, error)

func (*ConnectionT) DataGetRangeFromCP

func (c *ConnectionT) DataGetRangeFromCP(baseId int, cp string, direct byte, limit int, class int, min int64, max int64, dpi int16) (*RecWitchCP, error)

func (*ConnectionT) DataGetValueAtTime

func (c *ConnectionT) DataGetValueAtTime(baseId int, seriesId int, t int64, class int) (*RowT, error)

func (*ConnectionT) DataMathFunc

func (c *ConnectionT) DataMathFunc(baseId int, seriesId int, min int64, max int64, algorithm int) (any, error)

func (*ConnectionT) GetAddRowCacheErrors

func (c *ConnectionT) GetAddRowCacheErrors() ([]ErrorInfoT, error)

func (*ConnectionT) GetAllSeries

func (c *ConnectionT) GetAllSeries(baseName string) ([]*SeriesT, error)

GetAllSeries получение списка временных рядов

func (*ConnectionT) GetBase

func (c *ConnectionT) GetBase(name string) (*BaseT, error)

GetBase получение информации о базе

func (*ConnectionT) GetBaseList

func (c *ConnectionT) GetBaseList() (*[]BaseT, error)

GetBaseList получение списка баз

func (*ConnectionT) GetSeries

func (c *ConnectionT) GetSeries(baseName string, name string) (*SeriesT, error)

GetSeries получение информации о временном ряде

func (*ConnectionT) GetSeriesById

func (c *ConnectionT) GetSeriesById(baseName string, seriesId int) (*SeriesT, error)

GetSeriesById получение информации о временном ряде

func (*ConnectionT) GetStreamBuf

func (c *ConnectionT) GetStreamBuf() (*flow_buf.FlowBufT, error)

func (*ConnectionT) IsClose

func (c *ConnectionT) IsClose() bool

func (*ConnectionT) NewRows

func (c *ConnectionT) NewRows() RowsCacheT

func (*ConnectionT) OpenBase

func (c *ConnectionT) OpenBase(id int, name string) error

OpenBase подключение к базе

func (*ConnectionT) ReConnect

func (c *ConnectionT) ReConnect() error

func (*ConnectionT) RemoveBase

func (c *ConnectionT) RemoveBase(name string) error

RemoveBase удаление базы

func (*ConnectionT) RemoveSeries

func (c *ConnectionT) RemoveSeries(baseName string, seriesId int) error

RemoveSeries удаление временного ряда

func (*ConnectionT) UpdateBase

func (c *ConnectionT) UpdateBase(baseName string, base BaseT) error

UpdateBase обновление свойств базы

func (*ConnectionT) UpdateSeries

func (c *ConnectionT) UpdateSeries(baseName string, series SeriesT) error

UpdateSeries обновление свойств временного ряда

type ErrorInfoT

type ErrorInfoT struct {
	Number int
	Name   string
}

type LoopingT

type LoopingT struct {
	Type     byte          `json:"type"` // Type тип зацикливания
	Lt       string        `json:"lt"`   // Lt время жизни данных в формате 72h3m (max len 50)
	LifeTime time.Duration `json:"-"`
}

type LteDBInOutTCP

type LteDBInOutTCP struct {
	IsConnect bool
	// contains filtered or unexported fields
}

func (*LteDBInOutTCP) Close

func (l *LteDBInOutTCP) Close() error

func (*LteDBInOutTCP) GetBuff

func (l *LteDBInOutTCP) GetBuff(pck *[]byte, lenPack int32) (int, error)

GetBuff получения буфера из стрима указанной длинны

func (*LteDBInOutTCP) GetLenPacket

func (l *LteDBInOutTCP) GetLenPacket() (int32, error)

GetLenPacket получение длинны пакета из стрима данных

func (*LteDBInOutTCP) Init

func (l *LteDBInOutTCP) Init(Address string, Port string) error

func (*LteDBInOutTCP) Read

func (l *LteDBInOutTCP) Read(p []byte) (int, error)

func (*LteDBInOutTCP) SetTimeout

func (l *LteDBInOutTCP) SetTimeout(tm time.Duration)

func (*LteDBInOutTCP) Write

func (l *LteDBInOutTCP) Write(p []byte) (int, error)

func (*LteDBInOutTCP) WritePacket

func (l *LteDBInOutTCP) WritePacket(buff *[]byte) (int, error)

type RecWitchCP

type RecWitchCP struct {
	Recs            []RowT
	StartCP         string
	EndCP           string
	HasContinuation bool
}

type ReconnectT

type ReconnectT struct {
	sync.Mutex
	ReConnectTime time.Duration
	TimeStamp     int64
	State         int64
}

type RowT

type RowT struct {
	T     int64
	Value []byte
	Q     []byte
}

type RowsCacheT

type RowsCacheT struct {
	// contains filtered or unexported fields
}

func (*RowsCacheT) Count

func (r *RowsCacheT) Count() int

func (*RowsCacheT) DataAddRow

func (r *RowsCacheT) DataAddRow(seriesId int64, class byte, t int64, q uint32, value interface{}) error

func (*RowsCacheT) Encode

func (r *RowsCacheT) Encode() error

func (*RowsCacheT) Len

func (r *RowsCacheT) Len() int

func (*RowsCacheT) Sort

func (r *RowsCacheT) Sort()

type SeriesT

type SeriesT struct {
	Name        string   `json:"name"`              // Программное имя ряда мах len (255)
	Type        int      `json:"type"`              // Тип параметра
	Id          int64    `json:"id"`                // Id ряда
	Comment     string   `json:"comment"`           // Комментарий к ряду max len (255)
	ViewTimeMod int      `json:"view_time_mod"`     // Тип отображения времени
	Looping     LoopingT `json:"looping,omitempty"` // Настройки зацикливания
	Class       byte     `json:"class"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL