/usr/include/libwildmagic/Wm5Object.h is in libwildmagic-dev 5.13-1ubuntu1.
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 | // Geometric Tools, LLC
// Copyright (c) 1998-2014
// Distributed under the Boost Software License, Version 1.0.
// http://www.boost.org/LICENSE_1_0.txt
// http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
//
// File Version: 5.0.1 (2010/10/01)
#ifndef WM5OBJECT_H
#define WM5OBJECT_H
#include "Wm5CoreLIB.h"
#include "Wm5Names.h"
#include "Wm5Rtti.h"
#include "Wm5SmartPointer.h"
#include "Wm5InStream.h"
#include "Wm5OutStream.h"
namespace Wm5
{
// The root class of the object system. It provides some basic services for
// an object-oriented library. This class is abstract.
class WM5_CORE_ITEM Object
{
// Run-time type information.
public:
virtual const Rtti& GetRttiType () const;
bool IsExactly (const Rtti& type) const;
bool IsDerived (const Rtti& type) const;
bool IsExactlyTypeOf (const Object* object) const;
bool IsDerivedTypeOf (const Object* object) const;
static const Rtti TYPE;
// Names for objects.
public:
void SetName (const std::string& name);
const std::string& GetName () const;
virtual Object* GetObjectByName (const std::string& name);
virtual void GetAllObjectsByName (const std::string& name,
std::vector<Object*>& objects);
private:
std::string mName;
// Streaming.
public:
typedef Object* (*FactoryFunction)(InStream& stream);
typedef std::map<std::string, FactoryFunction> FactoryMap;
static bool RegisterFactory ();
static void InitializeFactory ();
static void TerminateFactory ();
static FactoryFunction Find (const std::string& name);
static Object* Factory (InStream& source);
virtual void Load (InStream& source);
virtual void Link (InStream& source);
virtual void PostLink ();
virtual bool Register (OutStream& target) const;
virtual void Save (OutStream& target) const;
virtual int GetStreamingSize () const;
//Object* Copy (const std::string& uniqueNameAppend) const;
protected:
// Constructor used by the loading system.
enum LoadConstructor { LC_LOADER };
Object (LoadConstructor value);
static FactoryMap* msFactories;
private:
static bool msStreamRegistered;
// Abstract base class. Construction and destruction.
protected:
Object ();
public:
virtual ~Object ();
// TODO: Allow copy constructors and assignment operators?
};
static bool gsStreamRegistered_Object = Object::RegisterFactory();
typedef Pointer0<Object> ObjectPtr;
#include "Wm5Object.inl"
}
#endif
|