/usr/include/msn/passport.h is in libmsn-dev 4.2-2.
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 | #ifndef __msn_passport_h__
#define __msn_passport_h__
/*
* passport.h
* libmsn
*
* Created by Mark Rowe on Thu May 20 2004.
* Refactored by Tiago Salem Herrmann on 08/2007.
* Copyright (c) 2004 Mark Rowe. All rights reserved.
* Copyright (c) 2007 Tiago Salem Herrmann. All rights reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <string>
#include <stdexcept>
#include <iostream>
#include "libmsn_export.h"
namespace MSN
{
/** An InvalidPassport exception will be thrown whenever
* a malformed passport is passed to a function that requires
* a valid address.
*/
class InvalidPassport : public std::runtime_error
{
public:
InvalidPassport(std::string err) : std::runtime_error(err) {};
};
/** A Passport represents a passport address. It is used to
* validate these addresses for functions that require it.
*
* @todo Document validation rules.
* @todo Investigate subclassing std::string to reduce code duplication.
*/
class LIBMSN_EXPORT Passport
{
public:
Passport(std::string email_) : email(email_) { validate(); };
Passport(const char *email_) : email(std::string(email_)) { validate(); };
Passport() : email("") {};
operator std::string() const;
const char *c_str() const;
bool operator ==(const Passport & other) const { return this->email == other.email; };
friend bool operator ==(const Passport & p, const std::string & other) { return p.email == other; };
friend bool operator ==(const std::string & other, const Passport & p) { return p.email == other; };
friend std::istream& operator >>(std::istream & is, Passport & p) { is >> p.email; p.validate(); return is; }
friend std::ostream& operator <<(std::ostream & os, Passport & p) { os << p.email; p.validate(); return os; }
private:
void validate();
std::string email;
};
}
std::ostream & operator << (std::ostream & os, const MSN::Passport& passport);
#endif
|