summaryrefslogtreecommitdiffstats
path: root/test/ext/vapi_cpp_test.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-09-03api: enforce vla is last and fixed string typeOle Troan1-5/+2
Enforce that variable length fields are the last element of API messages. Add a 'fixed' version of string type, since dealing with multiple variable length strings turned out too painful for the C language bindings. The string type is now: { string name[64]; // NUL terminated C-string. Essentially decays to u8 name[64] string name[]; // Variable length string with embedded len field (vl_api_string_t) }; The latter notation could be made available to other types as well. e.g. { vl_api_address_t addresses[]; } instead of { u32 n_addr; vl_api_address_t addresses[n_addr]; }; Type: fix Change-Id: I18fa17ef47227633752ab50453e8d20a652a9f9b Signed-off-by: Ole Troan <ot@cisco.com>
2019-08-27api: revert use string type for strings in memclnt.apiOle Troan1-5/+5
This reverts commit 2959d42feb576c0e00c28c4e27658b25f6c783e9. Lacks client side fixes. Type: fix Change-Id: Ib94b18e74325cede41ed1733e57896f17a952526 Signed-off-by: Ole Troan <ot@cisco.com>
2019-08-27api: use string type for strings in memclnt.apiOle Troan1-5/+5
Explicitly using string type in API allows for autogenerating tools to print strings instead of hex-dumping byte strings. Type: fix Signed-off-by: Ole Troan <ot@cisco.com> Signed-off-by: Klement Sekera <ksekera@cisco.com> Change-Id: I573962d6b34d5d10aab9dc6a5fdf101c9b12a6a6 Signed-off-by: Ole Troan <ot@cisco.com>
2019-08-20api: Cleanup APIs interface.apiJakub Grajciar1-4/+4
Use of consistent API types for interface.api Type: fix Change-Id: I88206d7d0907cffd564031f73c9a996df2e5e21a Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-03-15Revert "API: Cleanup APIs interface.api"Ole Trøan1-4/+4
This reverts commit e63325e3ca03c847963863446345e6c80a2c0cfd. Allow time for CSIT to accommodate. Change-Id: I59435e4ab5e05e36a2796c3bf44889b5d4823cc2 Signed-off-by: ot@cisco.com
2019-03-15API: Cleanup APIs interface.apiJakub Grajciar1-4/+4
Use of consistent API types for interface.api Change-Id: Ieb54cebb4ac96b432a3f0b41596718aa2f34885b Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-12-18VAPI/VOM: Removing legacy stats tests, add string type.Ole Troan1-154/+5
Fix misc VAPI/VOM generation and test cases. Change-Id: I1abf9ecdb6f8a2129f11e0a9ed1c0fe04cdf5c47 Signed-off-by: Ole Troan <ot@cisco.com>
2018-01-22svm: queue sub: Add conditional timed waitMohsin Kazmi1-12/+20
On reviece side svm queue only permits blocking and non-blocking calls. This patch adds timed wait blocking functionality which returns either on signal/event or on given time out. It also preserves the original behavior, so it will not hurt client applications which are using svm queue. Change-Id: Ic10632170330a80afb8bc781d4ccddfe4da2c69a Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-09-19Add C++ APIKlement Sekera1-0/+591
Change-Id: Iff634f22d43470e2dc028387b3816257fd7b4156 Signed-off-by: Klement Sekera <ksekera@cisco.com>
ont-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
/*
  Copyright (c) 2001, 2002, 2003 Eliot Dresselhaus

  Permission is hereby granted, free of charge, to any person obtaining
  a copy of this software and associated documentation files (the
  "Software"), to deal in the Software without restriction, including
  without limitation the rights to use, copy, modify, merge, publish,
  distribute, sublicense, and/or sell copies of the Software, and to
  permit persons to whom the Software is furnished to do so, subject to
  the following conditions:

  The above copyright notice and this permission notice shall be
  included in all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

_ (EPERM, "Operation not permitted")
_ (ENOENT, "No such file or directory")
_ (ESRCH, "No such process")
_ (EINTR, "Interrupted system call")
_ (EIO, "I/O error")
_ (ENXIO, "No such device or address")
_ (E2BIG, "Arg list too long")
_ (ENOEXEC, "Exec format error")
_ (EBADF, "Bad file number")
_ (ECHILD, "No child processes")
_ (ENOMEM, "Out of memory")
_ (EACCES, "Permission denied")
_ (EFAULT, "Bad address")
_ (ENOTBLK, "Block device required")
_ (EBUSY, "Device or resource busy")
_ (EEXIST, "File exists")
_ (EXDEV, "Cross-device link")
_ (ENODEV, "No such device")
_ (ENOTDIR, "Not a directory")
_ (EISDIR, "Is a directory")
_ (EINVAL, "Invalid argument")
_ (ENFILE, "File table overflow")
_ (EMFILE, "Too many open files")
_ (ENOTTY, "Not a typewriter")
_ (ETXTBSY, "Text file busy")
_ (EFBIG, "File too large")
_ (ENOSPC, "No space left on device")
_ (ESPIPE, "Illegal seek")
_ (EROFS, "Read-only file system")
_ (EMLINK, "Too many links")
_ (EPIPE, "Broken pipe")
_ (EDOM, "Math argument out of domain of func")
_ (ERANGE, "Math result not representable")
_ (EDEADLK, "Resource deadlock would occur")
_ (ENAMETOOLONG, "File name too long")
_ (ENOLCK, "No record locks available")
_ (ENOSYS, "Function not implemented")
_ (ENOTEMPTY, "Directory not empty")
_ (ELOOP, "Too many symbolic links encountered")
_ (EWOULDBLOCK, "Operation would block")
_ (ENOMSG, "No message of desired type")
_ (EIDRM, "Identifier removed")
_ (ECHRNG, "Channel number out of range")
_ (EL2NSYNC, "Level 2 not synchronized")
_ (EL3HLT, "Level 3 halted")
_ (EL3RST, "Level 3 reset")
_ (ELNRNG, "Link number out of range")
_ (EUNATCH, "Protocol driver not attached")
_ (ENOCSI, "No CSI structure available")
_ (EL2HLT, "Level 2 halted")
_ (EBADE, "Invalid exchange")
_ (EBADR, "Invalid request descriptor")
_ (EXFULL, "Exchange full")
_ (ENOANO, "No anode")
_ (EBADRQC, "Invalid request code")
_ (EBADSLT, "Invalid slot")
_ (EBFONT, "Bad font file format")
_ (ENOSTR, "Device not a stream")
_ (ENODATA, "No data available")
_ (ETIME, "Timer expired")
_ (ENOSR, "Out of streams resources")
_ (ENONET, "Machine is not on the network")
_ (ENOPKG, "Package not installed")
_ (EREMOTE, "Object is remote")
_ (ENOLINK, "Link has been severed")
_ (EADV, "Advertise error")
_ (ESRMNT, "Srmount error")
_ (ECOMM, "Communication error on send")
_ (EPROTO, "Protocol error")
_ (EMULTIHOP, "Multihop attempted")
_ (EDOTDOT, "RFS specific error")
_ (EBADMSG, "Not a data message")
_ (EOVERFLOW, "Value too large for defined data type")
_ (ENOTUNIQ, "Name not unique on network")
_ (EBADFD, "File descriptor in bad state")
_ (EREMCHG, "Remote address changed")
_ (ELIBACC, "Can not access a needed shared library")
_ (ELIBBAD, "Accessing a corrupted shared library")
_ (ELIBSCN, "lib section in a.out corrupted")
_ (ELIBMAX, "Attempting to link in too many shared libraries")
_ (ELIBEXEC, "Cannot exec a shared library directly")
_ (EILSEQ, "Illegal byte sequence")
_ (ERESTART, "Interrupted system call should be restarted")
_ (ESTRPIPE, "Streams pipe error")
_ (EUSERS, "Too many users")
_ (ENOTSOCK, "Socket operation on non-socket")
_ (EDESTADDRREQ, "Destination address required")
_ (EMSGSIZE, "Message too long")
_ (EPROTOTYPE, "Protocol wrong type for socket")
_ (ENOPROTOOPT, "Protocol not available")
_ (EPROTONOSUPPORT, "Protocol not supported")
_ (ESOCKTNOSUPPORT, "Socket type not supported")
_ (EOPNOTSUPP, "Operation not supported on transport endpoint")
_ (EPFNOSUPPORT, "Protocol family not supported")
_ (EAFNOSUPPORT, "Address family not supported by protocol")
_ (EADDRINUSE, "Address already in use")
_ (EADDRNOTAVAIL, "Cannot assign requested address")
_ (ENETDOWN, "Network is down")
_ (ENETUNREACH, "Network is unreachable")
_ (ENETRESET, "Network dropped connection because of reset")
_ (ECONNABORTED, "Software caused connection abort")
_ (ECONNRESET, "Connection reset by peer")
_ (ENOBUFS, "No buffer space available")
_ (EISCONN, "Transport endpoint is already connected")
_ (ENOTCONN, "Transport endpoint is not connected")
_ (ESHUTDOWN, "Cannot send after transport endpoint shutdown")
_ (ETOOMANYREFS, "Too many references: cannot splice")
_ (ETIMEDOUT, "Connection timed out")
_ (ECONNREFUSED, "Connection refused")
_ (EHOSTDOWN, "Host is down")
_ (EHOSTUNREACH, "No route to host")
_ (EALREADY, "Operation already in progress")
_ (EINPROGRESS, "Operation now in progress")
_ (ESTALE, "Stale NFS file handle")
_ (EUCLEAN, "Structure needs cleaning")
_ (ENOTNAM, "Not a XENIX named type file")
_ (ENAVAIL, "No XENIX semaphores available")
_ (EISNAM, "Is a named type file")
_ (EREMOTEIO, "Remote I/O error")
_ (EDQUOT, "Quota exceeded")
_ (ENOMEDIUM, "No medium found")
_ (EMEDIUMTYPE, "Wrong medium type")