Commit Graph

246 Commits (6ae32b1d0ea5722d02d5c011b6feaeb815fa08a8)

Author SHA1 Message Date
mullerj 6ae32b1d0e
NormStream Refactor
* Updated NormStream Write to use fixed statement

* Updated NormStream Read to use fixed statement

* Updated design
2024-08-27 21:26:46 -04:00
mullerj 32c3eb5239
NormObject Refactor
* Updated NormObjectGetInfo to use byte array

* Updated design
2024-08-27 21:06:13 -04:00
mullerj 022e1204ca
Updated NormNode.Address to use stackalloc and create IPAddress from bytes 2024-08-25 14:39:24 -04:00
mullerj f04faca08a
Updated NormFile.Name to use stackalloc (#37) 2024-08-25 13:25:13 -04:00
mullerj bc8ab6b8d0
Updated NormFile.Name to use PtrToStringAnsi 2024-08-23 16:26:54 -04:00
mullerj d539a35a73
NormDataEnqueue Refactor (#34)
* Updated to use SafeBuffer

* Added ByteBuffer and DirectByteBuffer

* Added pointer overload to DataEnqueue

* Updated FileEnqueue() to use pointer arithmetic

* Updated NormStream to use pointer arithmetic

* Updated NormSendCommand to nint

* Updated NormNodeGetCommand to nint

* Updated NormNodeGetAddress to use nint for buffer

* Updated NormStreamRead to use nint for buffer

* Updated NormObjectGetInfo to use nint for buffer

* Updated NormFileGetName nameBuffer to nint
2024-07-29 08:58:08 -04:00
mullerj 0eb0b82fa0
Merge branch 'USNavalResearchLaboratory:master' into master 2024-06-13 22:36:12 -04:00
mullerj 662e1faf86
DataEnqueue Refactor (#33)
* Refactored DataEnqueue to use pointer arithmetic
2024-06-13 22:33:07 -04:00
bebopagogo 669fc4f671 brought in protolib with bug fixes 2024-06-08 18:13:29 -04:00
bebopagogo ebc65bd140 pulled updated submodule code 2024-06-08 17:39:28 -04:00
bebopagogo 78052bdb29 Update incl. fix to MacOS Makefile
Merge branch 'master' of https://github.com/USNavalResearchLaboratory/norm
2024-06-08 17:38:36 -04:00
bebopagogo f242b53b72 fix to MacOS Makefile 2024-06-08 17:38:25 -04:00
bebopagogo 8da63844ed some 'norp' code cleanup 2024-06-08 17:22:13 -04:00
bebopagogo 0015af3bb6 some 'norp' code cleanup 2024-06-08 17:20:27 -04:00
mullerj 0662326da8 Updated GetSession to TryGetValue 2024-06-05 22:40:09 -04:00
mullerj b9c18c5f75 Updated GetSession to use lock 2024-06-05 22:17:31 -04:00
mullerj edbcff7674
NormDataEnqueue Refactor (#31)
* Switched NormDataEnqueue to use IntPtr

* Updated NormApi design
2024-05-28 11:50:16 -04:00
mullerj 3cdb415e8a
NormData Refactor (#30)
* Switched NormData Data property to a method

* Corrected NormData summary comment

* Updated NormData GetData to use Marshal.Copy

* Fixed warnings

* Updated NormData design
2024-05-27 16:26:42 -04:00
mullerj 1d91fdef33 Fixed ReceivesData test to use received events for actual data 2024-05-22 18:30:54 +00:00
mullerj b5d2e87150
Update action versions for dotnet.yml 2024-03-27 22:18:20 -04:00
mullerj 034980eb53
Update action versions for dotnet-publish.yml 2024-03-27 22:11:55 -04:00
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
LVancina a992176873
Documentation updates and pynorm example bug fixes (#82)
* Added notes about waf execution in BUILD.TXT

* Updated instructions for cloning and running make

* Added more detailed instructions for win32 builds

* Fixed typo on line 20 (capitalized 'f') that caused the command to fail

* Generic editing and replaced dead URLs

* Substituted setuptools package for the deprecated distutils in setup.py

* Fixed typo in 'norm.exe' file path in Win32 build instructions

* Fixed a bugs in normCast.py and normFileSend.py

---------

Co-authored-by: Lucas <lucas.vancina@nps.edu>
2024-01-24 13:15:06 -05:00
bebopagogo af9a238a70 pulled updated submodule code 2023-09-03 15:01:44 -04:00
bebopagogo 4b34fffa8e pulled updated submodule code 2023-09-02 22:16:16 -04:00
bebopagogo 8ae9df5607 updated gradle and tweaked build.gradle file to API version 24 2023-09-02 22:15:23 -04:00
mullerj 43c0736d51
Revert "Dev Container performance (#25)" (#27)
This reverts commit 2be146ceed.
2023-07-04 17:03:58 -04:00
mullerj 2be146ceed
Dev Container performance (#25)
* Fixed devcontainer format

* Added dotnet-linux-x64 devcontainer

* Changed devcontainer image to python

* Pinned OS version

* Updated devcontainer base image

* Reverted changes to devcontainer

* Moved linux devcontainer file

* Updated dotnet-publish to use subfolder
2023-07-04 16:50:06 -04:00
mullerj 2d8768c214
Dev Container extensions (#23)
* Added extensions

* Cut down on extensions

* Added extension

* Removed pull requests extension

* Added workspace recommendation

* Added powershell feature

* Fixed powershell version

* Updated powershell version and added extension

* Updated to latest powershell
2023-07-04 14:22:24 -04:00
mullerj 7d7de23a6b
Publish test results (#21)
* Added step to publish test results

* Changed upload step to use wildcard

* Added quotes

* Changed directory to relative path

* Fixed upload step

* Added step to publish test results

* Added permissions
2023-07-04 11:12:45 -04:00
mullerj 47bf91aee2
.NET norm package publish (#19)
* Added steps to copy package and check workspace

* Changed trigger for testing

* Removed if statement

* Updated dotnet-publish.yml to copy to  $GITHUB_OUTPUT

* Changed from variable to path

* Removed copy command

* Modified to check runner directory

* Added step to publish package

* Added package write permission

* Added job to publish win-x64

* Fixed package win-x64 step

* Added job to publish win-x86

* Added skip-duplicate to publish commands

* Added publish job

* Changed to . for linux find

* Added workflow trigger

* Added branches filter
2023-07-04 10:00:15 -04:00
mullerj e60a3afbde
Update dotnet-publish.yml to use source branch (#18) 2023-06-29 20:57:49 -04:00
mullerj a1dcbf1bc9
.NET norm extension GitHub actions (#16)
* Added .NET action
2023-06-29 20:32:19 -04:00
mullerj 96476ffa79
Codespace Configurations (#15)
* Created devcontainer.json
2023-06-20 20:13:00 -04:00
mullerj 86d8fb13d9
Merge branch 'USNavalResearchLaboratory:master' into master 2023-06-19 17:02:21 -04:00
bebopagogo 69a9e4828d added examples/chant.cpp for simple command-line NORM chat app 2023-06-03 23:05:39 -04:00
bebopagogo 34e582bfac added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 20:10:16 -04:00
bebopagogo a15e91379e added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:56:18 -04:00
bebopagogo 11b271cc28 added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:51:22 -04:00
bebopagogo 1af8531178 added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:32:47 -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 61b6e31f6f pulled updated submodule code 2023-01-29 20:02:52 -05:00
bebopagogo 5b7239523f pulled updated submodule code 2023-01-28 17:18:34 -05:00
bebopagogo 78d7ac78a2 pulled updated submodule code 2023-01-28 17:00:37 -05:00