On 09/15/2010 12:12 AM, Andrew Beverley wrote:
On Wed, 2010-09-15 at 02:06 +0000, Amos Jeffries wrote:
On Tue, 14 Sep 2010 23:55:20 +0100, Andrew Beverley<a...@andybev.com>
wrote:
  * Config.accessList.outgoingTos, Config.accessList.clientsideTos,
Config.accessList.outgoingNfmark, Config.accessList.clientsideNfmark
can
become members of the Qos scope Config object. All the parsing /free
stuff
can be moved there too with some #define parse_...() etc for the legacy
parser.


I've moved all the configuration variables and functions to the Qos
scope. I have renamed parse_acl_tos(acl_tos ** head) as
Ip::Qos::Config::parseConfigAclTos(acl_tos ** head).

However, I'm unable to compile because of the following error:

Qos.cc: In member function ‘void
Ip::Qos::Config::parseConfigAclTos(acl_tos**)’:
Qos.cc:377: error: argument of type ‘void (Ip::Qos::Config::)(void*)’
does
not match ‘void (*)(void*)’

The code at line 377 is:

CBDATA_INIT_TYPE_FREECB(acl_tos, freedConfigAclTos);

I have

CBDATA_TYPE(acl_tos);

specified before the parseConfigAclTos function.

Could you give me any ideas as to what I am doing wrong here? If you
need me to send through any more of the code then please let me know.

Do you have this with a cast?
  #define parse_acl_tos(X) Ip::Qos::Config::parseConfigAclTos((acl_tos
**)X)

with the cf.data.pre "TYPE: acl_tos" unchanged.

No, I had changed it. However, I have now changed it back to the above,
but still get the same error. Any other ideas?

Qos.cc: In member function ‘void Ip::Qos::Config::parseConfigAclTos(acl_tos**)’:
Qos.cc:377: error: argument of type ‘void (Ip::Qos::Config::)(void*)’ does not 
match ‘void (*)(void*)’

I have attached my current Qos.cc and Qos.h

I kind of lost track of the current state. Do you still want help with making this work? Or did you give up and are now back to the old C-style craft outside of the proper namespace?

Thank you,

Alex.

Reply via email to