• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
  • datatypes
  • array
abstractarraydata.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2011 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 
24 #include "abstractarraydata.h"
25 #include "arraydatainformation.h"
26 #include "primitivearraydata.h"
27 #include "complexarraydata.h"
28 #include "../primitive/primitivedatainformation.h"
29 
30 AbstractArrayData::AbstractArrayData(DataInformation* childType, ArrayDataInformation* parent)
31  : mParent(parent), mChildType(childType)
32 {
33  Q_CHECK_PTR(childType);
34  mChildType->setParent(parent);
35 }
36 
37 AbstractArrayData::~AbstractArrayData()
38 {
39 }
40 
41 void AbstractArrayData::setParent(ArrayDataInformation* parent)
42 {
43  mParent = parent;
44  mChildType->setParent(parent);
45  setNewParentForChildren();
46 }
47 
48 AbstractArrayData* AbstractArrayData::newArrayData(uint length, DataInformation* type, ArrayDataInformation* parent)
49 {
50  Q_CHECK_PTR(type);
51  if (!type->isPrimitive())
52  return new ComplexArrayData(length, type, parent);
53  PrimitiveDataInformation* data = type->asPrimitive();
54 
55  switch (data->type().value)
56  {
57  case Type_Char:
58  return new PrimitiveArrayData<Type_Char>(length, data, parent);
59  case Type_Int8:
60  return new PrimitiveArrayData<Type_Int8>(length, data, parent);
61  case Type_Int16:
62  return new PrimitiveArrayData<Type_Int16>(length, data, parent);
63  case Type_Int32:
64  return new PrimitiveArrayData<Type_Int32>(length, data, parent);
65  case Type_Int64:
66  return new PrimitiveArrayData<Type_Int64>(length, data, parent);
67  case Type_UInt8:
68  return new PrimitiveArrayData<Type_UInt8>(length, data, parent);
69  case Type_UInt16:
70  return new PrimitiveArrayData<Type_UInt16>(length, data, parent);
71  case Type_UInt32:
72  return new PrimitiveArrayData<Type_UInt32>(length, data, parent);
73  case Type_UInt64:
74  return new PrimitiveArrayData<Type_UInt64>(length, data, parent);
75  case Type_Bool8:
76  return new PrimitiveArrayData<Type_Bool8>(length, data, parent);
77  case Type_Bool16:
78  return new PrimitiveArrayData<Type_Bool16>(length, data, parent);
79  case Type_Bool32:
80  return new PrimitiveArrayData<Type_Bool32>(length, data, parent);
81  case Type_Bool64:
82  return new PrimitiveArrayData<Type_Bool64>(length, data, parent);
83  case Type_Float:
84  return new PrimitiveArrayData<Type_Float>(length, data, parent);
85  case Type_Double:
86  return new PrimitiveArrayData<Type_Double>(length, data, parent);
87  default:
88  // enum/bitfield/pointer need complex array data
89  return new ComplexArrayData(length, data, parent);
90  }
91 }
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
AbstractArrayData::length
virtual unsigned int length() const =0
Type_Bool32
Definition: primitivedatatype.h:40
Type_Int64
Definition: primitivedatatype.h:44
complexarraydata.h
Type_Bool16
Definition: primitivedatatype.h:37
primitivearraydata.h
PrimitiveDataInformation::type
virtual PrimitiveDataType type() const =0
Type_UInt32
Definition: primitivedatatype.h:42
AbstractArrayData
Definition: abstractarraydata.h:46
ArrayDataInformation
Definition: arraydatainformation.h:36
Type_UInt16
Definition: primitivedatatype.h:39
Type_UInt64
Definition: primitivedatatype.h:45
AbstractArrayData::setParent
void setParent(ArrayDataInformation *parent)
Definition: abstractarraydata.cpp:41
Type_Bool64
Definition: primitivedatatype.h:43
Type_Char
Definition: primitivedatatype.h:36
Type_Float
Definition: primitivedatatype.h:46
AbstractArrayData::setNewParentForChildren
virtual void setNewParentForChildren()=0
AbstractArrayData::AbstractArrayData
AbstractArrayData(DataInformation *childType, ArrayDataInformation *parent)
Definition: abstractarraydata.cpp:30
AbstractArrayData::mChildType
QScopedPointer< DataInformation > mChildType
Definition: abstractarraydata.h:91
Type_Int16
Definition: primitivedatatype.h:38
DataInformationBase::asPrimitive
PrimitiveDataInformation * asPrimitive()
AbstractArrayData::newArrayData
static AbstractArrayData * newArrayData(uint length, DataInformation *type, ArrayDataInformation *parent)
Takes ownership over type !
Definition: abstractarraydata.cpp:48
PrimitiveArrayData
Definition: primitivearraydata.h:32
AbstractArrayData::mParent
ArrayDataInformation * mParent
Definition: abstractarraydata.h:90
Type_Int32
Definition: primitivedatatype.h:41
arraydatainformation.h
Type_Int8
Definition: primitivedatatype.h:34
Type_UInt8
Definition: primitivedatatype.h:35
Type_Bool8
Definition: primitivedatatype.h:33
ComplexArrayData
Definition: complexarraydata.h:33
Type_Double
Definition: primitivedatatype.h:47
PrimitiveDataInformation
A base class for all primitive data elements (e.g.
Definition: primitivedatainformation.h:34
DataInformationBase::isPrimitive
virtual bool isPrimitive() const
Definition: datainformationbase.cpp:45
AbstractArrayData::~AbstractArrayData
virtual ~AbstractArrayData()
Definition: abstractarraydata.cpp:37
PrimitiveDataType::value
PrimitiveDataTypeEnum value
Definition: primitivedatatype.h:56
abstractarraydata.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:06 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal