cups

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleRequest

func HandleRequest(conn net.Conn, req Request, manager *Manager)

Types

type CUPSClientInterface added in v0.4.0

type CUPSClientInterface interface {
	GetPrinters(attributes []string) (map[string]ipp.Attributes, error)
	GetJobs(printer, class string, whichJobs string, myJobs bool, firstJobId, limit int, attributes []string) (map[int]ipp.Attributes, error)
	CancelJob(jobID int, purge bool) error
	PausePrinter(printer string) error
	ResumePrinter(printer string) error
	CancelAllJob(printer string, purge bool) error
	SendRequest(url string, req *ipp.Request, additionalResponseData io.Writer) (*ipp.Response, error)
}

type CUPSEvent

type CUPSEvent struct {
	Type string    `json:"type"`
	Data CUPSState `json:"data"`
}

type CUPSState

type CUPSState struct {
	Printers map[string]*Printer `json:"printers"`
}

type DBusSubscriptionManager added in v0.4.0

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

func NewDBusSubscriptionManager added in v0.4.0

func NewDBusSubscriptionManager(client CUPSClientInterface, baseURL string) *DBusSubscriptionManager

func (*DBusSubscriptionManager) Events added in v0.4.0

func (sm *DBusSubscriptionManager) Events() <-chan SubscriptionEvent

func (*DBusSubscriptionManager) Start added in v0.4.0

func (sm *DBusSubscriptionManager) Start() error

func (*DBusSubscriptionManager) Stop added in v0.4.0

func (sm *DBusSubscriptionManager) Stop()

type Job

type Job struct {
	ID          int       `json:"id"`
	Name        string    `json:"name"`
	State       string    `json:"state"`
	Printer     string    `json:"printer"`
	User        string    `json:"user"`
	Size        int       `json:"size"`
	TimeCreated time.Time `json:"timeCreated"`
}

type Manager

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

func NewManager

func NewManager() (*Manager, error)

func (*Manager) CancelJob

func (m *Manager) CancelJob(jobID int) error

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) GetJobs

func (m *Manager) GetJobs(printerName string, whichJobs string) ([]Job, error)

func (*Manager) GetPrinters

func (m *Manager) GetPrinters() ([]Printer, error)

func (*Manager) GetState

func (m *Manager) GetState() CUPSState

func (*Manager) PausePrinter

func (m *Manager) PausePrinter(printerName string) error

func (*Manager) PurgeJobs

func (m *Manager) PurgeJobs(printerName string) error

func (*Manager) ResumePrinter

func (m *Manager) ResumePrinter(printerName string) error

func (*Manager) Subscribe

func (m *Manager) Subscribe(id string) chan CUPSState

func (*Manager) Unsubscribe

func (m *Manager) Unsubscribe(id string)

type Printer

type Printer struct {
	Name        string `json:"name"`
	URI         string `json:"uri"`
	State       string `json:"state"`
	StateReason string `json:"stateReason"`
	Location    string `json:"location"`
	Info        string `json:"info"`
	MakeModel   string `json:"makeModel"`
	Accepting   bool   `json:"accepting"`
	Jobs        []Job  `json:"jobs"`
}

type Request

type Request struct {
	ID     int                    `json:"id,omitempty"`
	Method string                 `json:"method"`
	Params map[string]interface{} `json:"params,omitempty"`
}

type SubscriptionEvent added in v0.4.0

type SubscriptionEvent struct {
	EventName    string
	PrinterName  string
	JobID        int
	SubscribedAt time.Time
}

type SubscriptionManager added in v0.4.0

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

func NewSubscriptionManager added in v0.4.0

func NewSubscriptionManager(client CUPSClientInterface, baseURL string) *SubscriptionManager

func (*SubscriptionManager) Events added in v0.4.0

func (sm *SubscriptionManager) Events() <-chan SubscriptionEvent

func (*SubscriptionManager) Start added in v0.4.0

func (sm *SubscriptionManager) Start() error

func (*SubscriptionManager) Stop added in v0.4.0

func (sm *SubscriptionManager) Stop()

type SubscriptionManagerInterface added in v0.4.0

type SubscriptionManagerInterface interface {
	Start() error
	Stop()
	Events() <-chan SubscriptionEvent
}

type SuccessResult

type SuccessResult struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
}

Jump to

Keyboard shortcuts

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