### ----------------------------------------------------
### -- LogP6
### -- Licenses: Artistic-2.0
### -- Authors: Mikhail Khorkov
### -- File: lib/LogP6/WriterConf.rakumod
### ----------------------------------------------------
use LogP6::Writer;

#| Factory object for Writer
role LogP6::WriterConf {
	#| Gets name of configuration. The name will be used as unique identifier.
	method name(--> Str) { ... }

	#|[Clone the configuration with another name. The method is used in case we
	#| want to set or change configuration name.]
	method clone-with-name($name --> LogP6::WriterConf:D) { ... }

	#|[Check a consistency of configuration values. Configuration can be changed
	#| from time to time and can be in non consistency state. The method is used
	#| when we already want to use the configuration to produce a writer.]
	method self-check(--> Nil) { #`[is not a stub] }

	#| Create writer object.
	method make-writer(--> LogP6::Writer:D) { ... }

	#|[Close any resources the factory need. Since the writers are created from
	#| the one factory, the factory have to be know about all resources it
	#| opened.]
	method close(--> Nil) { ... }
}


