Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
caosdb-julialib
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
caosdb-julialib
Commits
0be053a7
Commit
0be053a7
authored
3 years ago
by
florian
Browse files
Options
Downloads
Patches
Plain Diff
DRAFT: Add a lot of setters, getters, and helper functions
parent
f5bd5529
No related branches found
No related tags found
1 merge request
!7
ENH: Implement queries and entity retrieval
Pipeline
#11994
failed
3 years ago
Stage: info
Stage: code-style
Stage: setup
Stage: test
Stage: deploy
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
src/CaosDB.jl
+2
-0
2 additions, 0 deletions
src/CaosDB.jl
src/Connection.jl
+6
-0
6 additions, 0 deletions
src/Connection.jl
src/Entity.jl
+1133
-4
1133 additions, 4 deletions
src/Entity.jl
src/Transaction.jl
+2
-0
2 additions, 0 deletions
src/Transaction.jl
test/runtests.jl
+11
-8
11 additions, 8 deletions
test/runtests.jl
with
1154 additions
and
12 deletions
src/CaosDB.jl
+
2
−
0
View file @
0be053a7
...
@@ -173,9 +173,11 @@ authenticator object from a configuration.
...
@@ -173,9 +173,11 @@ authenticator object from a configuration.
"""
"""
mutable struct
_Authenticator
mutable struct
_Authenticator
wrapped_authenticator
::
Ptr
{
Cvoid
}
wrapped_authenticator
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Authenticator
(
managed_by_julia
::
Bool
=
false
)
function
_Authenticator
(
managed_by_julia
::
Bool
=
false
)
auth
=
new
()
auth
=
new
()
auth
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
# Only append a finalizer for this if the object is
# Only append a finalizer for this if the object is
# actually managed by Julia and not created and destroyed
# actually managed by Julia and not created and destroyed
...
...
This diff is collapsed.
Click to expand it.
src/Connection.jl
+
6
−
0
View file @
0be053a7
...
@@ -34,9 +34,11 @@ to create an connection object from a configuration.
...
@@ -34,9 +34,11 @@ to create an connection object from a configuration.
"""
"""
mutable struct
_Connection
mutable struct
_Connection
wrapped_connection
::
Ptr
{
Cvoid
}
wrapped_connection
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Connection
(
managed_by_julia
::
Bool
=
false
)
function
_Connection
(
managed_by_julia
::
Bool
=
false
)
conn
=
new
()
conn
=
new
()
conn
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
# Only append a finalizer for this if the object is
# Only append a finalizer for this if the object is
# actually managed by Julia and not created and destroyed
# actually managed by Julia and not created and destroyed
...
@@ -63,9 +65,11 @@ an certificate-provider object from a configuration.
...
@@ -63,9 +65,11 @@ an certificate-provider object from a configuration.
"""
"""
mutable struct
_CertificateProvider
mutable struct
_CertificateProvider
wrapped_certificate_provider
::
Ptr
{
Cvoid
}
wrapped_certificate_provider
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_CertificateProvider
(
managed_by_julia
::
Bool
=
false
)
function
_CertificateProvider
(
managed_by_julia
::
Bool
=
false
)
prov
=
new
()
prov
=
new
()
prov
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
# Only append a finalizer for this if the object is
# Only append a finalizer for this if the object is
# actually managed by Julia and not created and destroyed
# actually managed by Julia and not created and destroyed
...
@@ -92,9 +96,11 @@ an connection-configuration object from a configuration.
...
@@ -92,9 +96,11 @@ an connection-configuration object from a configuration.
"""
"""
mutable struct
_Configuration
mutable struct
_Configuration
wrapped_connection_configuration
::
Ptr
{
Cvoid
}
wrapped_connection_configuration
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Configuration
(
managed_by_julia
::
Bool
=
false
)
function
_Configuration
(
managed_by_julia
::
Bool
=
false
)
config
=
new
()
config
=
new
()
config
.
_deletable
(
false
)
if
managed_by_julia
if
managed_by_julia
# Only append a finalizer for this if the object is
# Only append a finalizer for this if the object is
# actually managed by Julia and not created and destroyed
# actually managed by Julia and not created and destroyed
...
...
This diff is collapsed.
Click to expand it.
src/Entity.jl
+
1133
−
4
View file @
0be053a7
...
@@ -22,12 +22,49 @@
...
@@ -22,12 +22,49 @@
#
#
module
Entity
module
Entity
# Creators
export
create_entity
,
export
create_entity
,
create_parent
,
create_property
,
create_property_entity
,
create_record
,
create_recordtype
create_parent
,
create_property
,
create_property_entity
,
create_record
,
create_recordtype
export
get_id
,
get_role
,
get_name
# getters
export
get_id
,
export
set_id
,
set_role
,
set_name
get_role
,
get_name
,
get_description
,
get_datatype
,
get_unit
,
get_value
,
get_version_id
,
get_property
,
get_properties
,
get_parent
,
get_parents
,
get_error
,
get_errors
,
get_warning
,
get_warnings
,
get_info
,
get_infos
,
get_importance
,
get_code
# setters
export
append_parent
,
append_parents
,
append_property
,
append_properties
,
remove_parent
,
remove_property
,
set_id
,
set_role
,
set_name
,
set_description
,
set_datatype
,
set_unit
,
set_value
# helper functions
export
has_errors
,
has_warnings
using
CaosDB
using
CaosDB
...
@@ -38,10 +75,12 @@ create an entity.
...
@@ -38,10 +75,12 @@ create an entity.
"""
"""
mutable struct
_Entity
mutable struct
_Entity
wrapped_entity
::
Ptr
{
Cvoid
}
wrapped_entity
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Entity
(
managed_by_julia
::
Bool
=
false
)
function
_Entity
(
managed_by_julia
::
Bool
=
false
)
entity
=
new
()
entity
=
new
()
entity
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
function
f
(
t
)
function
f
(
t
)
...
@@ -67,10 +106,12 @@ create an parent.
...
@@ -67,10 +106,12 @@ create an parent.
"""
"""
mutable struct
_Parent
mutable struct
_Parent
wrapped_parent
::
Ptr
{
Cvoid
}
wrapped_parent
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Parent
(
managed_by_julia
::
Bool
=
false
)
function
_Parent
(
managed_by_julia
::
Bool
=
false
)
parent
=
new
()
parent
=
new
()
parent
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
function
f
(
t
)
function
f
(
t
)
...
@@ -96,10 +137,12 @@ create an property.
...
@@ -96,10 +137,12 @@ create an property.
"""
"""
mutable struct
_Property
mutable struct
_Property
wrapped_property
::
Ptr
{
Cvoid
}
wrapped_property
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Property
(
managed_by_julia
::
Bool
=
false
)
function
_Property
(
managed_by_julia
::
Bool
=
false
)
property
=
new
()
property
=
new
()
property
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
function
f
(
t
)
function
f
(
t
)
...
@@ -117,6 +160,21 @@ mutable struct _Property
...
@@ -117,6 +160,21 @@ mutable struct _Property
end
end
end
end
"""
Struct containing a pointer to the wrapped cpp messsage object. Meant
for internal use only; don't create it by yourself.
"""
mutable struct
_Message
wrapped_message
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Message
()
mess
=
new
()
mess
.
_deletable
=
false
return
mess
end
end
"""
"""
function create_entity(name::AbstractString = "")
function create_entity(name::AbstractString = "")
...
@@ -274,7 +332,8 @@ function create_parent(; name::AbstractString = "", id::AbstractString = "")
...
@@ -274,7 +332,8 @@ function create_parent(; name::AbstractString = "", id::AbstractString = "")
err_code
=
ccall
(
err_code
=
ccall
(
(
:
caosdb_entity_create_parent
,
CaosDB
.
library_name
),
(
:
caosdb_entity_create_parent
,
CaosDB
.
library_name
),
Cint
,
Cint
,
(
Ref
{
_Parent
},)
parent
,
(
Ref
{
_Parent
},),
parent
,
)
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
...
@@ -290,4 +349,1074 @@ function create_parent(; name::AbstractString = "", id::AbstractString = "")
...
@@ -290,4 +349,1074 @@ function create_parent(; name::AbstractString = "", id::AbstractString = "")
return
parent
return
parent
end
end
"""
function get_id(entity::Ref{_Entity})
Return the id of the given `entity`
"""
function
get_id
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_id
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_id(entity::Ref{_Parent})
Return the id of the given `parent`
"""
function
get_id
(
parent
::
Ref
{
_Parent
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_parent_get_id
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Parent
},
Ptr
{
UInt8
}),
parent
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_id(entity::Ref{_Property})
Return the id of the given `property`
"""
function
get_id
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_id
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_role(entity::Ref{_Entity})
Return the role of the given `entity`.
"""
function
get_role
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_role
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_name(entity::Ref{_Entity})
Return the name of the given `entity`
"""
function
get_name
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_name
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_name(entity::Ref{_Parent})
Return the name of the given `parent`
"""
function
get_name
(
parent
::
Ref
{
_Parent
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_parent_get_name
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Parent
},
Ptr
{
UInt8
}),
parent
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_name(entity::Ref{_Property})
Return the name of the given `property`
"""
function
get_name
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_name
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_description(entity::Ref{_Entity})
Return the description of the given `entity`
"""
function
get_description
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_description
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_description(entity::Ref{_Parent})
Return the description of the given `parent`
"""
function
get_description
(
parent
::
Ref
{
_Parent
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_parent_get_description
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Parent
},
Ptr
{
UInt8
}),
parent
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_description(entity::Ref{_Property})
Return the description of the given `property`
"""
function
get_description
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_description
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_description(entity::Ref{_Message})
Return the description of the given `message`
"""
function
get_description
(
message
::
Ref
{
_Message
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_message_get_description
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Message
},
Ptr
{
UInt8
}),
message
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_datatype(entity::Ref{_Entity})
Return the datatype of the given `entity`
"""
function
get_datatype
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_datatype
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_datatype(entity::Ref{_Property})
Return the datatype of the given `property`
"""
function
get_datatype
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_datatype
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_unit(entity::Ref{_Entity})
Return the unit of the given `entity`
"""
function
get_unit
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_unit
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_unit(entity::Ref{_Property})
Return the unit of the given `property`
"""
function
get_unit
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_unit
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_value(entity::Ref{_Entity})
Return the value of the given `entity`
"""
function
get_value
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_value
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_value(entity::Ref{_Property})
Return the value of the given `property`
"""
function
get_value
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_value
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_version_id(entity::Ref{_Entity})
Return the version_id of the given `entity`
"""
function
get_version_id
(
entity
::
Ref
{
_Entity
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_version_id
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
entity
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_code(message::Ref{_Message})
Return the code of the given `message`.
"""
function
get_code
(
message
::
Ref
{
_Message
})
code
=
Ref
{
Cint
}(
0
)
err_code
=
ccall
(
(
:
caosdb_entity_message_get_code
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Message
},
Ref
{
Cint
}),
message
,
code
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
code
end
"""
function get_importance(property::Ref{_Property})
Return the importance of the given `property`
"""
function
get_importance
(
property
::
Ref
{
_Property
})
out
=
Vector
{
UInt8
}(
undef
,
256
)
err_code
=
ccall
(
(
:
caosdb_entity_property_get_importance
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ptr
{
UInt8
}),
property
,
out
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
GC
.
@preserve
out
unsafe_string
(
pointer
(
out
))
end
"""
function get_error(entity::Ref{_Entity}, index::Cint)
Return the error message of the given `entity` with the provided
`index`.
"""
function
get_error
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
error
=
Ref
{
_Message
}(
_Message
())
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_error
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cint
),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
message_text
=
get_description
(
error
)
code
=
get_code
(
error
)
return
CaosDB
.
Exceptions
.
CaosDBMessage
(
message_text
,
code
)
end
"""
function get_warning(entity::Ref{_Entity}, index::Cint)
Return the warning message of the given `entity` with the provided
`index`.
"""
function
get_warning
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
warning
=
Ref
{
_Message
}(
_Message
())
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_warning
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cint
),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
message_text
=
get_description
(
warning
)
code
=
get_code
(
warning
)
return
CaosDB
.
Exceptions
.
CaosDBMessage
(
message_text
,
code
)
end
"""
function get_info(entity::Ref{_Entity}, index::Cint)
Return the info message of the given `entity` with the provided
`index`.
"""
function
get_info
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
info
=
Ref
{
_Message
}(
_Message
())
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_info
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cint
),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
message_text
=
get_description
(
info
)
code
=
get_code
(
info
)
return
CaosDB
.
Exceptions
.
CaosDBMessage
(
message_text
,
code
)
end
"""
function get_errors(entity::Ref{_Entity})
Return a Vector of all error messages attached to the given `entity`.
"""
function
get_errors
(
entity
::
Ref
{
_Entity
})
size
=
Ref
{
Cint
}(
0
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_errors_size
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
size
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
errors
=
[
get_error
(
entity
,
Cint
(
ii
))
for
ii
=
1
:
size
[]]
return
errors
end
"""
function get_warnings(entity::Ref{_Entity})
Return a Vector of all warning messages attached to the given `entity`.
"""
function
get_warnings
(
entity
::
Ref
{
_Entity
})
size
=
Ref
{
Cint
}(
0
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_warnings_size
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
size
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
warnings
=
[
get_warning
(
entity
,
Cint
(
ii
))
for
ii
=
1
:
size
[]]
return
warnings
end
"""
function get_warnings(entity::Ref{_Entity})
Return a Vector of all info messages attached to the given `entity`.
"""
function
get_infos
(
entity
::
Ref
{
_Entity
})
size
=
Ref
{
Cint
}(
0
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_infos_size
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
size
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
infos
=
[
get_info
(
entity
,
Cint
(
ii
))
for
ii
=
1
:
size
[]]
return
infos
end
"""
function get_parent(entity::Ref{_Entity}, index::Cint)
Return the parent of the given `entity` at position `index`.
"""
function
get_parent
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
parent
=
Ref
{
_Parent
}(
_Parent
())
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_parent
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
parent
end
"""
function get_parents(entity::Ref{_Entity})
Return the vector of all parents of the given `entity`.
"""
function
get_parents
(
entity
::
Ref
{
_Entity
})
size
=
Ref
{
Cint
}(
0
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_parents_size
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
size
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
parents
=
[
get_parent
(
entity
,
Cint
(
ii
))
for
ii
=
1
:
size
[]]
return
parents
end
"""
function get_property(entity::Ref{_Entity}, index::Cint)
Return the property of the given `entity` at position `index`.
"""
function
get_property
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
property
=
Ref
{
_Property
}(
_Property
())
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_property
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
return
property
end
"""
function get_properties(entity::Ref{_Entity})
Return the vector of all properties of the given `entity`.
"""
function
get_properties
(
entity
::
Ref
{
_Entity
})
size
=
Ref
{
Cint
}(
0
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_get_properties_size
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
Cint
}),
entity
,
size
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
properties
=
[
get_property
(
entity
,
Cint
(
ii
))
for
ii
=
1
:
size
[]]
return
properties
end
"""
function set_id(entity::Ref{_Entity}, id::AbstractString)
Throws a `CaosDB.Exceptions.ClientException` since you are not allowed
to set the id of entities.
"""
function
set_id
(
entity
::
Ref
{
_Entity
},
id
::
AbstractString
)
throw
(
CaosDB
.
Exceptions
.
ClientException
(
"You cannot set the id of an entity object.
If you want to update an entity with this id, you have to retrieve it first."
,
),
)
end
"""
function set_id(parent::Ref{_Parent}, id::AbstractString)
Set the id of the given `parent` object.
"""
function
set_id
(
parent
::
Ref
{
_Parent
},
id
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_parent_set_id
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Parent
},
Cstring
),
parent
,
id
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_id(property::Ref{_Property}, id::AbstractString)
Set the id of the given `property` object.
"""
function
set_id
(
property
::
Ref
{
_Property
},
id
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_property_set_id
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Cstring
),
property
,
id
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_role(entity::Ref{_Entity}, role::AbstractString)
Set the role of the given `entity` object.
"""
function
set_role
(
entity
::
Ref
{
_Entity
},
role
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_set_role
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cstring
),
entity
,
role
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_name(entity::Ref{_Entity}, name::AbstractString)
Set the name of the given `entity` object.
"""
function
set_name
(
entity
::
Ref
{
_Entity
},
name
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_set_name
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cstring
),
entity
,
name
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_name(property::Ref{_Property}, name::AbstractString)
Set the name of the given `property` object.
"""
function
set_name
(
property
::
Ref
{
_Property
},
name
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_property_set_name
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Cstring
),
property
,
name
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_name(parent::Ref{_Parent}, name::AbstractString)
Set the name of the given `parent` object.
"""
function
set_name
(
parent
::
Ref
{
_Parent
},
name
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_parent_set_name
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Parent
},
Cstring
),
parent
,
name
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_description(entity::Ref{_Entity}, description::AbstractString)
Set the description of the given `entity` object.
"""
function
set_description
(
entity
::
Ref
{
_Entity
},
description
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_set_description
,
CaosDB
.
library_description
),
Cint
,
(
Ref
{
_Entity
},
Cstring
),
entity
,
description
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_datatype(entity::Ref{_Entity}, datatype::AbstractString)
Set the datatype of the given `entity` object.
"""
function
set_datatype
(
entity
::
Ref
{
_Entity
},
datatype
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_set_datatype
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cstring
),
entity
,
datatype
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_datatype(property::Ref{_Property}, datatype::AbstractString)
Set the datatype of the given `property` object.
"""
function
set_datatype
(
property
::
Ref
{
_Property
},
datatype
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_property_set_datatype
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Cstring
),
property
,
datatype
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_unit(entity::Ref{_Entity}, unit::AbstractString)
Set the unit of the given `entity` object.
"""
function
set_unit
(
entity
::
Ref
{
_Entity
},
unit
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_set_unit
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cstring
),
entity
,
unit
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_unit(property::Ref{_Property}, unit::AbstractString)
Set the unit of the given `property` object.
"""
function
set_unit
(
property
::
Ref
{
_Property
},
unit
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_property_set_unit
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Cstring
),
property
,
unit
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_value(entity::Ref{_Entity}, value::AbstractString)
Set the value of the given `entity` object.
"""
function
set_value
(
entity
::
Ref
{
_Entity
},
value
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_set_value
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cstring
),
entity
,
value
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_value(property::Ref{_Property}, value::AbstractString)
Set the value of the given `property` object.
"""
function
set_value
(
property
::
Ref
{
_Property
},
value
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_property_set_value
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Cstring
),
property
,
value
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function set_importance(property::Ref{_Property}, importance::AbstractString)
Set the importance of the given `property` object.
"""
function
set_importance
(
property
::
Ref
{
_Property
},
importance
::
AbstractString
)
err_code
=
ccall
(
(
:
caosdb_entity_property_set_importance
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Property
},
Cstring
),
property
,
importance
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function append_parent(entity::Ref{_Entity}, parent::Ref{_Parent})
Append the given `parent` to the parents of the given `entity`.
"""
function
append_parent
(
entity
::
Ref
{
_Entity
},
parent
::
Ref
{
_Parent
})
err_code
=
ccall
(
(
:
caosdb_entity_entity_append_parent
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
_Parent
}),
entity
,
parent
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function append_parents(entity::Ref{_Entity}, parents::Vector{Base.RefValue{_Parent}})
Append all given `parents` to the parents of the given `entity`.
"""
function
append_parents
(
entity
::
Ref
{
_Entity
},
parents
::
Vector
{
Base
.
RefValue
{
_Parent
}})
for
parent
in
parents
append_parent
(
entity
,
parent
)
end
end
"""
function remove_parent(entity::Ref{_Entity}, index::Cint)
Remove the parent at position `index` from the parents of the given
entity.
"""
function
remove_parent
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_remove_parent
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cint
),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function append_property(entity::Ref{_Entity}, property::Ref{_Property})
Append the given `property` to the properties of the given `entity`.
"""
function
append_property
(
entity
::
Ref
{
_Entity
},
property
::
Ref
{
_Property
})
err_code
=
ccall
(
(
:
caosdb_entity_entity_append_property
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Ref
{
_Property
}),
entity
,
property
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function append_properties(entity::Ref{_Entity}, properties::Vector{Base.RefValue{_Property}})
Append all given `properties` to the properties of the given `entity`.
"""
function
append_properties
(
entity
::
Ref
{
_Entity
},
properties
::
Vector
{
Base
.
RefValue
{
_Property
}},
)
for
property
in
properties
append_property
(
entity
,
property
)
end
end
"""
function remove_property(entity::Ref{_Entity}, index::Cint)
Remove the property at position `index` from the properties of the given
entity.
"""
function
remove_property
(
entity
::
Ref
{
_Entity
},
index
::
Cint
)
err_code
=
ccall
(
(
:
caosdb_entity_entity_remove_property
,
CaosDB
.
library_name
),
Cint
,
(
Ref
{
_Entity
},
Cint
),
entity
,
index
-
1
,
)
CaosDB
.
Exceptions
.
evaluate_return_code
(
err_code
)
end
"""
function has_errors(entity::Ref{_Entity})
Return true if the given `entity` has errors, false otherwise.
"""
function
has_errors
(
entity
::
Ref
{
_Entity
})
return
get_errors
(
entity
)
>
0
end
"""
function has_warnings(entity::Ref{_Entity})
Return true if the given `entity` has warnings, false otherwise.
"""
function
has_warnings
(
entity
::
Ref
{
_Entity
})
return
get_warnings
(
entity
)
>
0
end
end
end
This diff is collapsed.
Click to expand it.
src/Transaction.jl
+
2
−
0
View file @
0be053a7
...
@@ -35,8 +35,10 @@ object.
...
@@ -35,8 +35,10 @@ object.
"""
"""
mutable struct
_Transaction
mutable struct
_Transaction
wrapped_transaction
::
Ptr
{
Cvoid
}
wrapped_transaction
::
Ptr
{
Cvoid
}
_deletable
::
Bool
function
_Transaction
(
managed_by_julia
::
Bool
=
false
)
function
_Transaction
(
managed_by_julia
::
Bool
=
false
)
trans
=
new
()
trans
=
new
()
trans
.
_deletable
=
false
if
managed_by_julia
if
managed_by_julia
function
f
(
t
)
function
f
(
t
)
ccall
(
ccall
(
...
...
This diff is collapsed.
Click to expand it.
test/runtests.jl
+
11
−
8
View file @
0be053a7
...
@@ -68,7 +68,7 @@ using CaosDB
...
@@ -68,7 +68,7 @@ using CaosDB
# return the correct code (Change it if this ever changes in
# return the correct code (Change it if this ever changes in
# libcaosdb)
# libcaosdb)
client_err
=
CaosDB
.
Exceptions
.
ClientException
(
"Client error"
)
client_err
=
CaosDB
.
Exceptions
.
ClientException
(
"Client error"
)
@test
client_err
.
msg
==
"Client
_Er
r"
@test
client_err
.
msg
==
"Client
erro
r"
@test
client_err
.
code
==
9999
@test
client_err
.
code
==
9999
end
end
...
@@ -107,25 +107,28 @@ using CaosDB
...
@@ -107,25 +107,28 @@ using CaosDB
rec_with_parent_and_props
=
CaosDB
.
Entity
.
create_record
(
"TestRec"
)
rec_with_parent_and_props
=
CaosDB
.
Entity
.
create_record
(
"TestRec"
)
# cannot set an ID
# cannot set an ID
@test_throws
CaosDB
.
Exceptions
.
ClientException
CaosDB
.
Entity
.
set_id
(
"some_id"
)
@test_throws
CaosDB
.
Exceptions
.
ClientException
CaosDB
.
Entity
.
set_id
(
rec_with_parent_and_props
,
"some_id"
,
)
par1
=
CaosDB
.
Entity
.
create_parent
(
name
=
"Parent1"
)
par1
=
CaosDB
.
Entity
.
create_parent
(
name
=
"Parent1"
)
par2
=
CaosDB
.
Entity
.
create_parent
(
name
=
"Parent2"
,
id
=
"id_of_parent_2"
)
par2
=
CaosDB
.
Entity
.
create_parent
(
name
=
"Parent2"
,
id
=
"id_of_parent_2"
)
CaosDB
.
Entity
.
append_parents
(
rec_with_parent_and_props
,
[
par1
,
par2
])
CaosDB
.
Entity
.
append_parents
(
rec_with_parent_and_props
,
[
par1
,
par2
])
@test
length
(
CaosDB
.
Entity
.
get_parents
(
rec_with_parent_and_props
))
==
2
@test
length
(
CaosDB
.
Entity
.
get_parents
(
rec_with_parent_and_props
))
==
2
@test
CaosDB
.
Entity
.
get_name
(
@test
CaosDB
.
Entity
.
get_name
(
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
1
),
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
Cint
(
1
)
),
)
==
"Parent1"
)
==
"Parent1"
@test
CaosDB
.
Entity
.
get_name
(
@test
CaosDB
.
Entity
.
get_name
(
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
2
),
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
Cint
(
2
)
),
)
==
"Parent2"
)
==
"Parent2"
@test
CaosDB
.
Entity
.
get_id
(
@test
CaosDB
.
Entity
.
get_id
(
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
2
),
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
Cint
(
2
)
),
)
==
"id_of_parent_2"
)
==
"id_of_parent_2"
CaosDB
.
Entity
.
remove_parent
(
rec_with_parent_and_props
,
1
)
CaosDB
.
Entity
.
remove_parent
(
rec_with_parent_and_props
,
Cint
(
1
)
)
@test
length
(
CaosDB
.
Entity
.
get_parents
(
rec_with_parent_and_props
))
==
1
@test
length
(
CaosDB
.
Entity
.
get_parents
(
rec_with_parent_and_props
))
==
1
@test
CaosDB
.
Entity
.
get_name
(
@test
CaosDB
.
Entity
.
get_name
(
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
1
),
CaosDB
.
Entity
.
get_parent
(
rec_with_parent_and_props
,
Cint
(
1
)
),
)
==
"Parent2"
)
==
"Parent2"
prop1
=
CaosDB
.
Entity
.
create_property
(
name
=
"Property1"
,
value
=
"2"
)
prop1
=
CaosDB
.
Entity
.
create_property
(
name
=
"Property1"
,
value
=
"2"
)
...
@@ -144,7 +147,7 @@ using CaosDB
...
@@ -144,7 +147,7 @@ using CaosDB
@test
CaosDB
.
Entity
.
get_id
(
@test
CaosDB
.
Entity
.
get_id
(
CaosDB
.
Entity
.
get_properties
(
rec_with_parent_and_props
)[
2
],
CaosDB
.
Entity
.
get_properties
(
rec_with_parent_and_props
)[
2
],
)
==
"id_of_property_2"
)
==
"id_of_property_2"
CaosDB
.
Entity
.
remove_property
(
rec_with_parent_and_props
,
2
)
CaosDB
.
Entity
.
remove_property
(
rec_with_parent_and_props
,
Cint
(
2
)
)
@test
length
(
CaosDB
.
Entity
.
get_properties
(
rec_with_parent_and_props
))
==
2
@test
length
(
CaosDB
.
Entity
.
get_properties
(
rec_with_parent_and_props
))
==
2
@test
CaosDB
.
Entity
.
get_name
(
@test
CaosDB
.
Entity
.
get_name
(
CaosDB
.
Entity
.
get_properties
(
rec_with_parent_and_props
)[
2
],
CaosDB
.
Entity
.
get_properties
(
rec_with_parent_and_props
)[
2
],
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment