/usr/include/KF5/KLDAP/kldap/ber.h is in libkf5ldap-dev 17.12.3-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | /*
This file is part of libkldap.
Copyright (c) 2004-2006 Szombathelyi György <gyurco@freemail.hu>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KLDAP_BER_H
#define KLDAP_BER_H
#include <QByteArray>
#include "kldap_export.h"
// clazy:excludeall=copyable-polymorphic
namespace KLDAP
{
/**
* This class allows encoding and decoding Qt structures using Basic
* Encoding Rules.
*/
class KLDAP_EXPORT Ber
{
public:
/**
* Constructs a Ber object.
*/
Ber();
/**
* Constructs a Ber object from the value.
*/
explicit Ber(const QByteArray &value);
/**
* Destroys the Ber object.
*/
virtual ~Ber();
Ber(const Ber &that);
Ber &operator=(const Ber &that);
/**
* Returns the Ber object as a flat QByteArray.
*/
QByteArray flatten() const;
/**
* Appends the data with the specified format to the Ber object.
* This function works like printf, except that it's appending the
* parameters, not replacing them. The allowed format characters and
* the expected parameter types are:
* <ul>
* <li>
* b Boolean. An int parameter should be supplied.
* A boolean element is output.
* </li>
* <li>
* e Enumeration. An int parameter should be supplied.
* An enumeration element is output.
* </li>
* <li>
* i Integer. An int parameter should be supplied.
* An integer element is output.
* </li>
* <li>
* B Bitstring. A pointer to a QByteArray which contains the
* bitstring is supplied, followed by the number of bits in the
* bitstring. A bitstring element is output.
* </li>
* <li>
* n Null. No parameter is required. A null element is output.
* </li>
* <li>
* O,o,s Octet string. A QByteArray * is supplied.
* An octet string element is output.
* Due to versatility of Qt's QByteArray, these three format
* strings are all accepts the same parameter, but using the 's'
* format the string will be encoded only to the first zero
* character (a null terminated string)!
* </li>
* <li>
* t Tag. An int specifying the tag to give the next element
* is provided. This works across calls.
* </li>
* <li>
* v,V Several octet strings. A QList<QByteArray>* is supplied.
* Note that a construct like ’{v}’ is required to get an actual
* SEQUENCE OF octet strings. Also note that the 'v' format recognizes
* the QByteArray only to the first zero character, so it's not
* appropriate for binary data, just only for null terminated strings!
* </li>
* <li>
* { Begin sequence. No parameter is required.
* </li>
* <li>
* } End sequence. No parameter is required.
* </li>
* <li>
* [ Begin set. No parameter is required.
* </li>
* <li>
* ] End set. No parameter is required.
* </li>
* </ul>
*/
int printf(QString format, ...); // Passing by-value since it's used by va_start
int scanf(QString format, ...);
unsigned int peekTag(int &size);
unsigned int skipTag(int &size);
private:
class BerPrivate;
BerPrivate *const d;
};
}
#endif
|