Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
Macros
rw_sigdefs.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _FCAT(a, b)   a ## b
 
#define FCAT(a, b)   _FCAT (a ## _, b)
 
#define FID_0(f)   FCAT (f, void)
 
#define FID_1(f, a)   FCAT (f, a)
 
#define FID_2(f, a, b)   FID_1 (FCAT (f, a), b)
 
#define FID_3(f, a, b, c)   FID_2 (FCAT (f, a), b, c)
 
#define FID_4(f, a, b, c, d)   FID_3 (FCAT (f, a), b, c, d)
 
#define FID_5(f, a, b, c, d, e)   FID_4 (FCAT (f, a), b, c, d, e)
 
#define ARG(a, N)   ((arg_ ## a << (N * arg_bits)) << fid_bits)
 
#define SIG_0(f)   fid_ ## f
 
#define SIG_1(f, a)   SIG_0 (f) | ARG (a, 0)
 
#define SIG_2(f, a, b)   SIG_1 (f, a) | ARG (b, 1)
 
#define SIG_3(f, a, b, c)   SIG_2 (f, a, b) | ARG (c, 2)
 
#define SIG_4(f, a, b, c, d)   SIG_3 (f, a, b, c) | ARG (d, 3)
 
#define SIG_5(f, a, b, c, d, e)   SIG_4 (f, a, b, c, d) | ARG (e, 4)
 
#define SIG_6(f, a, b, c, d, e, g)   SIG_5 (f, a, b, c, d, e) | ARG (g, 5)
 
#define MEMBER_0(f, self)    FID_0 (f) = SIG_1 (f, self) | bit_member
 
#define MEMBER_1(f, self, a)    FID_1 (f, a) = SIG_2 (f, self, a) | bit_member
 
#define MEMBER_2(f, self, a, b)    FID_2 (f, a, b) = SIG_3 (f, self, a, b) | bit_member
 
#define MEMBER_3(f, self, a, b, c)    FID_3 (f, a, b, c) = SIG_4 (f, self, a, b, c) | bit_member
 
#define MEMBER_4(f, self, a, b, c, d)    FID_4 (f, a, b, c, d) = SIG_5 (f, self, a, b, c, d) | bit_member
 
#define MEMBER_5(f, self, a, b, c, d, e)    FID_5 (f, a, b, c, d, e) = SIG_6 (f, self, a, b, c, d, e) | bit_member
 
#define NON_MEMBER_0(f)    FID_0 (f) = SIG_0 (f)
 
#define NON_MEMBER_1(f, a)    FID_1 (f, a) = SIG_1 (f, a)
 
#define NON_MEMBER_2(f, a, b)    FID_2 (f, a, b) = SIG_2 (f, a, b)
 
#define NON_MEMBER_3(f, a, b, c)    FID_3 (f, a, b, c) = SIG_3 (f, a, b, c)
 
#define NON_MEMBER_4(f, a, b, c, d)    FID_4 (f, a, b, c, d) = SIG_4 (f, a, b, c, d)
 
#define NON_MEMBER_5(f, a, b, c, d, e)    FID_5 (f, a, b, c, d, e) = SIG_5 (f, a, b, c, d, e)
 

Macro Definition Documentation

◆ _FCAT

#define _FCAT (   a,
  b 
)    a ## b

rw_sigdefs.h - definitions of helpers macros to define member and non-member functions overload id's

$Id$

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition at line 32 of file rw_sigdefs.h.

◆ ARG

#define ARG (   a,
  N 
)    ((arg_ ## a << (N * arg_bits)) << fid_bits)

Definition at line 44 of file rw_sigdefs.h.

◆ FCAT

#define FCAT (   a,
  b 
)    _FCAT (a ## _, b)

Definition at line 33 of file rw_sigdefs.h.

◆ FID_0

#define FID_0 (   f)    FCAT (f, void)

Definition at line 36 of file rw_sigdefs.h.

◆ FID_1

#define FID_1 (   f,
  a 
)    FCAT (f, a)

Definition at line 37 of file rw_sigdefs.h.

◆ FID_2

#define FID_2 (   f,
  a,
  b 
)    FID_1 (FCAT (f, a), b)

Definition at line 38 of file rw_sigdefs.h.

◆ FID_3

#define FID_3 (   f,
  a,
  b,
  c 
)    FID_2 (FCAT (f, a), b, c)

Definition at line 39 of file rw_sigdefs.h.

◆ FID_4

#define FID_4 (   f,
  a,
  b,
  c,
  d 
)    FID_3 (FCAT (f, a), b, c, d)

Definition at line 40 of file rw_sigdefs.h.

◆ FID_5

#define FID_5 (   f,
  a,
  b,
  c,
  d,
  e 
)    FID_4 (FCAT (f, a), b, c, d, e)

Definition at line 41 of file rw_sigdefs.h.

◆ MEMBER_0

#define MEMBER_0 (   f,
  self 
)     FID_0 (f) = SIG_1 (f, self) | bit_member

Definition at line 58 of file rw_sigdefs.h.

◆ MEMBER_1

#define MEMBER_1 (   f,
  self,
  a 
)     FID_1 (f, a) = SIG_2 (f, self, a) | bit_member

Definition at line 60 of file rw_sigdefs.h.

◆ MEMBER_2

#define MEMBER_2 (   f,
  self,
  a,
  b 
)     FID_2 (f, a, b) = SIG_3 (f, self, a, b) | bit_member

Definition at line 62 of file rw_sigdefs.h.

◆ MEMBER_3

#define MEMBER_3 (   f,
  self,
  a,
  b,
  c 
)     FID_3 (f, a, b, c) = SIG_4 (f, self, a, b, c) | bit_member

Definition at line 64 of file rw_sigdefs.h.

◆ MEMBER_4

#define MEMBER_4 (   f,
  self,
  a,
  b,
  c,
  d 
)     FID_4 (f, a, b, c, d) = SIG_5 (f, self, a, b, c, d) | bit_member

Definition at line 66 of file rw_sigdefs.h.

◆ MEMBER_5

#define MEMBER_5 (   f,
  self,
  a,
  b,
  c,
  d,
  e 
)     FID_5 (f, a, b, c, d, e) = SIG_6 (f, self, a, b, c, d, e) | bit_member

Definition at line 68 of file rw_sigdefs.h.

◆ NON_MEMBER_0

#define NON_MEMBER_0 (   f)     FID_0 (f) = SIG_0 (f)

Definition at line 72 of file rw_sigdefs.h.

◆ NON_MEMBER_1

#define NON_MEMBER_1 (   f,
  a 
)     FID_1 (f, a) = SIG_1 (f, a)

Definition at line 74 of file rw_sigdefs.h.

◆ NON_MEMBER_2

#define NON_MEMBER_2 (   f,
  a,
  b 
)     FID_2 (f, a, b) = SIG_2 (f, a, b)

Definition at line 76 of file rw_sigdefs.h.

◆ NON_MEMBER_3

#define NON_MEMBER_3 (   f,
  a,
  b,
  c 
)     FID_3 (f, a, b, c) = SIG_3 (f, a, b, c)

Definition at line 78 of file rw_sigdefs.h.

◆ NON_MEMBER_4

#define NON_MEMBER_4 (   f,
  a,
  b,
  c,
  d 
)     FID_4 (f, a, b, c, d) = SIG_4 (f, a, b, c, d)

Definition at line 80 of file rw_sigdefs.h.

◆ NON_MEMBER_5

#define NON_MEMBER_5 (   f,
  a,
  b,
  c,
  d,
  e 
)     FID_5 (f, a, b, c, d, e) = SIG_5 (f, a, b, c, d, e)

Definition at line 82 of file rw_sigdefs.h.

◆ SIG_0

#define SIG_0 (   f)    fid_ ## f

Definition at line 47 of file rw_sigdefs.h.

◆ SIG_1

#define SIG_1 (   f,
  a 
)    SIG_0 (f) | ARG (a, 0)

Definition at line 48 of file rw_sigdefs.h.

◆ SIG_2

#define SIG_2 (   f,
  a,
  b 
)    SIG_1 (f, a) | ARG (b, 1)

Definition at line 49 of file rw_sigdefs.h.

◆ SIG_3

#define SIG_3 (   f,
  a,
  b,
  c 
)    SIG_2 (f, a, b) | ARG (c, 2)

Definition at line 50 of file rw_sigdefs.h.

◆ SIG_4

#define SIG_4 (   f,
  a,
  b,
  c,
  d 
)    SIG_3 (f, a, b, c) | ARG (d, 3)

Definition at line 51 of file rw_sigdefs.h.

◆ SIG_5

#define SIG_5 (   f,
  a,
  b,
  c,
  d,
  e 
)    SIG_4 (f, a, b, c, d) | ARG (e, 4)

Definition at line 52 of file rw_sigdefs.h.

◆ SIG_6

#define SIG_6 (   f,
  a,
  b,
  c,
  d,
  e,
  g 
)    SIG_5 (f, a, b, c, d, e) | ARG (g, 5)

Definition at line 53 of file rw_sigdefs.h.