~mixxxdevelopers/mixxx/features_starterkit

« back to all changes in this revision

Viewing changes to mixxx-win32lib-msvc/taglib/tbytevectorlist.h

  • Committer: Albert Santoni
  • Date: 2011-03-01 04:00:31 UTC
  • mfrom: (2491.1.157 trunk)
  • Revision ID: alberts@mixxx.org-20110301040031-nx47i0juovysy109
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
    copyright            : (C) 2002 - 2008 by Scott Wheeler
 
3
    email                : wheeler@kde.org
 
4
 ***************************************************************************/
 
5
 
 
6
/***************************************************************************
 
7
 *   This library is free software; you can redistribute it and/or modify  *
 
8
 *   it under the terms of the GNU Lesser General Public License version   *
 
9
 *   2.1 as published by the Free Software Foundation.                     *
 
10
 *                                                                         *
 
11
 *   This library is distributed in the hope that it will be useful, but   *
 
12
 *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
 
13
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
 
14
 *   Lesser General Public License for more details.                       *
 
15
 *                                                                         *
 
16
 *   You should have received a copy of the GNU Lesser General Public      *
 
17
 *   License along with this library; if not, write to the Free Software   *
 
18
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
 
19
 *   USA                                                                   *
 
20
 *                                                                         *
 
21
 *   Alternatively, this file is available under the Mozilla Public        *
 
22
 *   License Version 1.1.  You may obtain a copy of the License at         *
 
23
 *   http://www.mozilla.org/MPL/                                           *
 
24
 ***************************************************************************/
 
25
 
 
26
#ifndef TAGLIB_BYTEVECTORLIST_H
 
27
#define TAGLIB_BYTEVECTORLIST_H
 
28
 
 
29
#include "taglib_export.h"
 
30
#include "tbytevector.h"
 
31
#include "tlist.h"
 
32
 
 
33
namespace TagLib {
 
34
 
 
35
  //! A list of ByteVectors
 
36
 
 
37
  /*!
 
38
   * A List specialization with some handy features useful for ByteVectors.
 
39
   */
 
40
 
 
41
  class TAGLIB_EXPORT ByteVectorList : public List<ByteVector>
 
42
  {
 
43
  public:
 
44
 
 
45
    /*!
 
46
     * Construct an empty ByteVectorList.
 
47
     */
 
48
    ByteVectorList();
 
49
 
 
50
    /*!
 
51
     * Destroys this ByteVectorList instance.
 
52
     */
 
53
    virtual ~ByteVectorList();
 
54
 
 
55
    /*!
 
56
     * Make a shallow, implicitly shared, copy of \a l.  Because this is
 
57
     * implicitly shared, this method is lightweight and suitable for
 
58
     * pass-by-value usage.
 
59
     */
 
60
    ByteVectorList(const ByteVectorList &l);
 
61
 
 
62
    /*!
 
63
     * Convert the ByteVectorList to a ByteVector separated by \a separator.  By
 
64
     * default a space is used.
 
65
     */
 
66
    ByteVector toByteVector(const ByteVector &separator = " ") const;
 
67
 
 
68
    /*!
 
69
     * Splits the ByteVector \a v into several strings at \a pattern.  This will
 
70
     * not include the pattern in the returned ByteVectors.
 
71
     */
 
72
    static ByteVectorList split(const ByteVector &v, const ByteVector &pattern,
 
73
                                int byteAlign = 1);
 
74
    /*!
 
75
     * Splits the ByteVector \a v into several strings at \a pattern.  This will
 
76
     * not include the pattern in the returned ByteVectors.  \a max is the
 
77
     * maximum number of entries that will be separated.  If \a max for instance
 
78
     * is 2 then a maximum of 1 match will be found and the vector will be split
 
79
     * on that match.
 
80
     */
 
81
    // BIC: merge with the function above
 
82
    static ByteVectorList split(const ByteVector &v, const ByteVector &pattern,
 
83
                                int byteAlign, int max);
 
84
  private:
 
85
    class ByteVectorListPrivate;
 
86
    ByteVectorListPrivate *d;
 
87
  };
 
88
 
 
89
}
 
90
 
 
91
#endif