This file is indexed.

/usr/include/k3bfileitem.h is in libk3b-dev 2.0.2-7ubuntu1.

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
/*
 *
 * Copyright (C) 2003-2008 Sebastian Trueg <trueg@k3b.org>
 *
 * This file is part of the K3b project.
 * Copyright (C) 1998-2008 Sebastian Trueg <trueg@k3b.org>
 *
 * 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.
 * See the file "COPYING" for the exact licensing terms.
 */


#ifndef K3BFILEITEM_H
#define K3BFILEITEM_H


#include "k3bdataitem.h"
#include "k3bglobals.h"

#include <kio/global.h>
#include <KMimeType>
#include <QString>

#include "k3b_export.h"

namespace K3b {
    class DataDoc;
    class DirItem;

    class LIBK3B_EXPORT FileItem : public DataItem
    {
    public:
        /**
         * Creates a new FileItem
         */
        FileItem( const QString& filePath, DataDoc* doc, DirItem* dir, const QString& k3bName = 0, const ItemFlags& flags = ItemFlags() );

        /**
         * Constructor for optimized file item creation which does no additional stat.
         *
         * Used by K3b to speedup file item creation.
         */
        FileItem( const k3b_struct_stat* stat,
                  const k3b_struct_stat* followedStat,
                  const QString& filePath, DataDoc* doc, DirItem* dir, const QString& k3bName = 0, const ItemFlags& flags = ItemFlags() );

        /**
         * Default copy constructor
         * Creates a copy of the fileitem. The copy, however, is not an exact duplicate of this item.
         * The copy does not have a parent dir set and any old session items are set to 0.
         */
        FileItem( const FileItem& );

        virtual ~FileItem();

        virtual DataItem* copy() const;

        bool exists() const;

        QString absIsoPath();

        /** reimplemented from DataItem */
        QString localPath() const;

        /**
         * Identification of the files on the local device.
         */
        struct Id {
            dev_t device;
            ino_t inode;
        };

        /**
         * This is not the normal inode number but it also contains
         * the device number.
         */
        Id localId() const;

        /**
         * The id of the file the symlink is pointing to
         */
        Id localId( bool followSymlinks ) const;

        DirItem* getDirItem() const;

        QString linkDest() const;

        virtual KMimeType::Ptr mimeType() const;

        /** returns true if the item is not a link or
         *  if the link's destination is part of the compilation */
        bool isValid() const;

        DataItem* replaceItemFromOldSession() const { return m_replacedItemFromOldSession; }
        void setReplacedItemFromOldSession( DataItem* item ) { m_replacedItemFromOldSession = item; }

        /**
         * Normally one does not use this method but DataItem::size()
         */
        KIO::filesize_t itemSize( bool followSymlinks ) const;
        
    private:
        void init( const QString& filePath,
                   const QString& k3bName,
                   DataDoc* doc,
                   const k3b_struct_stat* stat,
                   const k3b_struct_stat* followedStat );

    private:
        DataItem* m_replacedItemFromOldSession;

        KIO::filesize_t m_size;
        KIO::filesize_t m_sizeFollowed;
        Id m_id;
        Id m_idFollowed;

        QString m_localPath;

        KMimeType::Ptr m_mimeType;
    };

    bool operator==( const FileItem::Id&, const FileItem::Id& );
    bool operator<( const FileItem::Id&, const FileItem::Id& );
    bool operator>( const FileItem::Id&, const FileItem::Id& );
}

#endif