Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
285 commits
Select commit Hold shift + click to select a range
901780a
Use of nc_class_id struct and method_id struct for map key
lo-simon Aug 29, 2023
40c3dc1
Remove un-used code
lo-simon Aug 30, 2023
e4e54d6
Add support for allowing user to insert non-standard control class me…
lo-simon Aug 31, 2023
c581781
Fix 'nmos::experimental::control_class' constructor initialization
lo-simon Aug 31, 2023
3b58506
Fix indentation
lo-simon Sep 7, 2023
279358c
Use better error instead of `out of bounds`
lo-simon Sep 7, 2023
431b4a8
Add non-standard Example class based on nmos-device-control-mock
lo-simon Sep 12, 2023
0b87a78
Update log messages
lo-simon Sep 12, 2023
d8a803f
Fix is_nc_block()
lo-simon Sep 12, 2023
9e1fdc8
Tidy-up function signatures
lo-simon Sep 12, 2023
8b4d0d1
Add subscription support
lo-simon Sep 15, 2023
b7a24e5
Update outdated IS-12 links
lo-simon Sep 15, 2023
ec51638
Tidy up, less casting
lo-simon Sep 18, 2023
de5beed
Add description to nc_object to simplify create nc_xxx class
lo-simon Sep 19, 2023
fa2a4ba
Move nc helper functions to nc utils
lo-simon Sep 19, 2023
ac8f21b
look before accessing control_protocol_state
lo-simon Sep 19, 2023
a805d8a
pusback allows on NcBlock only
lo-simon Sep 19, 2023
4873c40
Add control protocol unit tests
lo-simon Sep 19, 2023
68defeb
Add more unit tests
lo-simon Sep 20, 2023
f773372
Add NcPropertyConstraintsNumber, NcPropertyConstraintsString, NcParam…
lo-simon Sep 21, 2023
1bd7283
Tidy up make_nc_class_descriptor
lo-simon Sep 21, 2023
c1a9aca
Merge remote-tracking branch 'origin/master' into is-12
lo-simon Sep 25, 2023
84f13d4
Fix to handle empty NCP URL path
lo-simon Oct 6, 2023
645ff22
Code fix to construct nc_property_changed_event_data, thanks for @maw…
lo-simon Oct 6, 2023
472883e
Insert root block resource to the model will also inserting all its n…
lo-simon Oct 13, 2023
094f568
Add IS-12 to Readme
lo-simon Oct 13, 2023
3ff45a4
Add tounchpoint support and link Receiver-Monitor with IS-04/IS-05 Re…
lo-simon Oct 18, 2023
f8f5270
Add new headers to makefile
lo-simon Oct 18, 2023
264cfba
Set IS-12 nmos resource with relevant nmos::type
lo-simon Oct 19, 2023
ce62865
Clean up on how to construct propertry changed event
lo-simon Oct 19, 2023
f483ffd
Merge remote-tracking branch 'origin/master' into is-12
lo-simon Oct 23, 2023
28187d8
Add constraints support, see https://specs.amwa.tv/ms-05-02/branches/…
lo-simon Oct 26, 2023
677f66e
Update comments
lo-simon Oct 30, 2023
ad85dd0
typo
lo-simon Oct 30, 2023
613beaf
Add primitive types
lo-simon Oct 31, 2023
35de2d0
Merge remote-tracking branch 'origin/master' into is-12
lo-simon Nov 3, 2023
cbedf53
Add a simple temperature sensor example, which pumps out new temperat…
lo-simon Nov 3, 2023
d21ca75
Fix non-standard class's method handing
lo-simon Nov 7, 2023
f039f8f
Remove un-used code and fix typo
lo-simon Nov 8, 2023
98b4b56
Test readonly on set_sequence_item and add_sequence_item
lo-simon Nov 8, 2023
b14afef
Enhance level 0 datatype constraints validation
lo-simon Nov 14, 2023
0049eaa
Return property_deprecated(298) if property is marked as deprecated
lo-simon Nov 14, 2023
cf492a4
Code tidy-up
lo-simon Nov 14, 2023
93f69c2
Enhance non-standard example control method handlers, add level 2 and…
lo-simon Nov 14, 2023
d26bc32
Prevent comparsion warning
lo-simon Nov 14, 2023
2471b01
Reject Set on non-sequence value to sequence property
lo-simon Nov 15, 2023
4420e1e
Fix runtime and property sequence constraints validation
lo-simon Nov 15, 2023
bc5e0f5
Add method parameters constriants validation, and check method deprec…
lo-simon Nov 18, 2023
65e8ebb
Add comments
lo-simon Nov 20, 2023
092519e
No arguments object to those methods which do not require any arguments
lo-simon Nov 20, 2023
14aa16f
Add deprecated property and deprecated method to Example Control Class
lo-simon Nov 20, 2023
0bed427
Add logging for contraints validation
lo-simon Nov 21, 2023
64111a4
Merge branch 'master' into is-12
lo-simon Dec 22, 2023
4f83f38
Add property changed callback to perform application-specific operati…
lo-simon Jan 4, 2024
ea732da
Add authorization support to IS-12
lo-simon Jan 4, 2024
17bfd21
Merge remote-tracking branch 'origin/master' into is-12
lo-simon Jan 8, 2024
6fd4e78
Prevent warning C26800
lo-simon Jan 8, 2024
31321f7
Add ncp authorization field to IS-04 controls array of an NMOS Device
lo-simon Jan 10, 2024
ff3b9a3
Add IS-14 support
lo-simon Jan 10, 2024
e0a3755
Merge branch 'master' into is-14
lo-simon Mar 7, 2024
f685729
Add IS-14 schemas
lo-simon Mar 12, 2024
893f12d
Add GET /rolePaths and /rolePaths/{rolePath} support
lo-simon Mar 13, 2024
0124aa3
Merge branch 'master' into is-14
lo-simon Apr 11, 2024
a8794c5
Update comment
lo-simon Apr 12, 2024
05d6270
Update IS-14 schemas
lo-simon Apr 12, 2024
3a63684
Remove tabs with spaces
lo-simon Apr 12, 2024
c8eb564
IS-14 Added "/rolePaths/{rolePath}/properties" Endpoint (#1)
jonathan-r-thorpe Apr 22, 2024
b4a9038
Add const root block role
lo-simon Apr 23, 2024
a328772
Remove blanks
lo-simon Apr 24, 2024
143f4a0
Add /rolePaths/{rolePath}/methods endpoint
lo-simon Apr 24, 2024
96c5320
Remove blank
lo-simon Apr 25, 2024
d05ce02
Add /rolePaths/{rolePath}/descriptor endpoint, and tidy up
lo-simon Apr 25, 2024
7744eca
Add properties endpoint
jonathan-r-thorpe Apr 22, 2024
5adef6a
Update propertyId regular expression
jonathan-r-thorpe Apr 24, 2024
a4f6591
added /rolePaths/{rolePath}/property/{propertyId}/value and /rolePath…
jonathan-r-thorpe Apr 26, 2024
6788b1f
Fixed property id parsing
jonathan-r-thorpe Apr 26, 2024
e9306f2
Expose make_nc_method_result utility function
jonathan-r-thorpe Apr 26, 2024
f001640
Refactor method result creation
jonathan-r-thorpe Apr 26, 2024
c1d3c10
Fix descriptor endpoints to return NcMethodResult objects instead of …
jonathan-r-thorpe Apr 26, 2024
014cb37
Tidy up
lo-simon Apr 29, 2024
514468f
Add common functions and rename get_nc_object to get_nc_resource
lo-simon Apr 29, 2024
a3d05c2
Merge pull request #2 from lo-simon/is-14-properties-endpoint
lo-simon Apr 30, 2024
b2ae537
Add /rolePaths/{rolePath}/methods/{methodId} PATCH and /rolePaths/{ro…
lo-simon May 8, 2024
1e28e16
Make deprecated properties and methods return OK
jonathan-r-thorpe May 10, 2024
e51d708
Merge pull request #3 from lo-simon/is-14-deprecated
lo-simon May 16, 2024
b54931a
Pull command handle up to IS-12 command handling level to standard me…
jonathan-r-thorpe May 17, 2024
c0dc2f2
Removed and renamed command message response helper functions
jonathan-r-thorpe May 17, 2024
d2cca6d
Apply suggestions from code review
jonathan-r-thorpe May 20, 2024
3dec42a
Merge pull request #4 from lo-simon/refactor-is12-handle
lo-simon May 20, 2024
59da8c5
Added Device configuration data type definitions.
jonathan-r-thorpe May 21, 2024
cafa976
Merge branch 'sony:master' into is-14
lo-simon May 28, 2024
8f24340
Remove not in use code, thanks for @maweit suggestion
lo-simon May 28, 2024
173af96
Update Development/nmos/json_fields.h
jonathan-r-thorpe Jun 3, 2024
81d41ec
Merge pull request #5 from lo-simon/is-14-datatype-defs
lo-simon Jun 3, 2024
44f9857
Merge branch 'master' into is-14
lo-simon Jun 5, 2024
976d766
Modify using the updated version of the control method handler
lo-simon Jun 5, 2024
2588cfb
Add IS-14 bulkPropertiesManager object and endpoints (#7)
jonathan-r-thorpe Jun 19, 2024
3deaccb
Use the correct events for NcBulkPropertiesManager class descriptor
lo-simon Jun 20, 2024
bd9b59a
typo
lo-simon Jun 20, 2024
780c11a
Remove unused code
lo-simon Jun 20, 2024
66434d1
Merge branch 'master' into is-14
lo-simon Jun 21, 2024
226dc59
IS-14 Refactor bulkProperties methods (#8)
jonathan-r-thorpe Jul 14, 2024
4f3de3e
Merge branch 'master' into is-14
lo-simon Aug 1, 2024
7830330
Remove redundant parameters.
jonathan-r-thorpe Aug 6, 2024
b14f570
Apply suggestions from code review
jonathan-r-thorpe Aug 16, 2024
dd7185b
Merge pull request #9 from lo-simon/remove_redundant_params
lo-simon Sep 4, 2024
fa2eea2
Changed ncp_nmos_resource_type to ncp_touchpoint_resource_type
jonathan-r-thorpe Sep 4, 2024
8210589
Generalize find_control_protocol_resource
jonathan-r-thorpe Sep 4, 2024
87cfb85
Remove redundant parameters
jonathan-r-thorpe Sep 4, 2024
9f68dbf
Merge pull request #10 from lo-simon/is-14-simplify
lo-simon Sep 4, 2024
5e2847c
Merge branch 'master' into is-14
jonathan-r-thorpe Nov 6, 2024
5f4ddd3
merge_patch doesn't work when argument value is null
jonathan-r-thorpe Nov 27, 2024
22cb52a
Updated IS-14 datatypes, class and schemas
jonathan-r-thorpe Nov 28, 2024
2357a2f
Merge branch 'sony:master' into is-14
lo-simon Dec 5, 2024
131ddc9
Apply suggestions from code review
jonathan-r-thorpe Dec 6, 2024
6ad0c67
Remove property_trait enum
jonathan-r-thorpe Nov 29, 2024
2db7901
Merge pull request #12 from lo-simon/is-14-updates
lo-simon Dec 6, 2024
36c9566
Merge branch 'master' into is-14
jonathan-r-thorpe Dec 9, 2024
2722925
Initial backup implementation.
jonathan-r-thorpe Dec 9, 2024
16afabc
Add is_rebuildable flag
jonathan-r-thorpe Dec 9, 2024
9f39755
Rename populate_object_properties_holder function
jonathan-r-thorpe Dec 9, 2024
3d4a2a6
Validate and set backup dataset methods
jonathan-r-thorpe Dec 18, 2024
b1b727d
Notify model of changes
jonathan-r-thorpe Dec 18, 2024
eb81cc8
Remove repeated qualifier
jonathan-r-thorpe Dec 18, 2024
f51e311
Remove spurious ;
jonathan-r-thorpe Dec 18, 2024
fde3434
Type wrangling
jonathan-r-thorpe Dec 18, 2024
701494b
std::list?
jonathan-r-thorpe Dec 18, 2024
f27ffe1
Remove application code defined get_properties_by_path handler.
jonathan-r-thorpe Dec 19, 2024
751f288
Remove redundant handlers
jonathan-r-thorpe Dec 20, 2024
c3e3002
Add comments to endpoints
jonathan-r-thorpe Dec 20, 2024
284dccc
Don't pass control_protocol_state to configuration functions
jonathan-r-thorpe Dec 20, 2024
66d84b1
Make method signatures consistent
jonathan-r-thorpe Dec 20, 2024
3800742
Add configuration handlers to api
jonathan-r-thorpe Dec 20, 2024
eac99d2
Pass resource, rather than making modify_device_model search for it
jonathan-r-thorpe Dec 20, 2024
a34db05
Create example filter_property_value_holders_handler
jonathan-r-thorpe Dec 20, 2024
18f3fd4
Moved util functions from configuration_methods to configuration_utils
jonathan-r-thorpe Jan 2, 2025
b960e13
Add get_role_path tests
jonathan-r-thorpe Jan 2, 2025
ca37276
Handle undefined callback functions
jonathan-r-thorpe Jan 3, 2025
4e194f7
Change error message
jonathan-r-thorpe Jan 6, 2025
17683ca
refactor modify_device_model
jonathan-r-thorpe Jan 6, 2025
d282bf0
Indicate rebuildable control protocol resources
jonathan-r-thorpe Jan 8, 2025
21bb8a9
Test configuration utils
jonathan-r-thorpe Jan 8, 2025
64e4468
Example rebuildable block handler
jonathan-r-thorpe Jan 8, 2025
684d380
Fix testApplyBackupDataSet_WithoutCallbacks
jonathan-r-thorpe Jan 8, 2025
da9b3c8
Apply suggestions from code review
jonathan-r-thorpe Jan 13, 2025
1349075
Implement rebuildable block handler
jonathan-r-thorpe Jan 13, 2025
80a73ae
Changes from review
lo-simon Jan 13, 2025
eeac4e0
Change value to array
jonathan-r-thorpe Jan 13, 2025
faa05cd
Remove redundant helper function
jonathan-r-thorpe Jan 13, 2025
acde2d4
Iterate example modify_rebuildable_block handler
jonathan-r-thorpe Jan 13, 2025
35e221a
add nc namespace to control_protocol_utils
jonathan-r-thorpe Jan 15, 2025
2889974
Add get_object_properties_holder and get_child_object_properties_hold…
jonathan-r-thorpe Jan 15, 2025
a1ff8a9
Simplify code
jonathan-r-thorpe Jan 15, 2025
ff7027e
Remove redundant restore_mode parameter. Fix locking issue
jonathan-r-thorpe Jan 27, 2025
d9813cf
Add configuration_resources module
jonathan-r-thorpe Jan 27, 2025
27ac451
Add configuration_resources module. Add return objects to callback fu…
jonathan-r-thorpe Jan 27, 2025
098facf
Refactor make ObjectPropertiesSetValidation object creation
jonathan-r-thorpe Jan 27, 2025
ec0643b
Apply suggestions from code review
jonathan-r-thorpe Jan 29, 2025
4eb2690
Merge pull request #13 from lo-simon/is-14-backup-restore
lo-simon Jan 29, 2025
38a424e
Fixed crash in get_properties_by_path
jonathan-r-thorpe Jan 29, 2025
dd80d6b
Merge pull request #14 from lo-simon/is-14-get_properties_by_path-error
lo-simon Jan 29, 2025
0f888fe
Merge branch 'master' into is-14
lo-simon Feb 3, 2025
8b59cd8
Merge branch 'master' into is-14
lo-simon Feb 4, 2025
66971fb
Merge branch 'master' into is-14
lo-simon Mar 6, 2025
66dad9b
Merge branch 'master' into is-14
lo-simon Mar 14, 2025
739b64a
Merge branch 'master' into is-14
jonathan-r-thorpe Mar 18, 2025
5eb174f
Move insert and erase control protocol methods into nc namespace
jonathan-r-thorpe Mar 18, 2025
327ab40
Remove blank line
lo-simon Mar 27, 2025
710e9bd
Remove unreachable code
lo-simon Mar 27, 2025
097ded6
Add missing erase_resource for control_protocol_resource to header
lo-simon Mar 27, 2025
0dc1866
Use the relevant insert_resource and erase_resource for node_resource…
lo-simon Mar 27, 2025
cacbc06
Replace magic propertry id numbers with defined propertry id numbers
lo-simon Mar 27, 2025
bca808d
Update IS-14 datatypes to match latest changes to spec
jonathan-r-thorpe May 19, 2025
58c2b9f
Return inherited fields in structs on datatype descriptor endpoint
jonathan-r-thorpe May 19, 2025
671e734
Fix master_gain owner bug
jonathan-r-thorpe May 28, 2025
92328e7
Fix bulkProperties status code bug
jonathan-r-thorpe May 28, 2025
4c0fab9
Fix bulkProperties recurse bug
jonathan-r-thorpe May 28, 2025
db506d6
Improve error handling
jonathan-r-thorpe May 30, 2025
658fe35
Merge branch 'master' into is-14
jonathan-r-thorpe May 30, 2025
28a7d53
Simplify configuration api callbacks
jonathan-r-thorpe Jun 13, 2025
f804d31
Factor out adding and removing block members
jonathan-r-thorpe Jun 13, 2025
3b346e1
Ensure block members correctly created when adding device model objects
jonathan-r-thorpe Jun 16, 2025
219e8d1
Validate owner using block oid against block member and property valu…
jonathan-r-thorpe Jun 16, 2025
3912562
Moved modification of rebuildable block functions into nmos-cpp. Crea…
jonathan-r-thorpe Jun 19, 2025
5025f5a
Refactor and handle more error conditions
jonathan-r-thorpe Jun 20, 2025
c642f62
Refactor configuration utils
jonathan-r-thorpe Jun 23, 2025
2bf9271
Improve user example code
jonathan-r-thorpe Jun 23, 2025
ae41ee9
Renames NcPropertyValueHolder to NcPropertyHolder and BulkValues type…
jonathan-r-thorpe Jun 24, 2025
f86e93f
Line up IS-04 schemas with specification
lo-simon Jun 27, 2025
d2d2c6d
Update device configuration links
lo-simon Jun 27, 2025
682a15e
Change to read lock as no resouces will be modified in validating bul…
lo-simon Jul 8, 2025
7b9ed45
Add allowed_member_classes and dependency_paths fields
jonathan-r-thorpe Jul 8, 2025
4693bdc
Add modify test initial commit
jonathan-r-thorpe Jul 9, 2025
10dcaaf
add tests for modify_rebuildable_block
jonathan-r-thorpe Jul 9, 2025
9aaad9f
Remove unnecessary copy
lo-simon Jul 10, 2025
53642f1
Remove unnessary filter_property_holders handler from nmos::details::…
lo-simon Jul 10, 2025
6f8cea2
Tidy up
lo-simon Jul 10, 2025
ef62cf3
Update comment
lo-simon Jul 10, 2025
24028eb
Fix test using the updated modify_rebuildable_block function signature
lo-simon Jul 11, 2025
0f02e4e
Merge branch 'lo-simon-master' into is-14
lo-simon Jul 11, 2025
562cfdc
Remove class checking from user callback
jonathan-r-thorpe Jul 15, 2025
ce8fea9
Further simplify user code callbacks
jonathan-r-thorpe Jul 15, 2025
cb6dd09
Update comments
jonathan-r-thorpe Jul 15, 2025
646403b
Update based on changes to NcPropertyHolder
jonathan-r-thorpe Jul 15, 2025
714d0d7
Implement includeDescriptors query parameter
jonathan-r-thorpe Jul 16, 2025
bd456fa
Simplify backup dataset validation
jonathan-r-thorpe Jul 16, 2025
aae3b6d
Refactored filter_property_holders to get_read_only_modification_allo…
jonathan-r-thorpe Jul 17, 2025
a3f8e60
Refactored add_device_model_object to create_device_model_object
jonathan-r-thorpe Jul 17, 2025
f0feec2
Update comments
jonathan-r-thorpe Jul 17, 2025
c9ecc66
Update comments
jonathan-r-thorpe Jul 18, 2025
0dc51e3
Fix create device model object validation
jonathan-r-thorpe Jul 18, 2025
96d6d16
Remove duplicate OID warning
jonathan-r-thorpe Jul 18, 2025
07d857b
Updated remove_device_model_object_handler definition
jonathan-r-thorpe Jul 18, 2025
b2899b5
Update comments and tidy-up
lo-simon Jul 18, 2025
bfe9a9a
Should be value rather than reference
lo-simon Jul 18, 2025
d4e32bc
Should be value than reference
lo-simon Jul 18, 2025
cc90f53
Use value instead of reference
lo-simon Jul 18, 2025
e8a8189
Replace with defined value `nc_block_members_property_id`
lo-simon Jul 18, 2025
b063d88
Minor tidy-up
lo-simon Jul 18, 2025
dac85d3
Add in create and validate validation fingerprint callbacks
jonathan-r-thorpe Jul 21, 2025
e189ee7
Remove the unnecessary nmos::resources for the lambda reference, and …
lo-simon Jul 24, 2025
08c3a40
Add `configuration_port` settings to node example configuration JSON
lo-simon Jul 25, 2025
92324a1
Update Readme to include IS-14
lo-simon Jul 25, 2025
93b96ec
Add IS-14 test suite to front page and CI
jonathan-r-thorpe Jul 25, 2025
7343033
Fix IS-14 test suite name in run_nmos_testing
jonathan-r-thorpe Jul 28, 2025
051ede1
Add constraint and data type validation when restoring/validating
jonathan-r-thorpe Jul 30, 2025
10b6bc6
Merge branch 'master' into is-14
lo-simon Aug 19, 2025
dfa6bbb
Fix conversion from 'int' to 'web::http::status_code'
lo-simon Aug 19, 2025
7c9700f
Cast value to the correct web::json::value type for the make_nc_prope…
lo-simon Aug 20, 2025
28574a3
Add reference comments
lo-simon Aug 20, 2025
daa51df
Fix the expected nc_restore_validation_status for the testApplyBackup…
lo-simon Aug 20, 2025
e7e4b8c
Add a helper function to insert root block and all sub resources
lo-simon Aug 20, 2025
2bc97a1
Use pre-defined value for the make_nc_property_descriptor name parameter
lo-simon Aug 20, 2025
f71b162
Use pre-defined value for the make_nc_property_descriptor name parameter
lo-simon Aug 20, 2025
31551c5
Change nmos::nc_restore_mode::restore_mode for restore_mode instead o…
lo-simon Aug 20, 2025
90408c7
Merge branch 'master' into is-14
lo-simon Aug 22, 2025
c02c6e2
Make example control rebuildable rather than the Device Manager
jonathan-r-thorpe Sep 11, 2025
c0fdd4b
Merge branch 'master' into is-14
jonathan-r-thorpe Sep 11, 2025
8a0ebbe
Update README's recent activity
jonathan-r-thorpe Sep 12, 2025
7917966
Move control_protocol_utils functions into nc namespace
jonathan-r-thorpe Sep 12, 2025
c46a46f
Rename utils functions to get rid of "nc" or "control_protocol" in names
jonathan-r-thorpe Sep 12, 2025
5ac846d
Move control_protocol_methods into the nc namespace
jonathan-r-thorpe Sep 12, 2025
d91304b
Move control_protocol_resource functions into nc namespace
jonathan-r-thorpe Sep 12, 2025
e58321f
Remove nc from function names in the nc namespace
jonathan-r-thorpe Sep 12, 2025
d450ba4
Use set_control_protocol_property for setting example temperature sen…
jonathan-r-thorpe Sep 12, 2025
0e26600
Remove vs files
jonathan-r-thorpe Sep 12, 2025
c04393d
Remove test config files
jonathan-r-thorpe Sep 12, 2025
321c4fd
Deprecate old style function names
jonathan-r-thorpe Sep 24, 2025
51cf635
Update comments and tidy-up
lo-simon Sep 26, 2025
ae577c3
Tidy-up and remove unnecessary make_callback's parameters
lo-simon Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions Development/cmake/NmosCppLibraries.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,91 @@ target_include_directories(nmos_is12_schemas PUBLIC
list(APPEND NMOS_CPP_TARGETS nmos_is12_schemas)
add_library(nmos-cpp::nmos_is12_schemas ALIAS nmos_is12_schemas)

# nmos_is14_schemas library

set(NMOS_IS14_SCHEMAS_HEADERS
nmos/is14_schemas/is14_schemas.h
)

set(NMOS_IS14_V1_0_TAG v1.0.x)

set(NMOS_IS14_V1_0_SCHEMAS_JSON
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/base.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/bulkProperties-get-response.json

third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/bulkProperties-patch-request.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/bulkProperties-patch-response.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/bulkProperties-put-request.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/bulkProperties-put-response.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/descriptor-get.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/method-patch-request.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/method-patch-response.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/methods-base.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/ms05-error.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/properties-base.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/property.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/property-descriptor.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/property-value-get.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/property-value-put-request.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/property-value-put-response.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/rolePath.json
third_party/is-14/${NMOS_IS14_V1_0_TAG}/APIs/schemas/rolePaths-base.json
)

set(NMOS_IS14_SCHEMAS_JSON_MATCH "third_party/is-14/([^/]+)/APIs/schemas/([^;]+)\\.json")
set(NMOS_IS14_SCHEMAS_SOURCE_REPLACE "${CMAKE_CURRENT_BINARY_DIR_REPLACE}/nmos/is14_schemas/\\1/\\2.cpp")
string(REGEX REPLACE "${NMOS_IS14_SCHEMAS_JSON_MATCH}(;|$)" "${NMOS_IS14_SCHEMAS_SOURCE_REPLACE}\\3" NMOS_IS14_V1_0_SCHEMAS_SOURCES "${NMOS_IS14_V1_0_SCHEMAS_JSON}")

foreach(JSON ${NMOS_IS14_V1_0_SCHEMAS_JSON})
string(REGEX REPLACE "${NMOS_IS14_SCHEMAS_JSON_MATCH}" "${NMOS_IS14_SCHEMAS_SOURCE_REPLACE}" SOURCE "${JSON}")
string(REGEX REPLACE "${NMOS_IS14_SCHEMAS_JSON_MATCH}" "\\1" NS "${JSON}")
string(REGEX REPLACE "${NMOS_IS14_SCHEMAS_JSON_MATCH}" "\\2" VAR "${JSON}")
string(MAKE_C_IDENTIFIER "${NS}" NS)
string(MAKE_C_IDENTIFIER "${VAR}" VAR)

file(WRITE "${SOURCE}.in" "\
// Auto-generated from: ${JSON}\n\
\n\
namespace nmos\n\
{\n\
namespace is14_schemas\n\
{\n\
namespace ${NS}\n\
{\n\
const char* ${VAR} = R\"-auto-generated-(")

file(READ "${JSON}" RAW)
file(APPEND "${SOURCE}.in" "${RAW}")

file(APPEND "${SOURCE}.in" ")-auto-generated-\";\n\
}\n\
}\n\
}\n")

configure_file("${SOURCE}.in" "${SOURCE}" COPYONLY)
endforeach()

add_library(
nmos_is14_schemas STATIC
${NMOS_IS14_SCHEMAS_HEADERS}
${NMOS_IS14_V1_0_SCHEMAS_SOURCES}
)

source_group("nmos\\is14_schemas\\Header Files" FILES ${NMOS_IS14_SCHEMAS_HEADERS})
source_group("nmos\\is14_schemas\\${NMOS_IS14_V1_0_TAG}\\Source Files" FILES ${NMOS_IS14_V1_0_SCHEMAS_SOURCES})

target_link_libraries(
nmos_is14_schemas PRIVATE
nmos-cpp::compile-settings
)
target_include_directories(nmos_is14_schemas PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${NMOS_CPP_INSTALL_INCLUDEDIR}>
)

list(APPEND NMOS_CPP_TARGETS nmos_is14_schemas)
add_library(nmos-cpp::nmos_is14_schemas ALIAS nmos_is14_schemas)

# nmos-cpp library

if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
Expand Down Expand Up @@ -928,6 +1013,10 @@ set(NMOS_CPP_NMOS_SOURCES
nmos/channels.cpp
nmos/client_utils.cpp
nmos/components.cpp
nmos/configuration_api.cpp
nmos/configuration_methods.cpp
nmos/configuration_resources.cpp
nmos/configuration_utils.cpp
nmos/connection_activation.cpp
nmos/connection_api.cpp
nmos/connection_events_activation.cpp
Expand Down Expand Up @@ -1022,6 +1111,11 @@ set(NMOS_CPP_NMOS_HEADERS
nmos/colorspace.h
nmos/components.h
nmos/copyable_atomic.h
nmos/configuration_api.h
nmos/configuration_handlers.h
nmos/configuration_methods.h
nmos/configuration_resources.h
nmos/configuration_utils.h
nmos/connection_activation.h
nmos/connection_api.h
nmos/connection_events_activation.h
Expand Down Expand Up @@ -1057,6 +1151,7 @@ set(NMOS_CPP_NMOS_HEADERS
nmos/is09_versions.h
nmos/is10_versions.h
nmos/is12_versions.h
nmos/is14_versions.h
nmos/issuers.h
nmos/json_fields.h
nmos/json_schema.h
Expand Down Expand Up @@ -1207,6 +1302,7 @@ target_link_libraries(
nmos-cpp::nmos_is09_schemas
nmos-cpp::nmos_is10_schemas
nmos-cpp::nmos_is12_schemas
nmos-cpp::nmos_is14_schemas
nmos-cpp::mdns
nmos-cpp::slog
nmos-cpp::OpenSSL
Expand Down
5 changes: 4 additions & 1 deletion Development/cmake/NmosCppTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,11 @@ set(NMOS_CPP_TEST_NMOS_TEST_SOURCES
nmos/test/capabilities_test.cpp
nmos/test/channels_test.cpp
nmos/test/condition_variable_test.cpp
nmos/test/control_protocol_test.cpp
nmos/test/configuration_methods_test.cpp
nmos/test/configuration_resources_test.cpp
nmos/test/configuration_utils_test.cpp
nmos/test/control_protocol_methods_test.cpp
nmos/test/control_protocol_test.cpp
nmos/test/control_protocol_utils_test.cpp
nmos/test/did_sdid_test.cpp
nmos/test/event_type_test.cpp
Expand Down
1 change: 1 addition & 0 deletions Development/nmos-cpp-node/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@
//"system_port": 10641,
// control_protocol_ws_port [node]: used to construct request URLs for the Control Protocol websocket, or negative to disable the control protocol features
//"control_protocol_ws_port": 3218,
//"configuration_port": 3219,

// listen_backlog [registry, node]: the maximum length of the queue of pending connections, or zero for the implementation default (the implementation may not honour this value)
//"listen_backlog": 0,
Expand Down
2 changes: 1 addition & 1 deletion Development/nmos-cpp-node/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ int main(int argc, char* argv[])
// only configure the following callbacks if IS-12/BCP-008-01 is required
// Note:
// the get_control_class_descriptor, get_control_datatype_descriptor and get_control_protocol_method_descriptor callbacks must be set up before executing the make_node_server
nmos::experimental::control_protocol_state control_protocol_state(node_implementation.get_lost_packet_counters, node_implementation.get_late_packet_counters, node_implementation.reset_monitor, node_implementation.control_protocol_property_changed);
nmos::experimental::control_protocol_state control_protocol_state(node_implementation.control_protocol_property_changed, node_implementation.create_validation_fingerprint, node_implementation.validate_validation_fingerprint, node_implementation.get_read_only_modification_allow_list, node_implementation.remove_device_model_object, node_implementation.create_device_model_object, node_implementation.get_lost_packet_counters, node_implementation.get_late_packet_counters, node_implementation.reset_monitor);
if (0 <= nmos::fields::control_protocol_ws_port(node_model.settings))
{
node_implementation
Expand Down
Loading
Loading