[erlang-questions] hierarchical behaviour doesn't seem to work ?

Vance Shipley vances@REDACTED
Wed Dec 14 08:55:40 CET 2011


Harald,

I wrote a howto article on this a few years ago:

	http://www.trapexit.org/Cascading_Behaviours

On Tue, Dec 13, 2011 at 06:37:51PM +0100, Harald Welte wrote:
}  However, now if the runtime delivers something like a gen_server method
}  such as gen_cast/gen_call, etc., it tries to call client:handle_cast()
}  instead of the my_behaviour:handle_cast().  And since
}  client:handle_cast() is not defined, it will crash the process.
  
Yes, you need to define these functions in your module.  Your
client may extend these itself and/or pass them on to my_bahaviour.

}  Is this really the intended behaviour (sic) of behaviour?
  
Yes.

}  To me, it seems most logical that you would want to implement levels of
}  common functionality in a behaviour, and "sub-class" a number of different
}  implementations off such a behaviour.  And since all of it should be OTP
}  compliant, that custom behaviour itself would  be based on some OTP
}  behaviour like gen_server, gen_fsm, etc.
}  
}  Any comments?  Am I misunderstanding something here?  Thanks!

Cascading behaviours wasn't anticipated in the design and, aside
from me, very few people have used that design pattern.

-- 
	-Vance



More information about the erlang-questions mailing list