CuteLogger
Fast and simple logging solution for Qt based applications
container.h
1 #pragma once
2 /*****************************************************************************
3  *
4  * Copyright 2016 Varol Okan. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  ****************************************************************************/
19 
20 // MPEG processing classes.
21 //
22 // Functions for loading MPEG files and manipulating boxes.
23 #include <vector>
24 
25 #include "box.h"
26 
27 class Container : public Box
28 {
29  public:
30  Container ( uint32_t iPadding=0 );
31  virtual ~Container ( );
32 
33  static Box *load ( std::fstream &, uint32_t iPos, uint32_t iEnd );
34  static std::vector<Box *>load_multiple ( std::fstream &, uint32_t iPos, uint32_t iEnd );
35 
36  void resize ( );
37  virtual void print_structure ( const char * );
38  void remove ( const char * );
39  bool add ( Box * );
40  bool merge ( Box * );
41  virtual void save ( std::fstream &, std::fstream &, int32_t );
42 
43 public:
44  uint32_t m_iPadding;
45  std::vector<Box *> m_listContents;
46 };
47