irbis

package
v0.0.0-...-28c4435 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LOGICALLY_DELETED       = 1   // Запись логически удалена
	PHYSICALLY_DELETED      = 2   // Запись физически удалена
	ABSENT                  = 4   // Запись отсутствует
	NON_ACTUALIZED          = 8   // Запись не актуализирована
	NEW_RECORD              = 16  // Первый экземпляр записи
	LAST_VERSION            = 32  // Последняя версия записи
	LOCKED_RECORD           = 64  // Запись заблокирована на ввод
	AUTOIN_ERROR            = 128 // Ошибка в Autoin.gbl
	FULLTEXT_NOT_ACTUALIZED = 256 // Полный текст не актуализирован

	ALL_FORMAT       = "&uf('+0')" // Полные данные по полям
	BRIEF_FORMAT     = "@brief"    // Краткое библиографическое описание
	IBIS_FORMAT      = "@ibiskw_h" // Формат IBIS (старый)
	INFO_FORMAT      = "@info_w"   // Информационный формат
	OPTIMIZED_FORMAT = "@"         // Оптимизированный формат

	KEYWORD_PREFIX    = "K="  // Ключевые слова
	AUTHOR_PREFIX     = "A="  // Индивидуальный автор, редактор, составитель
	COLLECTIVE_PREFIX = "M="  // Коллектив или мероприятие
	TITLE_PREFIX      = "T="  // Заглавие
	INVENTORY_PREFIX  = "IN=" // Инвентарный номер, штрих-код или радиометка
	INDEX_PREFIX      = "I="  // Шифр документа в базе

	LOGIC_OR                = 0 // Только ИЛИ
	LOGIC_OR_AND            = 1 // ИЛИ и И
	LOGIC_OR_AND_NOT        = 2 // ИЛИ, И, НЕТ (по умолчанию)
	LOGIC_OR_AND_NOT_FIELD  = 3 // ИЛИ, И, НЕТ, И (в поле)
	LOGIC_OR_AND_NOT_PHRASE = 4 // ИЛИ, И, НЕТ, И (в поле), И (фраза)

	ADMINISTRATOR = "A" // Адмнистратор
	CATALOGER     = "C" // Каталогизатор
	ACQUSITIONS   = "M" // Комплектатор
	READER        = "R" // Читатель
	CIRCULATION   = "B" // Книговыдача
	BOOKLAND      = "B" // Книговыдача
	PROVISITON    = "K" // Книгообеспеченность
	JAVA_APPLET   = "J" // Java апплет

	ADD_FIELD        = "ADD"
	DELETE_FIELD     = "DEL"
	REPLACE_FIELD    = "REP"
	CHANGE_FIELD     = "CHA"
	CHANGE_WITH_CASE = "CHAC"
	DELETE_RECORD    = "DELR"
	UNDELETE_RECORD  = "UNDELR"
	CORRECT_RECORD   = "CORREC"
	CREATE_RECORD    = "NEWMFN"
	EMPTY_RECORD     = "EMPTY"
	UNDO_RECORD      = "UNDOR"
	GBL_END          = "END"
	GBL_IF           = "IF"
	GBL_FI           = "FI"
	GBL_ALL          = "ALL"
	GBL_REPEAT       = "REPEAT"
	GBL_UNTIL        = "UNTIL"
	PUTLOG           = "PUTLOG"

	IRBIS_DELIMITER = "\x1F\x1E" // Разделитель строк в ИРБИС
	SHORT_DELIMITER = "\x1E"     // Короткая версия разделителя строк

)
View Source
const FirstDelimiter = "\x1F"
View Source
const FullDelimiter = "\x1F\x1E"
View Source
const InvertedBlockSize = 2050048
View Source
const IsoFieldDelimiter = byte(0x1E)
View Source
const IsoMarkerLength = 24
View Source
const IsoRecordDelimiter = byte(0x1D)
View Source
const IsoSubfieldDelimiter = byte(0x1F)
View Source
const MaxTermSize = 255
View Source
const MstControlRecordSize = 36 // Размер управляющей записи в байтах.
View Source
const NodeLength = 2048
View Source
const NodeRecordSize = 2048
View Source
const SecondDelimiter = "\x1E"
View Source
const XrfRecordSize = 12

Variables

This section is empty.

Functions

func DescribeError

func DescribeError(code int) string

func DosToIrbis

func DosToIrbis(text string) string

func FromAnsi

func FromAnsi(buffer []byte) string

func GetXrfOffset

func GetXrfOffset(mfn int) int64

func IrbisToDos

func IrbisToDos(text string) string

func IrbisToLines

func IrbisToLines(text string) []string

func LeftPad

func LeftPad(s string, n int) string

func LinesToIrbis

func LinesToIrbis(lines []string) string

func NeedWrap

func NeedWrap(text string) bool

func ParseInt32

func ParseInt32(buffer []byte) (result int)

func PickOne

func PickOne(lines ...string) string

func ReadInt16

func ReadInt16(reader io.Reader) (result int16)

ReadInt16 считывает из потока короткое целое в сетевом формате ИРБИС64.

func ReadInt32

func ReadInt32(reader io.Reader) (result int32)

ReadInt32 считывает из потока целое число в сетевом формате ИРБИС64.

func ReadInt64

func ReadInt64(reader io.Reader) (result int64)

ReadInt64 считывает из потока длинное целое в сетевом формате ИРБИС64.

func RightPad

func RightPad(s string, n int) string

func SameRune

func SameRune(left, right rune) bool

func SameString

func SameString(left, right string) bool

func SplitLines

func SplitLines(text string) []string

func ToAnsi

func ToAnsi(text string) []byte

func Wrap

func Wrap(text string) string

Types

type ClientInfo

type ClientInfo struct {
	// Number порядковый номер.
	Number string

	// IPAddress Адрес клиента.
	IPAddress string

	// Port Порт клиента.
	Port string

	// Name Логин
	Name string

	// Id Идентификатор клиентской программы
	// (просто уникальное число).
	Id string

	// Workstation Клиентский АРМ.
	Workstation string

	// Registered Момент подключения к серверу.
	Registered string

	// Acknowledged Подследнее подтверждение, посланное серверу.
	Acknowledged string

	// LastCommand Последняя команда, посланная серверу.
	LastCommand string

	// CommandNumber Номер последней команлы.
	CommandNumber string
}

ClientInfo Информация о клиенте, подключенном к серверу ИРБИС (не обязательно о текущем).

func (*ClientInfo) Parse

func (client *ClientInfo) Parse(lines []string)

Parse Разбор ответа сервера.

func (*ClientInfo) String

func (client *ClientInfo) String() string

type ClientQuery

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

ClientQuery формирует клиентский запрос из запрашиваемых элементов (строк и их фрагментов).

func NewClientQuery

func NewClientQuery(connection *Connection, command string) *ClientQuery

NewClientQuery формирует заголовок клиентского запроса.

func (*ClientQuery) Add

func (query *ClientQuery) Add(value int) *ClientQuery

Add добавляет в запрос целое число.

func (*ClientQuery) AddAnsi

func (query *ClientQuery) AddAnsi(text string) *ClientQuery

AddAnsi добавляет в запрос строку в кодировке ANSI.

func (*ClientQuery) AddFormat

func (query *ClientQuery) AddFormat(format string) bool

AddFormat добавляет строку формата, предварительно подготовив её. Также добавляется перевод строки.

func (*ClientQuery) AddUtf

func (query *ClientQuery) AddUtf(text string) *ClientQuery

AddUtf добавляет в запрос строку в кодировке UTF-8.

func (*ClientQuery) Encode

func (query *ClientQuery) Encode() [][]byte

Encode выдает сетевой пакет, который нужно отправить серверу.

func (*ClientQuery) NewLine

func (query *ClientQuery) NewLine() *ClientQuery

NewLine добавляет в запрос перевод строки (\n).

type ClientSocket

type ClientSocket interface {
	TalkToServer(query *ClientQuery) *ServerResponse
}

type Connection

type Connection struct {
	// Host Адрес сервера (можно задавать как my.domain.com,
	// так и 192.168.1.1).
	Host string

	// Port Порт сервера
	Port int

	// Username Логин пользователя. Регистр символов не учитывается.
	Username string

	// Password Пароль пользователя. Регистр символов учитывается.
	Password string

	// Database Имя текущей базы данных.
	Database string

	// Workstation Код АРМа.
	Workstation string

	// ClientId Идентификатор клиента. Задаётся автоматически
	// при подключении к серверу.
	ClientId int

	// QueryId Последовательный номер запроса к серверу.
	// Ведется автоматически
	QueryId int

	// ServerVersion Версия сервера
	// (становится доступна после подключения к нему).
	ServerVersion string

	// Interval Рекомендуемый интервал подключения, минуты.
	// Становится доступен после подключения к серверу.
	Interval int

	// Connected Признак подключения.
	Connected bool

	// Ini Серверный INI-файл (становится доступен после подключения).
	Ini *IniFile

	// Last error code
	LastError int
	// contains filtered or unexported fields
}

Connection Подключение к серверу ИРБИС64.

func NewConnection

func NewConnection() *Connection

NewConnection Конструктор, создает подключение с настройками по умолчанию.

func (*Connection) ActualizeDatabase

func (connection *Connection) ActualizeDatabase(database string) bool

ActualizeDatabase Актуализация всех неактуализированных записей в указанной базе данных.

func (*Connection) ActualizeRecord

func (connection *Connection) ActualizeRecord(database string, mfn int) bool

ActualizeRecord Актуализация записи с указанным кодом. Если запись уже актуализирована, ничего не меняется.

func (*Connection) Connect

func (connection *Connection) Connect() bool

Connect Подключение к серверу ИРБИС64. Если подключение уже установлено, ничего не меняется.

func (*Connection) CreateDatabase

func (connection *Connection) CreateDatabase(database string,
	description string, readerAccess bool) bool

CreateDatabase Создание базы данных.

func (*Connection) CreateDictionary

func (connection *Connection) CreateDictionary(database string) bool

CreateDictionary Создание словаря в указанной базе данных.

func (*Connection) DeleteDatabase

func (connection *Connection) DeleteDatabase(database string) bool

DeleteDatabase Удаление указанной базы данных.

func (*Connection) DeleteFile

func (connection *Connection) DeleteFile(fileName string)

DeleteFile Удаление на сервере указанного файла.

func (*Connection) DeleteRecord

func (connection *Connection) DeleteRecord(mfn int)

DeleteRecord Удаление записи по ее MFN.

func (*Connection) Disconnect

func (connection *Connection) Disconnect() bool

Disconnect Отключение от сервера. Если подключение не установлено, ничего не меняется.

func (*Connection) Execute

func (connection *Connection) Execute(query *ClientQuery) *ServerResponse

Execute Отправка клиентского запроса на сервер и получение ответа от него.

func (*Connection) ExecuteAnyCommand

func (connection *Connection) ExecuteAnyCommand(command string, params ...string) bool

ExecuteAnyCommand Выполнение на сервере произвольной команды с опциональными параметрами в кодировке ANSI.

func (*Connection) FailOnError

func (connection *Connection) FailOnError()

FailOnError Завершение программы с ошибкой, если код возврата последней операции меньше нуля.

func (*Connection) FormatMfn

func (connection *Connection) FormatMfn(format string, mfn int) string

FormatMfn Форматирование записи с указанным MFN.

func (*Connection) FormatRecord

func (connection *Connection) FormatRecord(format string, record *MarcRecord) string

FormatRecord Форматирование записи в клиентском представлении.

func (*Connection) FormatRecords

func (connection *Connection) FormatRecords(format string, list []int) (result []string)

FormatRecords Расформатирование нескольких записей.

func (*Connection) GetDatabaseInfo

func (connection *Connection) GetDatabaseInfo(database string) *DatabaseInfo

GetDatabaseInfo Получение информации об указанной базе данных.

func (*Connection) GetMaxMfn

func (connection *Connection) GetMaxMfn(database string) int

GetMaxMfn Получение максимального MFN для указанной базы данных.

func (*Connection) GetRecordPostings

func (connection *Connection) GetRecordPostings(mfn int, prefix string) (result []TermPosting)

Get term postings for specified MFN and prefix

func (*Connection) GetServerStat

func (connection *Connection) GetServerStat() (result ServerStat)

Получение статистики с сервера.

func (*Connection) GetServerVersion

func (connection *Connection) GetServerVersion() (result VersionInfo)

GetServerVersion Получение версии сервера.

func (*Connection) GetUserList

func (connection *Connection) GetUserList() (result []UserInfo)

GetUserList Получение списка пользователей с сервера.

func (*Connection) GlobalCorrection

func (connection *Connection) GlobalCorrection(settings *GblSettings) (result []string)

GlobalCorrection Глобальная корректировка.

func (*Connection) ListDatabases

func (connection *Connection) ListDatabases(specification string) (result []DatabaseInfo)

ListDatabases Получение списка баз данных с сервера.

func (*Connection) ListFiles

func (connection *Connection) ListFiles(specifications ...string) (result []string)

ListFiles Получение списка файлов на сервере.

func (*Connection) ListProcesses

func (connection *Connection) ListProcesses() (result []ProcessInfo)

ListProcesses Получение списка серверных процессов

func (*Connection) ListTerms

func (connection *Connection) ListTerms(prefix string) (result []string)

ListTerms Получение списка терминов с указанным префиксом.

func (*Connection) NoOp

func (connection *Connection) NoOp() bool

NoOp Пустая операция. Используется для периодического подтверждения подключения клиента.

func (*Connection) ParseConnectionString

func (connection *Connection) ParseConnectionString(connectionString string)

ParseConnectionString Разбор строки подключения.

func (*Connection) PrintTable

func (connection *Connection) PrintTable(definition *TableDefinition) (result string)

func (*Connection) ReadBinaryFile

func (connection *Connection) ReadBinaryFile(specification string) []byte

ReadBinaryFile Чтение двоичного файла с сервера.

func (*Connection) ReadIniFile

func (connection *Connection) ReadIniFile(specification string) *IniFile

ReadIniFile Чтение INI-файла с сервера.

func (*Connection) ReadMenuFile

func (connection *Connection) ReadMenuFile(specification string) *MenuFile

ReadMenuFile Чтение MNU-файла с сервера.

func (*Connection) ReadOptFile

func (connection *Connection) ReadOptFile(specification string) (result *OptFile)

ReadOptFile Чтение OPT-файла с сервера.

func (*Connection) ReadParFile

func (connection *Connection) ReadParFile(specification string) (result *ParFile)

ReadParFile Чтение PAR-файла с сервера

func (*Connection) ReadPostings

func (connection *Connection) ReadPostings(parameters *PostingParameters) (result []TermPosting)

ReadPostings Считывание постингов из поискового индекса.

func (*Connection) ReadRawRecord

func (connection *Connection) ReadRawRecord(mfn int) *RawRecord

ReadRawRecord Чтение указанной записи в "сыром" виде.

func (*Connection) ReadRecord

func (connection *Connection) ReadRecord(mfn int) *MarcRecord

ReadRecord Чтение записи по ее MFN.

func (*Connection) ReadRecordVersion

func (connection *Connection) ReadRecordVersion(mfn, version int) *MarcRecord

ReadRecordVersion Чтение указанной версии записи.

func (*Connection) ReadRecords

func (connection *Connection) ReadRecords(mfnList []int) (result []MarcRecord)

ReadRecords Чтение с сервера нескольких записей.

func (*Connection) ReadSearchScenario

func (connection *Connection) ReadSearchScenario(specification string) (result []SearchScenario)

ReadSearchScenario Загрузка сценариев поиска с сервера.

func (*Connection) ReadTerms

func (connection *Connection) ReadTerms(startTerm string, number int) []TermInfo

ReadTerms Простое получение терминов поискового словаря.

func (*Connection) ReadTermsEx

func (connection *Connection) ReadTermsEx(parameters *TermParameters) (result []TermInfo)

ReadTermsEx Получение терминов поискового словаря.

func (*Connection) ReadTextFile

func (connection *Connection) ReadTextFile(specification string) string

ReadTextFile Чтение текстового файла с сервера.

func (*Connection) ReadTextLines

func (connection *Connection) ReadTextLines(specification string) []string

ReadTextLines Чтение текстового файла в виде слайса строк.

func (*Connection) ReadTreeFile

func (connection *Connection) ReadTreeFile(specification string) (result *TreeFile)

ReadTreeFile Чтение TRE-файла с сервера.

func (*Connection) ReloadDictionary

func (connection *Connection) ReloadDictionary(database string) (result bool)

ReloadDictionary Пересоздание словаря для указанной базы данных.

func (*Connection) ReloadMasterFile

func (connection *Connection) ReloadMasterFile(database string) (result bool)

ReloadMasterFile Пересоздание мастер-файла для указанной базы данных.

func (*Connection) RestartServer

func (connection *Connection) RestartServer() (result bool)

RestartServer Перезапуск сервера (без утери подключенных клиентов).

func (*Connection) Search

func (connection *Connection) Search(expression string) []int

Search Простой поиск записей (возвращается не более 32 тыс. записей).

func (*Connection) SearchAll

func (connection *Connection) SearchAll(expression string) (result []int)

SearchAll Поиск всех записей (даже если их окажется больше 32 тыс.).

func (*Connection) SearchCount

func (connection *Connection) SearchCount(expression string) int

SearchCount Определение количества записей, соответствующих поисковому выражению.

func (*Connection) SearchEx

func (connection *Connection) SearchEx(parameters *SearchParameters) []FoundLine

SearchEx Расширенный поиск записей.

func (*Connection) SearchRead

func (connection *Connection) SearchRead(expression string, limit int) (result []MarcRecord)

SearchRead Поиск записей с их одновременным считыванием.

func (*Connection) SearchSingleRecord

func (connection *Connection) SearchSingleRecord(expression string) *MarcRecord

SearchSingleRecord Поиск и считывание одной записи, соответствующей выражение. Если таких записей больше одной, то будет считана любая из них. Если таких записей нет, будет возвращен nil.

func (*Connection) ToConnectionString

func (connection *Connection) ToConnectionString() string

ToConnectionString Выдача строки подключения для текущего соеденения (соединение не обязательно должно быть установлено).

func (*Connection) TruncateDatabase

func (connection *Connection) TruncateDatabase(database string) bool

TruncateDatabase Опустошение указанной базы данных.

func (*Connection) UndeleteRecord

func (connection *Connection) UndeleteRecord(mfn int) *MarcRecord

UndeleteRecord Восстановление записи по ее MFN.

func (*Connection) UnlockDatabase

func (connection *Connection) UnlockDatabase(database string) bool

UnlockDatabase Разблокирование указанной базы данных.

func (*Connection) UnlockRecords

func (connection *Connection) UnlockRecords(database string,
	mfnList []int) bool

UnlockRecords Разблокирование перечисленных записей.

func (*Connection) UpdateIniFile

func (connection *Connection) UpdateIniFile(lines []string) bool

UpdateIniFile Обновление строк серверного INI-файла для текущего пользователя.

func (*Connection) UpdateUserList

func (connection *Connection) UpdateUserList(users []UserInfo) bool

UpdateUserList Обновление списка пользователей на сервере.

func (*Connection) WriteRawRecord

func (connection *Connection) WriteRawRecord(record *RawRecord) int

WriteRawRecord Сохранение на сервере "сырой" записи.

func (*Connection) WriteRecord

func (connection *Connection) WriteRecord(record *MarcRecord) int

WriteRecord Сохранение записи на сервере.

func (*Connection) WriteRecords

func (connection *Connection) WriteRecords(records []MarcRecord) bool

WriteRecords Сохранение нескольких записей на сервере (могут относиться к разным базам).

func (*Connection) WriteTextFile

func (connection *Connection) WriteTextFile(specification, text string) bool

WriteTextFile Сохранение текстового файла на сервере.

type DatabaseInfo

type DatabaseInfo struct {
	Name                     string // Name Имя базы данных.
	Description              string // Description Описание базы данных в произвольной форме.
	MaxMfn                   int    // MaxMfn Максимальный MFN.
	LogicallyDeletedRecords  []int  // LogicallyDeletedRecords Логически удаленные записи.
	PhysicallyDeletedRecords []int  // PhysicallyDeletedRecords Физически удаленные записи.
	NonActualizedRecords     []int  // NonActualizedRecords Неактуализированные записи.
	LockedRecords            []int  // LockedRecords Заблокированные записи.
	DatabaseLocked           bool   // DatabaseLocked Признак блокировки базы данных в целом.
	ReadOnly                 bool   // ReadOnly База только для чтения
}

DatabaseInfo Информация о базе данных ИРБИС.

func ParseMenu

func ParseMenu(menu *MenuFile) (result []DatabaseInfo)

func (*DatabaseInfo) Parse

func (db *DatabaseInfo) Parse(lines []string)

Parse Разбор ответа сервера (см. GetDatabaseInfo)

func (*DatabaseInfo) String

func (db *DatabaseInfo) String() string

type DirectAccess

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

DirectAccess осуществляет прямой доступ к базам данных.

func OpenDatabase

func OpenDatabase(filename string) (result *DirectAccess, err error)

OpenDatabase открывает базу данных для чтения.

func (*DirectAccess) Close

func (access *DirectAccess) Close()

Close закрывает базу данных.

func (*DirectAccess) GetMaxMfn

func (access *DirectAccess) GetMaxMfn() int

GetMaxMfn получает максимальный MFN для данной базы.

func (*DirectAccess) ReadRawRecord

func (access *DirectAccess) ReadRawRecord(mfn int) (result *MstRecord, err error)

ReadRawRecord считывает запись в сыром виде

func (*DirectAccess) ReadRecord

func (access *DirectAccess) ReadRecord(mfn int) (result *MarcRecord, err error)

ReadRecord считывает и декодирует запись.

type FoundLine

type FoundLine struct {
	Mfn         int
	Description string
}

type GblSettings

type GblSettings struct {
	// Actualize Актуализировать записи?
	Actualize bool

	// Autoin Запускать autoing.gbl?
	Autoin bool

	// Database Имя базы данных.
	Database string

	// Filename Имя файла.
	Filename string

	// FirstRecord MFN первой записи.
	FirstRecord int

	// FormalControl Применять формальный контроль?
	FormalControl bool

	// MaxMfn Максимальный MFN.
	MaxMfn int

	// MfnList Список MFN для обработки.
	MfnList []int

	// MinMfn Минимальный MFN.
	MinMfn int

	// NumberOfRecords Число обрабатываемых записей.
	NumberOfRecords int

	// SearchExpression Поисковое выражение.
	SearchExpression string

	// Statements Список операторов
	Statements []GblStatement
}

GblSettings Установки для глобальной корректировки.

type GblStatement

type GblStatement struct {
	// Command Команда, например, ADD или DEL.
	Command string

	// Parameter1 Первый параметр, как правило,
	// спецификация поля/подполя.
	Parameter1 string

	// Parameter2 Второй параметр, как правило,
	// спецификация повторения.
	Parameter2 string

	// Format1 Первый формат, например, выражение для замены.
	Format1 string

	// Format2 Второй формат, например, заменяющее выражение.
	Format2 string
}

GblStatement Оператор глобальной корректировки с параметрами.

func (*GblStatement) Encode

func (statement *GblStatement) Encode(delimiter string) string

func (*GblStatement) String

func (statement *GblStatement) String() string

type IfpControlRecord

type IfpControlRecord struct {
	NextOffsetLow  int32
	NextOffsetHigh int32
	NodeBlockCount int32
	LeafBlockCount int32
	Reserved       int32
}

type IfpFile

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

IfpFile - обёртка для инвертированного файла.

func OpenIfpFile

func OpenIfpFile(filename string) (result *IfpFile, err error)

OpenIfpFile открывает файлы IFP, L01, N01

func (*IfpFile) Close

func (ifp *IfpFile) Close()

Close закрывает файлы IFP, L01, N01.

type IfpRecord

type IfpRecord struct {
	Leader IfpRecordLeader
	Links  []TermLink
}

type IfpRecordLeader

type IfpRecordLeader struct {
	LowOffset      int32
	HighOffset     int32
	TotalLinkCount int32
	BlockLinkCount int32
	Capacity       int32
}

type IniFile

type IniFile struct {
	Sections []IniSection
}

func NewIniFile

func NewIniFile() *IniFile

func (*IniFile) FindSection

func (file *IniFile) FindSection(name string) *IniSection

func (*IniFile) GetOrCreateSection

func (file *IniFile) GetOrCreateSection(name string) *IniSection

func (*IniFile) GetValue

func (file *IniFile) GetValue(sectionName, key, defaultValue string) string

func (*IniFile) Parse

func (file *IniFile) Parse(lines []string)

func (*IniFile) SetValue

func (file *IniFile) SetValue(sectionName, key, value string)

func (*IniFile) String

func (file *IniFile) String() string

type IniLine

type IniLine struct {
	Key   string
	Value string
}

func (*IniLine) String

func (line *IniLine) String() string

type IniSection

type IniSection struct {
	Name  string
	Lines []IniLine
}

func (*IniSection) Find

func (section *IniSection) Find(key string) *IniLine

func (*IniSection) GetValue

func (section *IniSection) GetValue(key, defaultValue string) string

func (*IniSection) Remove

func (section *IniSection) Remove(key string)

func (*IniSection) SetValue

func (section *IniSection) SetValue(key, value string)

func (*IniSection) String

func (section *IniSection) String() string

type MarcRecord

type MarcRecord struct {
	// Database Имя базы данных, в которой хранится запись.
	Database string

	// Mfn MFN записи.
	Mfn int

	// Version Версия записи.
	Version int

	// Status Статус записи.
	Status int

	// Fields Поля записи.
	Fields []*RecordField
}

MarcRecord Библиографическая запись. Составная единица базы данных. Состоит из произвольного количества полей.

func NewMarcRecord

func NewMarcRecord() *MarcRecord

NewMarcRecord Конструктор записи.

func ReadIsoRecord

func ReadIsoRecord(reader io.Reader, decoder func([]byte) string) *MarcRecord

func (*MarcRecord) Add

func (record *MarcRecord) Add(tag int, value string) *RecordField

Add Добавление поля в запись.

func (*MarcRecord) AddNonEmpty

func (record *MarcRecord) AddNonEmpty(tag int, value string) *MarcRecord

AddNonEmpty добавляет в запись непустое поле.

func (*MarcRecord) Clear

func (record *MarcRecord) Clear()

Clear Очистка записи (удаление всех полей).

func (*MarcRecord) Clone

func (record *MarcRecord) Clone() *MarcRecord

Clone клонирует запись со всеми полями.

func (*MarcRecord) Decode

func (record *MarcRecord) Decode(lines []string)

Decode Декодирование записи из протокольного представления.

func (*MarcRecord) Encode

func (record *MarcRecord) Encode(delimiter string) string

Encode Кодирование записи в протокольное представление.

func (*MarcRecord) ExportPlainText

func (record *MarcRecord) ExportPlainText(file *os.File) error

func (*MarcRecord) FM

func (record *MarcRecord) FM(tag int) string

FM Получение значения поля с указанной меткой. Если поле не найдено, возвращается пустая строка.

func (*MarcRecord) FMA

func (record *MarcRecord) FMA(tag int) (result []string)

FMA Получение слайса со значениями полей с указанной меткой.

func (*MarcRecord) FSM

func (record *MarcRecord) FSM(tag int, code rune) string

FSM Получение значения подполя с указанным кодом в поле с указанной меткой. Если поле или подполе не найдено, возвращается пустая строка.

func (*MarcRecord) FSMA

func (record *MarcRecord) FSMA(tag int, code rune) (result []string)

FSMA Получение слайса со значениями подполей с указанными меткой и кодом. Если подполя не найдены, возвращается слайс нулевой длины.

func (*MarcRecord) GetField

func (record *MarcRecord) GetField(tag, occurrence int) *RecordField

GetField Получение указанного повторения поля с указанной меткой. Если поле не найдено, возвращается nil.

func (*MarcRecord) GetFields

func (record *MarcRecord) GetFields(tag int) (result []*RecordField)

GetFields Получение слайса полей с указанной меткой.

func (*MarcRecord) GetFirstField

func (record *MarcRecord) GetFirstField(tag int) *RecordField

GetFirstField Получение первого вхождения поля с указанной меткой. Если такого поля нет, возвращается nil.

func (*MarcRecord) HaveField

func (record *MarcRecord) HaveField(tag int) bool

HaveField выясняет, есть ли в записи поле с указанной меткой.

func (*MarcRecord) InsertAt

func (record *MarcRecord) InsertAt(i int, tag int, value string) *RecordField

InsertAt вставляет поле в указанную позицию.

func (*MarcRecord) IsDeleted

func (record *MarcRecord) IsDeleted() bool

IsDeleted Запись удалена?

func (*MarcRecord) RemoveAt

func (record *MarcRecord) RemoveAt(i int) *MarcRecord

RemoveAt удаляет поле в указанной позиции.

func (*MarcRecord) RemoveField

func (record *MarcRecord) RemoveField(tag int) *MarcRecord

RemoveField удаляет все поля с указанной меткой.

func (*MarcRecord) Reset

func (record *MarcRecord) Reset()

Reset сбрасывает состояние записи, отвязывая её от базы данных. Поля при этом остаются нетронутыми.

func (*MarcRecord) SetField

func (record *MarcRecord) SetField(tag int, value string) *MarcRecord

SetField устанавливает значение первого повторения поля с указанной меткой. Если такого поля нет, оно создаётся.

func (*MarcRecord) SetSubfield

func (record *MarcRecord) SetSubfield(tag int, code rune, value string) *MarcRecord

SetSubfield устанавливает значение подполя первого повторения поля с указанной меткой. Если необходимые поля или подполе отсутствуют, они создаются.

func (*MarcRecord) String

func (record *MarcRecord) String() string

String Выдает текстовое представление записи.

func (*MarcRecord) ToPlainText

func (record *MarcRecord) ToPlainText() string
type MenuEntry struct {
	Code    string // Условный код
	Comment string // Комментарий к коду
}

MenuEntry представляет собой пару строк в MNU-файле.

func NewMenuEntry

func NewMenuEntry(code, comment string) *MenuEntry
func (entry *MenuEntry) String() string
type MenuFile struct {
	Entries []*MenuEntry
}
func (menu *MenuFile) Add(code, comment string) *MenuFile
func (menu *MenuFile) Clear() *MenuFile
func (menu *MenuFile) GetEntry(code string) *MenuEntry
func (menu *MenuFile) GetValue(code, defaultValue string) string
func (menu *MenuFile) Parse(lines []string)
func (menu *MenuFile) String() string

type MstControlRecord

type MstControlRecord struct {
	CtlMfn           int32 // Резерв.
	NextMfn          int32 // Номер, который будет назначен следующей созданной записи.
	NextPositionLow  int32 // Смещение свободного места в файле (младшая часть).
	NextPositionHigh int32 // Смещение свободного места в файле (старшая часть).
	MftType          int32 // Резерв.
	RecCnt           int32 // Резерв.
	Reserv1          int32 // Резерв.
	Reserv2          int32 // Резерв.
	Blocked          int32 // Индикатор блокировки базы данных.
}

MstControlRecord - управляющая запись MST-файла.

func (*MstControlRecord) NextPosition

func (control *MstControlRecord) NextPosition() int64

type MstDictionaryEntry

type MstDictionaryEntry struct {
	Tag      int32 // Метка поля.
	Position int32 // Смещение.
	Length   int32 // Длина данных.
}

MstDictionaryEntry - запись в словаре MST.

type MstField

type MstField struct {
	Tag  int32  // Метка поля.
	Text string // Значение поля (без деления на подполя).
}

MstField поле в MST-записи.

func (*MstField) Decode

func (field *MstField) Decode() *RecordField

Decode декодирует запись.

func (*MstField) String

func (field *MstField) String() string

type MstFile

type MstFile struct {
	Control MstControlRecord // Управляющая запись.
	// contains filtered or unexported fields
}

XrfFile - обёртка над MST-файлом.

func OpenMstFile

func OpenMstFile(filename string) (result *MstFile, err error)

OpenXrfFile открывает файл на чтение.

func (*MstFile) Close

func (mst *MstFile) Close()

Close закрывает файл.

func (*MstFile) ReadRecord

func (mst *MstFile) ReadRecord(position int64) (result *MstRecord, err error)

ReadRecord читает запись по указанному смещению

type MstLeader

type MstLeader struct {
	Mfn          int32 // Номер записи в файле документов.
	Length       int32 // Длина записи.
	PreviousLow  int32 // Ссылка на предыдущую версию записи (младшая часть).
	PreviousHigh int32 // Ссылка на предыдущую версию записи (старшая часть).
	Base         int32 // Смещенеи полей переменной длины.
	Nvf          int32 // Число полей в записи.
	Version      int32 // Номер версии записи.
	Status       int32 // Статус записи.
}

MstLeader - лидер MST-записи.

func (*MstLeader) PreviousOffset

func (leader *MstLeader) PreviousOffset() int64

type MstRecord

type MstRecord struct {
	Leader     MstLeader            // Лидер записи.
	Dictionary []MstDictionaryEntry // Словарь.
	Fields     []MstField           // Поля.
}

MstRecord - запись в MST-файле.

func (*MstRecord) Decode

func (record *MstRecord) Decode() *MarcRecord

Decode декодирует запись.

type NodeItem

type NodeItem struct {
	Length     int16
	KeyOffset  int16
	LowOffset  int32
	HighOffset int32
}

NodeItem Справочник в N01/L01 является таблицей, определяющей поисковый термин. Каждый ключ переменной длины, который есть в записи, представлен в справочнике одним входом, формат которого описывает данная структура.

type NodeLeader

type NodeLeader struct {
	Number     int32
	Previous   int32
	Next       int32
	TermCount  int32
	FreeOffset int32
}

NodeLeader - лидер записи в L01/N01-файле.

type NodeRecord

type NodeRecord struct {
	Leader NodeLeader
	Items  []NodeItem
}

NodeRecord - запись в L01/N01-файлах.

type OptFile

type OptFile struct {
	// WorksheetLength Длина рабочего листа.
	WorksheetLength int

	// WorksheetTag Метка поля рабочего листа.
	WorksheetTag int

	// Lines Строки с паттернами.
	Lines []*OptLine
}

OptFile OPT-файл -- файл оптимизации рабочих листов и форматов отображения.

func NewOptFile

func NewOptFile() *OptFile

func (*OptFile) GetWorksheet

func (opt *OptFile) GetWorksheet(record *MarcRecord) string

GetWorksheet Получение рабочего листа записи.

func (*OptFile) Parse

func (opt *OptFile) Parse(lines []string)

func (*OptFile) String

func (opt *OptFile) String() string

type OptLine

type OptLine struct {
	// Pattern Паттерн.
	Pattern string

	// Worksheet Соответствующий рабочий лист.
	Worksheet string
}

OptLine Строка OPT-файла.

func (*OptLine) Parse

func (opt *OptLine) Parse(text string) bool

func (*OptLine) String

func (opt *OptLine) String(width int) string

type ParFile

type ParFile struct {
	Xrf string // Xrf Путь к файлу XRF.
	Mst string // Mst Путь к файлу MST.
	Cnt string // Cnt Путь к файлу CNT.
	N01 string // N01 Путь к файлу N01.
	N02 string // N02 В ИРБИС64 не используется.
	L01 string // L01 Путь к файлу L01.
	L02 string // L02 В ИРБИС64 не используется.
	Ifp string // Ifp Путь к файлу IFP.
	Any string // Any Путь к файлу ANY.
	Pft string // Pft Путь к PFT-файлам.
	Ext string // Ext Расположение внешних объектов (поле 951). Параметр появился в версии 2012.
}

ParFile PAR-файл -- содержит пути к файлам базы данных ИРБИС.

func NewParFile

func NewParFile(mst string) *ParFile

func (*ParFile) Parse

func (par *ParFile) Parse(lines []string)

Parse Разбор ответа сервера.

func (*ParFile) String

func (par *ParFile) String() string

type PostingParameters

type PostingParameters struct {
	// Database База данных.
	Database string

	// FirstPosting Номер первого постинга. Отсчет от 1.
	FirstPosting int

	// Format Формат.
	Format string

	// NumberOfPostings Требуемое количество постингов
	NumberOfPostings int

	// Term Термин.
	Term string

	// ListOfTerms Список термов
	ListOfTerms []string
}

PostingParameters

func NewPostingParameters

func NewPostingParameters() *PostingParameters

type ProcessInfo

type ProcessInfo struct {
	// Number Просто порядковый номер в списке.
	Number string

	// IPAddress С каким клиентом взаимодействует.
	IPAddress string

	// Name Логин оператора.
	Name string

	// ClientId Идентификатор клиента.
	ClientId string

	// Workstation Тип АРМ.
	Workstation string

	// Started Время запуска
	Started string

	// LastCommand Последняя выполненная (или выполняемая) команда.
	LastCommand string

	// CommandNumber Порядковый номер последней команды.
	CommandNumber string

	// ProcessId Идентификатор процесса.
	ProcessId string

	// State Состояние.
	State string
}

ProcessInfo Информация о запущенном на ИРБИС-сервере процессе.

func ParseProcesses

func ParseProcesses(lines []string) (result []ProcessInfo)

func (*ProcessInfo) String

func (process *ProcessInfo) String() string

type RawRecord

type RawRecord struct {
	Database string   // имя базы данных
	Mfn      int      // MFN записи
	Status   int      // Статус записи
	Version  int      // Версия записи
	Fields   []string // Слайс с нераскодированными полями
}

RawRecord запись с нераскодированными полями/подполями.

func NewRawRecord

func NewRawRecord() *RawRecord

NewRawRecord Конструктор записи.

func (*RawRecord) Decode

func (record *RawRecord) Decode(lines []string)

Decode декодирует запись из протокольного представления.

func (*RawRecord) Encode

func (record *RawRecord) Encode(delimiter string) string

Encode кодирует запись в протокольное представление.

func (*RawRecord) IsDeleted

func (record *RawRecord) IsDeleted() bool

IsDeleted Запись удалена?

func (*RawRecord) Reset

func (record *RawRecord) Reset()

Reset сбрасывает состояние записи, отвязывая её от базы данных. Поля при этом остаются нетронутыми.

func (*RawRecord) String

func (record *RawRecord) String() string

String Выдает текстовое представление записи.

type RecordField

type RecordField struct {
	// Tag Метка поля.
	Tag int

	// Value Значение поля до первого разделителя.
	Value string

	// Subfields Подполя.
	Subfields []*SubField
}

RecordField Поле записи. Состоит из метки и (опционального) значения. Может содержать произвольное количество подполей.

func NewRecordField

func NewRecordField(tag int, value string) *RecordField

NewRecordField Конструктор: создает поле с указанными меткой и значением.

func (*RecordField) Add

func (field *RecordField) Add(code rune, value string) *RecordField

Add Добавление подполя с указанными кодом и значением.

func (*RecordField) AddNonEmpty

func (field *RecordField) AddNonEmpty(code rune, value string) *RecordField

AddNonEmpty добавляет подполе, при условии, что его значение не пустое.

func (*RecordField) Clear

func (field *RecordField) Clear() *RecordField

Clear Очищает поле (удаляет значение и все подполя). Метка поля остаётся нетронутой.

func (*RecordField) Clone

func (field *RecordField) Clone() *RecordField

Clone клонирует поле со всеми подполями.

func (*RecordField) Decode

func (field *RecordField) Decode(text string)

Decode Декодирование поля из протокольного представления (метка, значение и подполя).

func (*RecordField) DecodeBody

func (field *RecordField) DecodeBody(body string)

DecodeBody декодирует только текст поля и подполей (без метки).

func (*RecordField) Encode

func (field *RecordField) Encode() string

Encode Кодирование поля в протокольное представление (метка, значение и подполя).

func (*RecordField) EncodeBody

func (field *RecordField) EncodeBody() string

EncodeBody Кодирование поля в протокольное представление (только значение и подполя).

func (*RecordField) GetEmbeddedFields

func (field *RecordField) GetEmbeddedFields() (result []*RecordField)

GetEmbeddedFields получает слайс встроенных полей из данного поля.

func (*RecordField) GetFirstSubField

func (field *RecordField) GetFirstSubField(code rune) *SubField

GetFirstSubField Возвращает первое вхождение подполя с указанным кодом. Если такого подполя нет, возвращается nil.

func (*RecordField) GetFirstSubFieldValue

func (field *RecordField) GetFirstSubFieldValue(code rune) string

GetFirstSubFieldValue Возвращает значение первого вхождения подполя с указанным кодом, либо пустую строку, если такого подполя нет.

func (*RecordField) GetValueOrFirstSubField

func (field *RecordField) GetValueOrFirstSubField() string

GetValueOrFirstSubField Выдаёт значение для ^*.

func (*RecordField) HaveSubField

func (field *RecordField) HaveSubField(code rune) bool

HaveSubField выясняет, есть ли подполе с указанным кодом.

func (*RecordField) InsertAt

func (field *RecordField) InsertAt(i int, code rune, value string) *RecordField

InsertAt вставляет подполе в указанную позицию.

func (*RecordField) RemoveAt

func (field *RecordField) RemoveAt(i int) *RecordField

RemoveAt удаляет подполе в указанной позиции.

func (*RecordField) RemoveSubfield

func (field *RecordField) RemoveSubfield(code rune) *RecordField

RemoveSubfield удаляет все подполя с указанным кодом.

func (*RecordField) ReplaceSubfield

func (field *RecordField) ReplaceSubfield(code rune, oldValue, newValue string) *RecordField

ReplaceSubfield заменяет значение подполя.

func (*RecordField) SetSubfield

func (field *RecordField) SetSubfield(code rune, value string) *RecordField

SetSubfield устанавливает значение первого повторения подполя с указанным кодом. Если value==nil, подполе удаляется.

func (*RecordField) String

func (field *RecordField) String() string

String Выдает текстовое представление поля со всеми его подполями.

func (*RecordField) Verify

func (field *RecordField) Verify() (result bool)

Verify Верификация поля со всеми его подполями.

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

Search expression builder.

func All

func All() (result Search)

func Author

func Author(values ...string) Search

func Bbk

func Bbk(values ...string) Search

func DocumentKind

func DocumentKind(values ...string) Search

func Equals

func Equals(prefix string, items ...interface{}) (result Search)

func Keyword

func Keyword(values ...string) Search

func Language

func Language(values ...string) Search

func Magazine

func Magazine(values ...string) Search

func Mhr

func Mhr(values ...string) Search

func Number

func Number(values ...string) Search

func Place

func Place(values ...string) Search

func Publisher

func Publisher(values ...string) Search

func Rzn

func Rzn(values ...string) Search

func Subject

func Subject(values ...string) Search

func Title

func Title(values ...string) Search

func Udc

func Udc(values ...string) Search

func Year

func Year(values ...string) Search

func (Search) And

func (query Search) And(items ...interface{}) Search

func (Search) Not

func (query Search) Not(value interface{}) Search

func (Search) Or

func (query Search) Or(items ...interface{}) Search

func (Search) SameField

func (query Search) SameField(items ...interface{}) Search

func (Search) SameRepeat

func (query Search) SameRepeat(items ...interface{}) Search

func (Search) String

func (query Search) String() string

type SearchParameters

type SearchParameters struct {
	Database        string
	FirstRecord     int
	Format          string
	MaxMfn          int
	MinMfn          int
	NumberOfRecords int
	Expression      string
	Sequential      string
	Filter          string
	IsUtf           bool
}

func NewSearchParameters

func NewSearchParameters() *SearchParameters

type SearchScenario

type SearchScenario struct {
	// Name Название поискового атрибута
	// (автор, инвентарный номер и т. д.).
	Name string

	// Prefix Префикс соответствующих терминов
	// в словаре (может быть пустым).
	Prefix string

	// DictionaryType Тип словаря для соответствующего поиска.
	DictionaryType int

	// MenuName Имя файла справочника.
	MenuName string

	// OldFormat Имя формата (без расширения).
	OldFormat string

	// Correction Способ корректировки по словарю.
	Correction string

	// Truncation Исходное положение переключателя "Усечение".
	Truncation string

	// Hint Текст подсказки/предупреждения.
	Hint string

	// ModByDicAuto Параметр пока не задействован.
	ModByDicAuto string

	// Logic Применимые логические операторы.
	Logic string

	// Advance Правила автоматического расширения поиска
	// на основе авторитетного файла или тезауруса.
	Advance string

	// Format Имя формата показа документов.
	Format string
}

SearchScenario Сценарий поиска.

func ParseScenarios

func ParseScenarios(ini *IniFile) (result []SearchScenario)

type ServerResponse

type ServerResponse struct {
	Command       string
	ClientId      int
	QueryId       int
	AnswerSize    int
	ReturnCode    int
	ServerVersion string
	// contains filtered or unexported fields
}

func NewServerResponse

func NewServerResponse(conn net.Conn) *ServerResponse

func (*ServerResponse) CheckReturnCode

func (response *ServerResponse) CheckReturnCode(allowed ...int) bool

func (*ServerResponse) GetLine

func (response *ServerResponse) GetLine() []byte

func (*ServerResponse) GetReturnCode

func (response *ServerResponse) GetReturnCode() int

func (*ServerResponse) ReadAnsi

func (response *ServerResponse) ReadAnsi() string

func (*ServerResponse) ReadInteger

func (response *ServerResponse) ReadInteger() int

func (*ServerResponse) ReadRemainingAnsiLines

func (response *ServerResponse) ReadRemainingAnsiLines() []string

func (*ServerResponse) ReadRemainingAnsiText

func (response *ServerResponse) ReadRemainingAnsiText() string

func (*ServerResponse) ReadRemainingUtfLines

func (response *ServerResponse) ReadRemainingUtfLines() []string

func (*ServerResponse) ReadRemainingUtfText

func (response *ServerResponse) ReadRemainingUtfText() string

func (*ServerResponse) ReadUtf

func (response *ServerResponse) ReadUtf() string

type ServerStat

type ServerStat struct {
	// RunningClients Подключенные клиенты.
	RunningClients []ClientInfo

	// ClientCount Число клиентов, подключенных в текущий момент.
	ClientCount int

	// TotalCommandCount Общее количество команд,
	// исполненных сервером с момента запуска.
	TotalCommandCount int
}

ServerStat Статистика работы ИРБИС-сервера.

func (*ServerStat) Parse

func (stat *ServerStat) Parse(lines []string)

func (*ServerStat) String

func (stat *ServerStat) String() string

type SubField

type SubField struct {
	// Code Код подполя
	Code rune

	// Value Значение подполя
	Value string
}

SubField Подполе записи. Состоит из кода и значения.

func NewSubField

func NewSubField(code rune, value string) *SubField

NewSubField Конструктор, создает подполе с указанными кодом и значением.

func (*SubField) Clone

func (subfield *SubField) Clone() *SubField

Clone клонирует подполе.

func (*SubField) Decode

func (subfield *SubField) Decode(text string)

Decode Декодирование подполя из протокольного представления.

func (*SubField) Encode

func (subfield *SubField) Encode() string

Encode Кодирование подполя в протокольное представление.

func (*SubField) String

func (subfield *SubField) String() string

String Выдает текстовое представление подполя.

func (*SubField) Verify

func (subfield *SubField) Verify() bool

Verify Верификация подполя.

type TableDefinition

type TableDefinition struct {
	// Database Имя базы данных.
	Database string

	// Table Имя таблицы.
	Table string

	// Headers Заголовки таблицы.
	Headers []string

	// Mode Режим таблицы.
	Mode string

	// SearchQuery Поисковый запрос.
	SearchQuery string

	// MinMfn Минимальный MFN.
	MinMfn int

	// MaxMfn Максимальный MFN.
	MaxMfn int

	// SequentialQuery Запрос для последовательного поиска.
	SequentialQuery string

	// MfnList Список MFN, по которым строится таблица.
	MfnList []int
}

TableDefinition Данные для метода PrintTable

func (*TableDefinition) String

func (table *TableDefinition) String() string

type Tcp4ClientSocket

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

func NewTcp4ClientSocket

func NewTcp4ClientSocket(connection *Connection) *Tcp4ClientSocket

func (*Tcp4ClientSocket) TalkToServer

func (client *Tcp4ClientSocket) TalkToServer(query *ClientQuery) *ServerResponse

type TermInfo

type TermInfo struct {
	// Count Количество ссылок.
	Count int

	// Text Поисковый термин.
	Text string
}

TermInfo Информация о термине поискового словаря.

func ParseTerms

func ParseTerms(lines []string) (result []TermInfo)

ParseTerms Разбор ответа сервера, содержащего массив терминов.

func (*TermInfo) String

func (term *TermInfo) String() string
type TermLink struct {
	Mfn        int32
	Tag        int32
	Occurrence int32
	Index      int32
}

type TermParameters

type TermParameters struct {
	// Database Имя базы данных.
	Database string

	// NumberOfTerms Количество считываемых терминов.
	NumberOfTerms int

	// ReverseOrder Возвращать в обратном порядке?
	ReverseOrder bool

	// StartTerm Начальный термин.
	StartTerm string

	// Format Формат
	Format string
}

TermParameters Параметры для запроса терминов с сервера.

type TermPosting

type TermPosting struct {
	// Mfn MFN записи с искомым термином.
	Mfn int

	// Tag Метка поля с искомым термином.
	Tag int

	// Occurrence Номер повторения поля.
	Occurrence int

	// Count Количество повторений.
	Count int

	// Text Результат форматирования.
	Text string
}

TermPosting Постинг термина в поисковом индексе.

func ParsePostings

func ParsePostings(lines []string) (result []TermPosting)

func (*TermPosting) String

func (posting *TermPosting) String() string

type TreeFile

type TreeFile struct {
	Roots []TreeNode
}

func (*TreeFile) AddRoot

func (tree *TreeFile) AddRoot(value string) *TreeNode

func (*TreeFile) Parse

func (tree *TreeFile) Parse(lines []string)

type TreeNode

type TreeNode struct {
	Value    string
	Children []TreeNode
	// contains filtered or unexported fields
}

func (*TreeNode) Add

func (node *TreeNode) Add(value string) *TreeNode

func (*TreeNode) String

func (node *TreeNode) String() string

type UserInfo

type UserInfo struct {
	Number        string // номер по порядку в списке.
	Name          string // логин.
	Password      string // пароль.
	Cataloger     string // доступность АРМ "Каталогизатор".
	Reader        string // доступность АРМ "Читатель".
	Circulation   string // доступность АРМ "Книговыдача".
	Acquisitions  string // доступность АРМ "Комплектатор".
	Provision     string // доступность АРМ "Книгообеспеченность".
	Administrator string // доступность АРМ "Администратор".
}

Информация о зарегистрированном пользователе системы (по данным client_m.mnu).

func (*UserInfo) Encode

func (user *UserInfo) Encode() string

Encode формирует строковое представление пользователя.

func (*UserInfo) String

func (user *UserInfo) String() string

type VersionInfo

type VersionInfo struct {
	Organization     string
	Version          string
	MaxClients       int
	ConnectedClients int
}

func (*VersionInfo) Parse

func (version *VersionInfo) Parse(lines []string)

func (*VersionInfo) String

func (version *VersionInfo) String() string

type WsLine

type WsLine struct {
	Tag                string // Числовая метка поля.
	Title              string // Наименование поля.
	Repeatable         string // Повторяемость.
	Help               string // Индекс контекстной помощи.
	EditMode           string // Режим ввода.
	InputInfo          string // Дополнительная информация для расширенных средств ввода
	FormalVerification string // Формально-логический контроль
	Hint               string // Подсказка - текст помощи (инструкции), сопровождающий ввод в поле
	DefaultValue       string // Значение по умолчанию при создании новой записи
	Reserved           string // Используется при определенных режимах ввода
}

WsLine - одна строчка ввода в рабочем листе.

func (*WsLine) Parse

func (ws *WsLine) Parse(lines []string)

Parse разбирает элемент ввода.

type XrfFile

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

XrfFile - обёртка над XRF-файлом.

func OpenXrfFile

func OpenXrfFile(filename string) (result *XrfFile, err error)

OpenXrfFile открывает файл на чтение.

func (*XrfFile) Close

func (xrf *XrfFile) Close()

Close закрывает файл.

func (*XrfFile) ReadRecord

func (xrf *XrfFile) ReadRecord(mfn int) (result XrfRecord, err error)

type XrfRecord

type XrfRecord struct {
	Low    int32
	High   int32
	Status int32
}

XrfRecord содержит информацию о смещении записи и её статус.

func (*XrfRecord) Offset

func (xrf *XrfRecord) Offset() int64

Jump to

Keyboard shortcuts

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