Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
L
libplist
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pwn
libplist
Commits
8c6a809f
Commit
8c6a809f
authored
Nov 10, 2009
by
Jonathan Beck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move some methods and drop Utils class in C++ binding.
parent
53a9f891
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
88 additions
and
156 deletions
+88
-156
CMakeLists.txt
include/CMakeLists.txt
+0
-1
Node.h
include/plist/Node.h
+2
-0
Structure.h
include/plist/Structure.h
+3
-0
Utils.h
include/plist/Utils.h
+0
-43
plist++.h
include/plist/plist++.h
+0
-1
CMakeLists.txt
src/CMakeLists.txt
+0
-1
Node.cpp
src/Node.cpp
+49
-0
Structure.cpp
src/Structure.cpp
+34
-0
Utils.cpp
src/Utils.cpp
+0
-109
plist.i
swig/plist.i
+0
-1
No files found.
include/CMakeLists.txt
View file @
8c6a809f
...
...
@@ -11,7 +11,6 @@ SET( libplist_HDR
${
CMAKE_CURRENT_SOURCE_DIR
}
/plist/Real.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/plist/String.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/plist/Structure.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/plist/Utils.h
)
INSTALL
(
FILES
${
libplist_HDR
}
...
...
include/plist/Node.h
View file @
8c6a809f
...
...
@@ -38,6 +38,8 @@ public :
plist_type
GetType
();
plist_t
GetPlist
();
static
Node
*
FromPlist
(
plist_t
node
,
Node
*
parent
=
NULL
);
protected
:
Node
(
Node
*
parent
=
NULL
);
Node
(
plist_t
node
,
Node
*
parent
=
NULL
);
...
...
include/plist/Structure.h
View file @
8c6a809f
...
...
@@ -41,6 +41,9 @@ public :
virtual
void
Remove
(
Node
*
node
)
=
0
;
static
Structure
*
FromXml
(
const
std
::
string
&
xml
);
static
Structure
*
FromBin
(
const
std
::
vector
<
char
>&
bin
);
protected
:
Structure
(
Node
*
parent
=
NULL
);
Structure
(
plist_type
type
,
Node
*
parent
=
NULL
);
...
...
include/plist/Utils.h
deleted
100644 → 0
View file @
53a9f891
/*
* Utils.h
* Import functions for C++ binding
*
* Copyright (c) 2009 Jonathan Beck All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef PLIST__UTILS_H
#define PLIST__UTILS_H
#include <plist/Structure.h>
#include <string>
namespace
PList
{
class
Utils
{
public
:
static
Node
*
FromPlist
(
plist_t
node
,
Node
*
parent
=
NULL
);
static
Structure
*
FromXml
(
const
std
::
string
&
xml
);
static
Structure
*
FromBin
(
const
std
::
vector
<
char
>&
bin
);
private
:
Utils
();
~
Utils
();
};
};
#endif // PLIST__UTILS_H
include/plist/plist++.h
View file @
8c6a809f
...
...
@@ -33,6 +33,5 @@
#include "Real.h"
#include "String.h"
#include "Structure.h"
#include "Utils.h"
#endif
src/CMakeLists.txt
View file @
8c6a809f
...
...
@@ -18,7 +18,6 @@ SET(libplist++_SRC
Structure.cpp
Array.cpp
Dictionary.cpp
Utils.cpp
)
ADD_LIBRARY
(
plist SHARED
${
libplist_SRC
}
)
...
...
src/Node.cpp
View file @
8c6a809f
...
...
@@ -21,6 +21,15 @@
#include <stdlib.h>
#include <plist/Node.h>
#include <plist/Structure.h>
#include <plist/Utils.h>
#include <plist/Dictionary.h>
#include <plist/Array.h>
#include <plist/Boolean.h>
#include <plist/Integer.h>
#include <plist/Real.h>
#include <plist/String.h>
#include <plist/Data.h>
#include <plist/Date.h>
namespace
PList
{
...
...
@@ -96,4 +105,44 @@ Node* Node::GetParent()
return
_parent
;
}
Node
*
Node
::
FromPlist
(
plist_t
node
,
Node
*
parent
)
{
Node
*
ret
=
NULL
;
if
(
node
)
{
plist_type
type
=
plist_get_node_type
(
node
);
switch
(
type
)
{
case
PLIST_DICT
:
ret
=
new
Dictionary
(
node
,
parent
);
break
;
case
PLIST_ARRAY
:
ret
=
new
Array
(
node
,
parent
);
break
;
case
PLIST_BOOLEAN
:
ret
=
new
Boolean
(
node
,
parent
);
break
;
case
PLIST_UINT
:
ret
=
new
Integer
(
node
,
parent
);
break
;
case
PLIST_REAL
:
ret
=
new
Real
(
node
,
parent
);
break
;
case
PLIST_STRING
:
ret
=
new
String
(
node
,
parent
);
break
;
case
PLIST_DATE
:
ret
=
new
Date
(
node
,
parent
);
break
;
case
PLIST_DATA
:
ret
=
new
Data
(
node
,
parent
);
break
;
default
:
plist_free
(
node
);
break
;
}
}
return
ret
;
}
};
src/Structure.cpp
View file @
8c6a809f
...
...
@@ -85,5 +85,39 @@ void Structure::UpdateNodeParent(Node* node)
node
->
_parent
=
this
;
}
static
Structure
*
ImportStruct
(
plist_t
root
)
{
Structure
*
ret
=
NULL
;
plist_type
type
=
plist_get_node_type
(
root
);
if
(
PLIST_ARRAY
==
type
||
PLIST_DICT
==
type
)
{
ret
=
static_cast
<
Structure
*>
(
Node
::
FromPlist
(
root
));
}
else
{
plist_free
(
root
);
}
return
ret
;
}
Structure
*
Structure
::
FromXml
(
const
std
::
string
&
xml
)
{
plist_t
root
=
NULL
;
plist_from_xml
(
xml
.
c_str
(),
xml
.
size
(),
&
root
);
return
ImportStruct
(
root
);
}
Structure
*
Structure
::
FromBin
(
const
std
::
vector
<
char
>&
bin
)
{
plist_t
root
=
NULL
;
plist_from_bin
(
&
bin
[
0
],
bin
.
size
(),
&
root
);
return
ImportStruct
(
root
);
}
};
src/Utils.cpp
deleted
100644 → 0
View file @
53a9f891
/*
* Utils.cpp
*
* Copyright (c) 2009 Jonathan Beck All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdlib.h>
#include <plist/Utils.h>
#include <plist/Dictionary.h>
#include <plist/Array.h>
#include <plist/Boolean.h>
#include <plist/Integer.h>
#include <plist/Real.h>
#include <plist/String.h>
#include <plist/Data.h>
#include <plist/Date.h>
namespace
PList
{
Node
*
Utils
::
FromPlist
(
plist_t
node
,
Node
*
parent
)
{
Node
*
ret
=
NULL
;
if
(
node
)
{
plist_type
type
=
plist_get_node_type
(
node
);
switch
(
type
)
{
case
PLIST_DICT
:
ret
=
new
Dictionary
(
node
,
parent
);
break
;
case
PLIST_ARRAY
:
ret
=
new
Array
(
node
,
parent
);
break
;
case
PLIST_BOOLEAN
:
ret
=
new
Boolean
(
node
,
parent
);
break
;
case
PLIST_UINT
:
ret
=
new
Integer
(
node
,
parent
);
break
;
case
PLIST_REAL
:
ret
=
new
Real
(
node
,
parent
);
break
;
case
PLIST_STRING
:
ret
=
new
String
(
node
,
parent
);
break
;
case
PLIST_DATE
:
ret
=
new
Date
(
node
,
parent
);
break
;
case
PLIST_DATA
:
ret
=
new
Data
(
node
,
parent
);
break
;
default
:
plist_free
(
node
);
break
;
}
}
return
ret
;
}
static
Structure
*
ImportStruct
(
plist_t
root
)
{
Structure
*
ret
=
NULL
;
plist_type
type
=
plist_get_node_type
(
root
);
if
(
PLIST_ARRAY
==
type
||
PLIST_DICT
==
type
)
{
ret
=
static_cast
<
Structure
*>
(
Utils
::
FromPlist
(
root
));
}
else
{
plist_free
(
root
);
}
return
ret
;
}
Structure
*
Utils
::
FromXml
(
const
std
::
string
&
xml
)
{
plist_t
root
=
NULL
;
plist_from_xml
(
xml
.
c_str
(),
xml
.
size
(),
&
root
);
return
ImportStruct
(
root
);
}
Structure
*
Utils
::
FromBin
(
const
std
::
vector
<
char
>&
bin
)
{
plist_t
root
=
NULL
;
plist_from_bin
(
&
bin
[
0
],
bin
.
size
(),
&
root
);
return
ImportStruct
(
root
);
}
};
swig/plist.i
View file @
8c6a809f
...
...
@@ -159,7 +159,6 @@ namespace std {
%include <plist/Structure.h>
%include <plist/Array.h>
%include <plist/Dictionary.h>
%include <plist/Utils.h>
typedef enum {
PLIST_BOOLEAN,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment