create_protocol(Identifier, Relations, Directives)
Creates a new, dynamic protocol. This predicate is often used as a primitive to implement high-level protocol creation methods.
When using Logtalk multi-threading features, predicates calling this built-in predicate may need to be declared synchronized in order to avoid race conditions.
create_protocol(?protocol_identifier, +list, +list)
instantiation_error
type_error(protocol_identifier, Identifier)
permission_error(replace, category, Identifier)
permission_error(replace, object, Identifier)
permission_error(replace, protocol, Identifier)
type_error(list, Relations)
type_error(list, Directives)
| ?- create_protocol( logging, [extends(monitoring)], [public([log_file/1, log_on/0, log_off/0])] ).
abolish_protocol/1
, current_protocol/1
, protocol_property/2
conforms_to_protocol/2-3
, extends_protocol/2-3
, implements_protocol/2-3