//
// Copyright 2019-2020 Nestybox, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

package domain

type FuseServerServiceIface interface {
	Setup(
		mp string,
		css ContainerStateServiceIface,
		ios IOServiceIface,
		hds HandlerServiceIface) error

	CreateFuseServer(serveCntr, stateCntr ContainerIface) error
	DestroyFuseServer(mp string) error
	DestroyFuseService()
	FuseServerCntrRegComplete(cntr ContainerIface) error
}

type FuseServerIface interface {
	Create() error
	Run() error
	Destroy() error
	MountPoint() string
	Unmount()
	InitWait() bool
	SetCntrRegComplete()
	IsCntrRegCompleted() bool
}
