/usr/include/KF5/KLDAP/kldap/ber.h is in libkf5ldap-dev 15.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 | /*
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 <QtCore/QByteArray>
#include "kldap_export.h"
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
|