Commit Graph

51 Commits (034980eb53b558c99209ffce5fdea9e3e5de92a6)

Author SHA1 Message Date
mullerj b04acd3a03
Merge branch 'USNavalResearchLaboratory:master' into master 2024-03-27 21:36:11 -04:00
bebopagogo 2ae69e6e96 fix to NormFile::Open() where 'flags' were not properly saved and affected NormFile::Rename() 2024-01-28 20:26:15 -05:00
bebopagogo 6188965887 fixed improper delete operator usage in normApp.cpp and minor tweaks 2024-01-24 13:43:38 -05:00
mullerj 86d8fb13d9
Merge branch 'USNavalResearchLaboratory:master' into master 2023-06-19 17:02:21 -04:00
bebopagogo 17dc41ab72 added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:30:36 -04:00
mullerj db20c644c1
Feature/9 net norm extension target architecture packages (#13)
* Added Win64 project and release configuration

* Added project reference to Win64 project

* Added Win32 project. Moved norm build actions to scripts

* Added linux .NET extension project

* Modified linux project to copy to output directory

* Fixed linux pack script

* Changed Linux project to copy always

* Changed Linux project package path

* Moved Windows libraries to runtimes path

* Renamed runtime specific projects
2023-03-13 15:45:32 -04:00
mullerj 701360ac48
NormSession typos in comments (#12)
* Fixed default function comments in NormSession

* Fixed typos in NormSession

* Fixed default function comments
2023-03-09 19:37:43 -05:00
mullerj 26944463e2
.NET Extension Design Implementation (#10)
* changes

* Removed GetsNextEvent test

* Implemented GetNextEvent

* Fixed NormStream design

* Fixed HasNextEvent design

* Added NormGetNextEvent overload

* Implemented HasNextEvent

* Updated design

* Added Kernel32 to design

* Modified to use .NET EventWaitHandle instead of kernel32 P/Invoke

* Modified to only copy norm.dll on Windows

* Added copy for non Windows

* add start and stop receiver

* add receiver

* Modified non-Windows to use Socket for HasNextEvent

* Deleted NormFileTests since they break the other tests

* Fixed ReceiverReceives test

* Updated ReceiverReceives test name

* Modified ReceivesFile to get all events instead of adding to array

* Cleaned up NormInstance formatting

* Refactored tests

* Updated NormFile

* Implemented send stream

* Implemented receive stream

* Implemented NormFile Name

* Updated ReceivesFile to use events

* data enqueue

* Fixed merge

* Fixed ReceivesData test

* Modified data test to compare collections without order

* stop instance working

* enqueues data

* Reverted upgrade to .NET 7

* Restartinstance is working

* Modified NormData to read bytes instead of as string

* Removed using statements in NormData

* Updated design

* Updated design

* Switched to nint

* Switched design to nint

* unfinished test for suspendinstance

* working suspend instance

* added resume function to instance

* Updated session send and receive data tests

* Removed launch settings

* session configuration functions

* Modified to use random port due to intermittent failed tests due to session conflict

* Modified to randomize text content

* Implemented NormNode Address

* Updated design for NormNode

* Implemented NormNode Grtt

* Implemented NormNode Id

* implement session configuration functions

* instance

* missing return types

* add missing handle param

* normNode

* Implemented RequeueObject

* Implemented SetWatermark and AckingNode

* Implemented CancelWatermark

* Implemented ResetWatermark

* Implemented SendCommand

* Implemented CancelCommand

* Implemented DebugLevel. Removed DebugPipe

* Updated SetTxPort

* Updated SetRxPortReuse

* Implemented SetEcnSupport

* Added test for RxLoss

* Implemented ReportInterval

* Refactored session calculated properties

* Updated enqueue methods

* Updated StreamOpen design

* Fixed SetWatermark overload

* Implemented GetAckingStatus

* Removed SendCommand overload

* Removed SetSilentReceiver overload

* Implemented NormEvent ToString

* Implemented NormFile Rename

* Implemented SetUnicastNack

* Added ReceivesCommand test

* Implemented SetNackingMode

* Implemented SetRepairBoundary

* Added Fact to SetsRepairBoundary test

* Implemented SetRxRobustFactor

* Implemented NormNode Command

* Implemented FreeBuffers

* Implemented Retain and Release

* Fix using namespaces

* test get object type

* NormObject get size

* NormObject setNackingMode

* NormObject get bytes pending

* NormObjet cancel

* NormObject retain

* NormObject release

* NormObject get sender

* NormObject get hashcode

* normObject equals

* Implemented NormObject Equals

* Removed redundant cast

* Removed unused using directive

* Removed static using

* Added NormApi to global Usings

* Added Enums to global usings

* Cleaned up NormObject Equals

* Cleaned up NormObject GetHashCode() test

* Cleaned up warning

* normStream has vacancy

* normStream read offset

* normStream seek msg start

* NormEventListener interface

* normStream set push enable

* normStream set auto flush

* Simplified NormApi usage

* Updated design of NormStream

* public interface

* Fixed INormEventListener

* fixing name space

* commit initializing  inputstream

* Added StreamBreakException

* Fixed formatting

* Fixed formatting

* Fixed formatting

* Initial implementation of NormOutputStream

* Cleaned up NormObject Equals

* NormInputStream class

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* normStream data offset

* move offset length arithmetic into write method

* building normInputstream

* all method implemented

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* NormStreamRead

* Fixed build error

* Completed ReceivesStreamWithOffset test

* Added retries to GetsCommand test

* Updated type for NormStreamRead

* Simplified NormStream Read

* Simplified NormStream Write

* Added dataOffset to DataEnqueue

* Fixed DataEnqueue overload

* Added infoOffset to FileEnqueue

* Added infoOffset to StreamOpen

* Updated design

* Removed extra overload of FileEnqueue

* Removed DataEnqueue overloads

* Removed extra overload from StreamOpen

* Added HasNextEvent overload

* Implemented OpenDebugPipe

* add thread locking

* locking for properties

* Not supported exceptions

* Implementing sychronize

* fixing inputstream

* adding sychronize message

* Reorganized NormApi and updated design

* Modified to skip GetsCommand test on IO exception

* WIP: 537b706 adding sychronize message

* adding message to expections

* Fixed test file cleanup

* Added locking to NormSession methods that use static field

* Changed StartsSender to skippablefact

* Changed to SetsNackingMode to skippable fact

* Converted tests to skippable

* Converted more tests to skippable

* Converted all tests that start sender to skippable

* Updated README about skipped tests

* documentation

* 2 doc

* Cleaned up input and output stream classes

* Cleaned up NormApi

* Updated NormOutputStream Write

* Added document comments to NormApi

* Added comments to NormApi

* Removed unnecessary usings

* Added comments to NormApi

* set up the rest of doc

* api documentation

* fix typo

* fix spacing

* Doc for instance need clean up

* clean up

* document norm session

* NormStream documentation

* commit for node

* NormObject docs

* Updated NormApi comments

* Cleaned up NormInstance comments

* Cleaned up NormNode comments

* Cleaned up NormObject comments

* Cleaned up NormSession comments

* Cleaned up NormStream comments

* Cleaned up NormObject comments

* Adding commits

* Update get commit

* clean up on data and event

* Norm Data change

* clean up normfile docs

* clean up normstream

* clean up api docs

* Fixed data

* space approved

* Cleaned up NormData comment

* documentation clean up

* Update the ReadMe

* Cleaned up comments

* Added comments to NormAckingStatus

* Added comments to NormEventType

* Added comments to NormFecType

* Added comments to NormNackingMode

* Added comments to NormObjectType

* Added comments to NormProbingMode

* Added comments to NormRepairBoundary

* Added comments to NormFlushMode

* Added comments to NormSyncPolicy

* Cleaned up comments.  Fixed default for StartSender

* Added comments to constants

* Moved constants to relevant classes

* Updated design

* Removed NormDataDetachData since it is not referenced

* Updated design

* Updated input and output stream design

* Updated packaging README

* Removed language version since redundant

* Cleaned up project file

* Updated to package from the dotnet directory (test project is set to not pack)

* Added version to project

---------

Co-authored-by: syermak <syerm001@odu.edu>
Co-authored-by: Sylvester Freeman III <Slyfreeman3@gmail.com>
Co-authored-by: Sergiy <47069243+SergiyYermak@users.noreply.github.com>
Co-authored-by: mullerj <mullerj@users.noreply.github.com>
2023-03-01 17:05:29 -05:00
mullerj 3a20a8bcb2
.NET Extension Design (#5)
* Designed .NET classes from Java

Co-authored-by: Sergiy <sergiy.yermak.ctr@us.navy.mil>

* Added NormApi static class

* Started on api uml

Co-authored-by: mullerj <mullerj@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Add static methods to api uml

* add static method to normapi uml

* Add enums

* Changes

* Overload methods with defaults

* type marshalling

* change handles to in nuint

* marshall more handles

* Removed in/ref and reformatted.

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* Removed duplicate enums

* Removed NormEvent from NormApi

* Fixed typo

* design NormInstance methods

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* Fixed CreateInstance method

* Changed handles to long

* Change id types to long

* Remove condition checks that do nothing

* Removed UserData functions

* Removed NormAlloc() and NormFree()

* Cleaned up some API methods

* Fix misspelling

Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Design NormSession methods

Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Added missing comma

* Uml for enqueue
Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* Updated design based on enqueue test

* Updated EnqueueFile sequence diagram

Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Moved sequence diagrams

* Added constants to NormApi

* Removed method level sequence diagrams

---------

Co-authored-by: Sergiy <sergiy.yermak.ctr@us.navy.mil>
Co-authored-by: syermak <syerm001@odu.edu>
Co-authored-by: mullerj <mullerj@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>
Co-authored-by: Sergiy <47069243+SergiyYermak@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfreeman3@gmail.com>
2023-02-09 11:49:33 -05:00
bebopagogo 92927c8a37 updated pynorm Python binding to use Python 3 contributions from Honglei 2022-11-11 20:17:30 -05:00
bebopagogo 9f65f5e20a pynorm improvement to keep cache sender enqueued objects in pynorm.instance._objects cache 2022-10-04 19:21:41 -04:00
bebopagogo e9658ab837 fixed type casting issue with NormSenderNode::backoff_factor 2022-09-11 14:29:58 -04:00
bebopagogo d00ebc22d2 fixed type casting issue with NormSenderNode::backoff_factor 2022-09-11 14:27:21 -04:00
bebopagogo b896f5408f update to NormSession::DeleteTxObject() to close file for NORM_OBJECT_FILE _befere_ issuing PURGE notification 2022-09-07 11:48:40 -04:00
bebopagogo a8c5688d40 updated NormFile::Rename() to always close/reopen files upon renaming for better performance due to way file handles are managed on Unix ... was already required for Windows 2022-08-21 00:18:29 -04:00
bebopagogo 5872195eaa refinement/improvement to inactive sender timeout/reactivation 2022-08-20 22:52:05 -04:00
Brian Adamson 684c7303e2 Merge branch 'master' of https://github.com/USNavalResearchLaboratory/norm 2022-08-20 22:36:52 -04:00
Brian Adamson 001d50aa46 pynorm fixes 2022-08-20 22:36:29 -04:00
Honglei a08f387ec5
Make Session.getReportInterval work (#68)
* Update core.py

libnorm.NormGetReportInterval.argtypes missed

* Update session.py

getReportInterval Need return the  value

* fix Unknown command FetchContent_MakeAvailable

-- Building protokit from c51d4a771b0ccb073a78e1cf60f0deb7d652f382
CMake Error at CMakeLists.txt:63 (FetchContent_MakeAvailable):
  Unknown CMake command "FetchContent_MakeAvailable".

https://github.com/EMsoft-org/EMsoft/issues/93
2022-07-18 16:54:09 -04:00
bebopagogo a1bb33c354 added full parameter set to pynorm.Session.setTxPort() 2022-07-02 17:07:23 -04:00
bebopagogo 858be37709 fixes to pynorm for Python3 and normMsgr.py and normFileSend.py examples 2022-05-22 23:17:58 -04:00
bebopagogo 1ba16231bb fix to pynorm Session.setRxPortReuse() method 2022-05-22 22:08:57 -04:00
bebopagogo 5cd6498c39 fixes to pynorm for Python3 and normMsgr.py and normFileSend.py examples 2022-05-22 22:01:47 -04:00
bebopagogo 972b1a3e0b fixes to pynorm for Python3 and normMsgr.py and normFileSend.py examples 2022-05-22 21:52:45 -04:00
bebopagogo e9e3c99b21 update to NORM_SYNC_ALL policy 2022-05-09 11:33:01 -04:00
bebopagogo 46a030891d NORM_SYNC_ALL policy improvement 2022-05-09 11:30:24 -04:00
Jeffery Weston b997771fec Update unix postprocessor code to allow for a fixed number of simultaneous postprocessor child processes. Previous behavior killed the previous process in order to start a new one. Also correctly tracks when they die. 2022-04-29 13:47:07 -04:00
Luca Boccassi 9c367b50bc
pkg-config, PIE, API breakages fixes (#23)
* Update protolib to pick up new fixes

* CMake: restore SONAME_VERSION to 1

* CMake: generate pkg-config file

* CMake: set -fvisibility=hidden and POSITION_INDEPENDENT_CODE

Need to build everything with fPIC, and also hide symbols by default,
since public ones are explicitly marked as such.

* Revert public API incompatible changes

NormSetId and NormCountCompletedObjects were part of the public API in
released versions, so they cannot be just removed without breaking API/ABI
compatibility.
NormSendCommandTo is a private symbol, but was marked for export by
mistake.

* Add BUILD_STATIC_LIBS option to allow building both static and shared objects

CMake does not support this out of the box, so it has to be implemented
manually. It results in the libnorm build being repeated twice, as there's
no object sharing.
2021-02-01 10:20:20 -05:00
Brian Adamson 0ff199fc3c normStreamer example feature additions, code cleanup 2020-06-14 11:21:19 -04:00
Brian Adamson ad31a1a32a normStreamer example tweak 2020-06-13 13:15:03 -04:00
bebopagogo 5519d06cee fix for non ECN_SUPPORT build 2020-06-06 12:50:11 -04:00
bebopagogo c738eea1a9 added option for GRTT probing aspect of NORM to use a distinct IP traffic class for its operation. The reason for this is where some Layer 2 protocols may implement some form of reliable, retransmission that could adversely impact the NORM GRTT round-trip measurement. A distinct traffic class for that signaling allows the possibility of mapping it to different underlying Layer 2 services (e.g. bypass any reliability mechanism for those specific NORM messages) 2020-06-06 12:41:58 -04:00
bebopagogo 61e9d8311a cleanup 2020-05-18 10:20:57 -04:00
bebopagogo f49de2c510 tweaks 2020-05-18 10:19:28 -04:00
mjvk 8d8c3f0da5
[WIP] Cmake (#8)
* Adds initial cmake

* Renames include according common convention

* Tries to include examples

* Changes to protokit

* Improves install step

* Removes /protokit

* Fixes some comments

* Adds a few feature tests

* Adds FLOCK includes

* Removes if in feature tests

* Fixes missing normApi.cpp

* Adds missing include

* Fixes bad rename
2020-05-18 10:19:04 -04:00
bebopagogo 88e600cedb added NormStreamGetVacancy() and some NormSocket improvement 2020-04-29 22:38:59 -04:00
bebopagogo f55d445755 fixed bug where stream watermark flushing was incorrect due to code in ASSERT() block 2020-03-01 14:53:41 -05:00
bebopagogo e9469280c1 extended NORM_SEND_ERROR notification and added info-only (0 size files, etc) object support 2020-03-01 12:21:58 -05:00
bebopagogo ff723c71ed changes to support Protolib ProtoPkt changes 2020-01-20 16:51:06 -05:00
bebopagogo 260109ea70 update to track Protolib ProtoPkt changes 2020-01-20 00:21:49 -05:00
bebopagogo d2e1391ef3 initial addition of normCast example 2019-12-27 11:34:11 -05:00
Brian Adamson 1c3283fd3b fix to wscript so all targets build. Made build of both static and dynamic NORM libraries default 2019-10-16 14:29:36 -04:00
Jeff Weston 120989e3d6 update to latest 2019-09-11 12:29:48 -04:00
Jeff Weston 7dc0cea1b0 v1.5.8 2019-09-11 12:24:09 -04:00
Jeff Weston a8ab40d749 v1.5.7 2019-09-11 12:21:00 -04:00
Jeff Weston da5e8f6692 v1.5r6 2019-09-11 12:12:00 -04:00
Jeff Weston 76edf0c18d v1.5r5 2019-09-11 12:11:22 -04:00
Jeff Weston 5be33c4e24 v1.5b4 2019-09-11 12:09:35 -04:00
Jeff Weston bf41edfbff v1.5b3 2019-09-11 12:08:58 -04:00
Jeff Weston 0194e2ba9a v1.5b2 2019-09-11 12:08:00 -04:00