In general, procedures with many arguments are awkward. Bob Martin's book, 
Clean Code, explains why. But there are always exceptions.

Reading through your arguments, it seems like they could be grouped into 
categories, and you could create a struct per category.

In my projects, I often have State, Settings and Config structs for each 
resource (thread, object, actor, etc.). State is private to the resource and 
usually initialized to some all-zero or value representing "unknown". Settings 
are private to the resource, have setter procedures and are initialized to 
default values often by reading from a non-volatile storage. Settings change 
throughout runtime. Config is initialized at the start and doesn't change 
without resetting the subsystem/thread/process. Sometimes Config is fixed at 
compile-time.

Reply via email to