DCL 4.0
Loading...
Searching...
No Matches
APEv2.h
Go to the documentation of this file.
1#ifndef __DCL_APEV2_H__
2#define __DCL_APEV2_H__ 20250121
3
4#ifndef __DCL_OBJECT_H__
5#include <dcl/Object.h>
6#endif
7#ifndef __DCL_ARRAY_H__
8#include <dcl/Array.h>
9#endif
10
11__DCL_BEGIN_NAMESPACE
12
13class File;
14
15class APEv2 : public Object
16{
18
19public:
20 APEv2();
21 ~APEv2();
22
27 static uint32_t word(const char _chars[4]);
28
46 bool read(File& _file, const char _footerOr[32], File::off_t _off);
47
48 virtual String toString() const;
49
50 const String& APETAGEX() const {
51 return __APETAGEX;
52 }
53
54 const uint32_t version() const {
55 return __version;
56 }
57
58 const uint32_t size() const {
59 return __size;
60 }
61
62 const uint32_t count() const {
63 return __count;
64 }
65
66 const uint32_t flags() const {
67 return __flags;
68 }
69
70 const PointerArray& items() const {
71 return __items;
72 }
73
74protected:
75
76 // "APETAGEX"
77 String __APETAGEX;
78
79 // 1000 or 2000
80 uint32_t __version;
81
82 // footer를 제외한 header, item을 호함한 tag size
83 uint32_t __size;
84
85 // tag item의 개수
86 uint32_t __count;
87
88 // global flag of all items
89 uint32_t __flags;
90
91 char* __data;
92
93 PointerArray __items;
94};
95
96class APEv2Item : public Object
97{
99public:
100 APEv2Item();
101
102 size_t read(const char* _begin, const char* _end);
103
104 virtual String toString() const;
105
106 uint32_t size() const {
107 return __size;
108 }
109
110 uint32_t flags() const {
111 return __flags;
112 }
113
114 const String& key() {
115 return __key;
116 }
117
118 const String& value() {
119 return __value;
120 }
121
122protected:
123 // value in bytes
124 uint32_t __size;
125
126 uint32_t __flags;
127
128 String __key;
129
130 String __value;
131
132};
133
134__DCL_END_NAMESPACE
135
136#endif // __DCL_APEV2_H__
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
Definition APEv2.h:16
uint32_t __flags
Definition APEv2.h:89
uint32_t __count
Definition APEv2.h:86
String __APETAGEX
Definition APEv2.h:77
uint32_t __size
Definition APEv2.h:83
char * __data
Definition APEv2.h:91
PointerArray __items
Definition APEv2.h:93
uint32_t __version
Definition APEv2.h:80
uint32_t __flags
Definition APEv2.h:126
String __value
Definition APEv2.h:130
uint32_t __size
Definition APEv2.h:124
String __key
Definition APEv2.h:128
Definition File.h:38
Object()
Definition Object.cpp:183
virtual String toString() const
Definition Object.cpp:187