iot2.git
5 years agoFixing a bug in IoTMaster (wrong variable for language flag check); adding LANGUAGE...
rtrimana [Tue, 14 Feb 2017 18:03:46 +0000 (10:03 -0800)]
Fixing a bug in IoTMaster (wrong variable for language flag check); adding LANGUAGE field in controller config file

5 years agoAdding flags to master to give flexibility to choose between C++ and Java for every...
rtrimana [Tue, 14 Feb 2017 00:00:57 +0000 (16:00 -0800)]
Adding flags to master to give flexibility to choose between C++ and Java for every device driver and controller

5 years agoMaking sure that C++ Set and Relation methods return pointers from a new set/map...
rtrimana [Mon, 13 Feb 2017 16:36:32 +0000 (08:36 -0800)]
Making sure that C++ Set and Relation methods return pointers from a new set/map every time the method is called; this keeps the original set/map intact/immutable.

5 years agoAdding Java Checker Framework checker option in the makefiles; basically this is...
rtrimana [Wed, 8 Feb 2017 00:59:32 +0000 (16:59 -0800)]
Adding Java Checker Framework checker option in the makefiles; basically this is just to check and flag error when there is java.net/java.lang.reflect usage in user's code

5 years agoAdding Java Checker Framework to flag error when java.net and java.lang.reflect libra...
rtrimana [Wed, 8 Feb 2017 00:57:37 +0000 (16:57 -0800)]
Adding Java Checker Framework to flag error when java.net and java.lang.reflect libraries are used in user's code

5 years agoRestoring IoTRMICall and IoTRMIObject to their original states for the sake of compil...
rtrimana [Wed, 8 Feb 2017 00:45:38 +0000 (16:45 -0800)]
Restoring IoTRMICall and IoTRMIObject to their original states for the sake of compiling current benchmarks (these two are deprecated and will soon not be used at all)

5 years agoMaking sure that compiler can generate methods with multiple callbacks with different...
rtrimana [Tue, 7 Feb 2017 23:31:07 +0000 (15:31 -0800)]
Making sure that compiler can generate methods with multiple callbacks with different types

5 years agoFixing bugs for multiple callback inputs; adding more testcases
rtrimana [Tue, 7 Feb 2017 21:42:29 +0000 (13:42 -0800)]
Fixing bugs for multiple callback inputs; adding more testcases

5 years agoMinor tests for multiple callbacks, enum, and struct for both Java and C++; Fixing...
rtrimana [Fri, 3 Feb 2017 19:31:59 +0000 (11:31 -0800)]
Minor tests for multiple callbacks, enum, and struct for both Java and C++; Fixing small bugs in compiler and RMI client

5 years agoFixed compiler for Java code generation (not heavily tested yet, but fixes include...
rtrimana [Wed, 1 Feb 2017 23:37:27 +0000 (15:37 -0800)]
Fixed compiler for Java code generation (not heavily tested yet, but fixes include return value generation, enum, and struct handling)

5 years agoTested C++ RPS/RMI libraries for arbitrary objects and arbitrary remote calls
rtrimana [Tue, 31 Jan 2017 23:36:14 +0000 (15:36 -0800)]
Tested C++ RPS/RMI libraries for arbitrary objects and arbitrary remote calls

5 years agoCleaning up error messages, etc. in Java RMI part
rtrimana [Sat, 28 Jan 2017 19:48:14 +0000 (11:48 -0800)]
Cleaning up error messages, etc. in Java RMI part

5 years agoChanging IoTRMIComm into abstract and refactoring into Client and Server parts
rtrimana [Sat, 28 Jan 2017 00:56:06 +0000 (16:56 -0800)]
Changing IoTRMIComm into abstract and refactoring into Client and Server parts

5 years agoFirst version of skeleton-stub communication using queue and 2 sockets (one send...
rtrimana [Sat, 28 Jan 2017 00:15:22 +0000 (16:15 -0800)]
First version of skeleton-stub communication using queue and 2 sockets (one send and one receive) as this involves multi-threading and Java socket is NOT thread safegit status!

5 years agoCreating ConcurrentLinkedListQueue for C++
rtrimana [Sat, 28 Jan 2017 00:12:47 +0000 (16:12 -0800)]
Creating ConcurrentLinkedListQueue for C++

5 years agoPreparing C++ stubs and skeletons for circular compilation (it couldn't compile earlier)
rtrimana [Sat, 28 Jan 2017 00:11:35 +0000 (16:11 -0800)]
Preparing C++ stubs and skeletons for circular compilation (it couldn't compile earlier)

5 years agoWorking Java v.1.0 for arbitrary calls of callback objects
rtrimana [Thu, 26 Jan 2017 18:58:52 +0000 (10:58 -0800)]
Working Java v.1.0 for arbitrary calls of callback objects

5 years agoWorking C++ IoTSlave for both IoTSet and IoTRelation; threading works for C++ LifxLig...
rtrimana [Mon, 23 Jan 2017 22:45:55 +0000 (14:45 -0800)]
Working C++ IoTSlave for both IoTSet and IoTRelation; threading works for C++ LifxLightBulb driver in x86_64 binary but not in ARM version

5 years agoAdding class LabRoom for IoTRelation testing with C++ IoTSlave
rtrimana [Sat, 21 Jan 2017 00:43:24 +0000 (16:43 -0800)]
Adding class LabRoom for IoTRelation testing with C++ IoTSlave

5 years agoModified and tested IoTMaster for IoTSet in C++; completed IoTMaster and IoTSlave...
rtrimana [Sat, 21 Jan 2017 00:42:19 +0000 (16:42 -0800)]
Modified and tested IoTMaster for IoTSet in C++; completed IoTMaster and IoTSlave.cpp for IoTRelation as well but untested

5 years agoAdding C++ field instrumentation using config file
rtrimana [Thu, 19 Jan 2017 19:25:34 +0000 (11:25 -0800)]
Adding C++ field instrumentation using config file

5 years agoPerfecting IoTSlave for C++; Found one issue with SSH/Java process execution in which...
rtrimana [Wed, 18 Jan 2017 20:02:08 +0000 (12:02 -0800)]
Perfecting IoTSlave for C++; Found one issue with SSH/Java process execution in which process is killed if we print something through cout in the C++ program

5 years agoAdding stub and skeleton for Lifxtest and LifxLightBulb; Creating build flow for...
rtrimana [Fri, 13 Jan 2017 23:33:42 +0000 (15:33 -0800)]
Adding stub and skeleton for Lifxtest and LifxLightBulb; Creating build flow for shared-objects; Developing IoTSlave for C++

5 years agoChanging a few things to pointer; Testing Lifxtest benchmark without using runtime...
rtrimana [Thu, 12 Jan 2017 17:27:58 +0000 (09:27 -0800)]
Changing a few things to pointer; Testing Lifxtest benchmark without using runtime system

5 years agoPreparing Lifxtest as a test benchmark; making adjustments in IoTSet for C++, etc.
rtrimana [Thu, 12 Jan 2017 04:06:26 +0000 (20:06 -0800)]
Preparing Lifxtest as a test benchmark; making adjustments in IoTSet for C++, etc.

5 years agoSeparating implementations from declarations for LifxLightBulb
rtrimana [Thu, 12 Jan 2017 00:12:48 +0000 (16:12 -0800)]
Separating implementations from declarations for LifxLightBulb

5 years agoFixing 2 issues in LifxLightBulb driver: 1) Detached thread handling (need to pass...
rtrimana [Wed, 11 Jan 2017 23:13:22 +0000 (15:13 -0800)]
Fixing 2 issues in LifxLightBulb driver: 1) Detached thread handling (need to pass in this pointer for proper class method calls); 2) Extending socket library to have set timeout capability to create non-blocking UDP socket

5 years agoAdding debug messages on slave to print info for designing C++ slave part
rtrimana [Wed, 11 Jan 2017 16:41:12 +0000 (08:41 -0800)]
Adding debug messages on slave to print info for designing C++ slave part

5 years agoCreating new directory for all Java benchmarks
rtrimana [Tue, 10 Jan 2017 23:12:51 +0000 (15:12 -0800)]
Creating new directory for all Java benchmarks

5 years agoMinor fixes in LifxLightBulb driver (not fully tested yet)
rtrimana [Tue, 10 Jan 2017 22:57:31 +0000 (14:57 -0800)]
Minor fixes in LifxLightBulb driver (not fully tested yet)

5 years agoMoving Java drivers; Creating iotruntime socket connections for C++; First version...
rtrimana [Tue, 10 Jan 2017 22:50:09 +0000 (14:50 -0800)]
Moving Java drivers; Creating iotruntime socket connections for C++; First version of LifxLightBulb driver in C++

5 years agoReplacing default BUFFSIZE value with new buffer size value when a resize needs to...
rtrimana [Sat, 7 Jan 2017 02:54:40 +0000 (18:54 -0800)]
Replacing default BUFFSIZE value with new buffer size value when a resize needs to happen

5 years agoBacking up database
rtrimana [Sat, 7 Jan 2017 01:10:25 +0000 (17:10 -0800)]
Backing up database

5 years agoAdding a (potential) initialization for Alarm; Modifying IoTSocket to allocate a...
rtrimana [Sat, 7 Jan 2017 00:35:38 +0000 (16:35 -0800)]
Adding a (potential) initialization for Alarm; Modifying IoTSocket to allocate a larger byte buffer array when needed

5 years agoPerfecting 4th benchmark; adding needed MySQL config files; maturing Zigbee drivers
rtrimana [Sat, 7 Jan 2017 00:09:52 +0000 (16:09 -0800)]
Perfecting 4th benchmark; adding needed MySQL config files; maturing Zigbee drivers

5 years agoFixing MySQL query parsing bug for IoTRelation; adjusting MySQL queries for new inter...
rtrimana [Fri, 6 Jan 2017 17:02:26 +0000 (09:02 -0800)]
Fixing MySQL query parsing bug for IoTRelation; adjusting MySQL queries for new interfaces; backing up database

5 years agoAdjusting files in ZigbeeTest; preparing things for 4th benchmark, i.e. generating...
rtrimana [Fri, 6 Jan 2017 01:08:30 +0000 (17:08 -0800)]
Adjusting files in ZigbeeTest; preparing things for 4th benchmark, i.e. generating stubs and skeletons, fixing code, checking in mysql config files, etc.

5 years agoAdding xbee_driver Python files
rtrimana [Thu, 5 Jan 2017 22:14:55 +0000 (14:14 -0800)]
Adding xbee_driver Python files

5 years agoAdjustments to ZigbeeTest and Python files to use just 1 port for shooting Zigbee...
rtrimana [Thu, 5 Jan 2017 22:07:39 +0000 (14:07 -0800)]
Adjustments to ZigbeeTest and Python files to use just 1 port for shooting Zigbee protocol rules

5 years agoTesting Smartthings sensors with some adjustments for 4th benchmark
rtrimana [Thu, 5 Jan 2017 21:12:00 +0000 (13:12 -0800)]
Testing Smartthings sensors with some adjustments for 4th benchmark

5 years agoAdding missing stub and skeleton files for 3rd benchmark; Increasing incoming buffer...
rtrimana [Thu, 5 Jan 2017 17:43:33 +0000 (09:43 -0800)]
Adding missing stub and skeleton files for 3rd benchmark; Increasing incoming buffer size for IoTSocket to 8MB as needed by IHome speaker; completing 2nd and 3rd benchmark porting

5 years agoAdding missing files, completing driver config files with stub interface, completing...
rtrimana [Thu, 5 Jan 2017 16:48:07 +0000 (08:48 -0800)]
Adding missing files, completing driver config files with stub interface, completing build flow with .jks file for https

5 years agoUpdating database
rtrimana [Thu, 5 Jan 2017 01:42:02 +0000 (17:42 -0800)]
Updating database

5 years agoPreparing 3rd benchmark for porting with capability-based RMI
rtrimana [Thu, 5 Jan 2017 01:31:23 +0000 (17:31 -0800)]
Preparing 3rd benchmark for porting with capability-based RMI

5 years agoPreparing files, stubs, and skeletons for 2nd benchmark
rtrimana [Wed, 4 Jan 2017 23:50:47 +0000 (15:50 -0800)]
Preparing files, stubs, and skeletons for 2nd benchmark

5 years agoApplying changes for 3rd benchmark (wildcard addresses) in IoTMaster
rtrimana [Wed, 4 Jan 2017 19:32:40 +0000 (11:32 -0800)]
Applying changes for 3rd benchmark (wildcard addresses) in IoTMaster

5 years agoAdding new policies for stub/skeleton generation - second benchmark
rtrimana [Fri, 23 Dec 2016 00:59:19 +0000 (16:59 -0800)]
Adding new policies for stub/skeleton generation - second benchmark

5 years agoUpdating database with relations; Adding new SQL query config files
rtrimana [Thu, 22 Dec 2016 22:07:20 +0000 (14:07 -0800)]
Updating database with relations; Adding new SQL query config files

5 years agoUpdating database for the 4th benchmark
rtrimana [Thu, 22 Dec 2016 21:39:41 +0000 (13:39 -0800)]
Updating database for the 4th benchmark

5 years agoRemoving unwanted stub and skeleton files
rtrimana [Thu, 22 Dec 2016 19:52:31 +0000 (11:52 -0800)]
Removing unwanted stub and skeleton files

5 years agoPreparing second and third benchmarks; backing up MySQL database
rtrimana [Wed, 21 Dec 2016 21:57:43 +0000 (13:57 -0800)]
Preparing second and third benchmarks; backing up MySQL database

5 years agoFirst benchmark working with capability-based RMI; adjustments in callbacks, etc.
rtrimana [Wed, 21 Dec 2016 21:16:32 +0000 (13:16 -0800)]
First benchmark working with capability-based RMI; adjustments in callbacks, etc.

5 years agoAdjustments in stubs and skeletons for callback in callback; using different ports...
rtrimana [Tue, 20 Dec 2016 17:57:54 +0000 (09:57 -0800)]
Adjustments in stubs and skeletons for callback in callback; using different ports for each for now; still having problems with cross references in C++

5 years agoPorting and compiling SmartLightsController
rtrimana [Fri, 16 Dec 2016 01:22:26 +0000 (17:22 -0800)]
Porting and compiling SmartLightsController

5 years agoIntegrating capability-based RMI on Sentinel for Java side
rtrimana [Wed, 14 Dec 2016 17:57:24 +0000 (09:57 -0800)]
Integrating capability-based RMI on Sentinel for Java side

5 years agoPreparing Makefiles, stub, skeleton, config files, etc. for porting LifxLightBulb...
rtrimana [Mon, 12 Dec 2016 19:46:59 +0000 (11:46 -0800)]
Preparing Makefiles, stub, skeleton, config files, etc. for porting LifxLightBulb and Lifxtest

5 years agoAdding LifxLightBulb files and placeholders for benchmarks; preparing for porting
rtrimana [Mon, 12 Dec 2016 16:43:33 +0000 (08:43 -0800)]
Adding LifxLightBulb files and placeholders for benchmarks; preparing for porting

5 years agoAdding last version of iotruntime and iotinstaller; preparing to extend IoTMaster...
rtrimana [Sat, 10 Dec 2016 00:43:29 +0000 (16:43 -0800)]
Adding last version of iotruntime and iotinstaller; preparing to extend IoTMaster for new RMI

5 years agoCleaning up
rtrimana [Sat, 10 Dec 2016 00:35:46 +0000 (16:35 -0800)]
Cleaning up

5 years agoAdding example for a CPP that calls class skeleton
rtrimana [Sat, 10 Dec 2016 00:04:36 +0000 (16:04 -0800)]
Adding example for a CPP that calls class skeleton

5 years agoAdding example for a CPP that calls class skeleton
rtrimana [Sat, 10 Dec 2016 00:03:52 +0000 (16:03 -0800)]
Adding example for a CPP that calls class skeleton

5 years agoTested on RPi, both RPi1 and RPi2; works fine and fast
rtrimana [Fri, 9 Dec 2016 23:05:45 +0000 (15:05 -0800)]
Tested on RPi, both RPi1 and RPi2; works fine and fast

5 years ago1) Making Java socket read/write length in 4 bytes as well; 2) Fixing endianness...
rtrimana [Fri, 9 Dec 2016 18:38:12 +0000 (10:38 -0800)]
1) Making Java socket read/write length in 4 bytes as well; 2) Fixing endianness issue when transferring message length between Java and C++

5 years agoFixing a bug in C++ socket server-client: message length was represented just in...
rtrimana [Fri, 9 Dec 2016 17:40:46 +0000 (09:40 -0800)]
Fixing a bug in C++ socket server-client: message length was represented just in 1 byte - this is not enough for sending longer messages (just enough to represent up to ~126 bytes/8-bit representation) - now it's changed to 4 bytes (integer size)

5 years agoTesting enum and callback combination
rtrimana [Thu, 8 Dec 2016 19:51:07 +0000 (11:51 -0800)]
Testing enum and callback combination

5 years agoCombining enum, struct, and callback in one method; refactoring method body generatio...
rtrimana [Thu, 8 Dec 2016 19:17:55 +0000 (11:17 -0800)]
Combining enum, struct, and callback in one method; refactoring method body generations for callback and non-callback methods; fixing small bugs

5 years agoIntegrating enum and struct in one method call; fixing minor bugs
rtrimana [Thu, 8 Dec 2016 17:06:24 +0000 (09:06 -0800)]
Integrating enum and struct in one method call; fixing minor bugs

5 years agoTesting complex callbacks invocation; fixing subtle bugs
rtrimana [Wed, 7 Dec 2016 19:51:07 +0000 (11:51 -0800)]
Testing complex callbacks invocation; fixing subtle bugs

5 years agoTesting more complex struct and enum declarations; fixing subtle bugs
rtrimana [Wed, 7 Dec 2016 19:04:34 +0000 (11:04 -0800)]
Testing more complex struct and enum declarations; fixing subtle bugs

5 years agoFixing second bug (C++ skeleton cannot connect to Java's callback socket server)...
rtrimana [Wed, 7 Dec 2016 17:17:58 +0000 (09:17 -0800)]
Fixing second bug (C++ skeleton cannot connect to Java's callback socket server); Instead of reporting connection failure after the first connection, we make the C++ wait for connection to occur (Java thread/socket server creation is a little slower)

5 years agoFixing problem with array/list of callbacks; Java static variables persist across...
rtrimana [Mon, 5 Dec 2016 23:20:13 +0000 (15:20 -0800)]
Fixing problem with array/list of callbacks; Java static variables persist across multiple objects of the same type that are instantiated at the same instance - needed to make objectId non-static to mark different callback objects

5 years agoTesting callbacks for Java and C++; fixing a few bugs; more bugs to tackle: 1) Need...
rtrimana [Mon, 5 Dec 2016 22:53:39 +0000 (14:53 -0800)]
Testing callbacks for Java and C++; fixing a few bugs; more bugs to tackle: 1) Need to retest C++ skeleton and Java stub, 2) Array of callbacks contains wrong references in Java

5 years agoTesting struct for array and list (Java and C++); fixing bugs
rtrimana [Sat, 3 Dec 2016 00:29:38 +0000 (16:29 -0800)]
Testing struct for array and list (Java and C++); fixing bugs

5 years agoTesting struct (single object); fixing small bugs, etc.
rtrimana [Thu, 1 Dec 2016 21:40:47 +0000 (13:40 -0800)]
Testing struct (single object); fixing small bugs, etc.

5 years agoFixing bugs: 1) Arrays.asList generates finaled List (need to feed it into an ArrayLi...
rtrimana [Thu, 1 Dec 2016 18:42:21 +0000 (10:42 -0800)]
Fixing bugs: 1) Arrays.asList generates finaled List (need to feed it into an ArrayList constructor); 2) Generate setAllowed.insert() only when there is callback for C++

5 years agoTesting and fixing bugs on enum data types
rtrimana [Thu, 1 Dec 2016 05:06:13 +0000 (21:06 -0800)]
Testing and fixing bugs on enum data types

5 years agoAdding permission insertion for struct (will be tested later)
rtrimana [Tue, 29 Nov 2016 22:06:15 +0000 (14:06 -0800)]
Adding permission insertion for struct (will be tested later)

5 years agoMoving permission setting from stub to skeleton (mistakenly put stuff in stub and...
rtrimana [Tue, 29 Nov 2016 21:30:01 +0000 (13:30 -0800)]
Moving permission setting from stub to skeleton (mistakenly put stuff in stub and not skeleton)

5 years agoAdding permission inclusion for callback helper function; some testcases on enum...
rtrimana [Tue, 29 Nov 2016 20:59:57 +0000 (12:59 -0800)]
Adding permission inclusion for callback helper function; some testcases on enum type

5 years agoCleaning up callback code generation; Fixing a few minor issues, e.g. indentation...
rtrimana [Tue, 29 Nov 2016 18:40:16 +0000 (10:40 -0800)]
Cleaning up callback code generation; Fixing a few minor issues, e.g. indentation, etc.

5 years agoPreparing for callback testing (creating new policy files); Adding error messsages...
rtrimana [Tue, 29 Nov 2016 01:01:22 +0000 (17:01 -0800)]
Preparing for callback testing (creating new policy files); Adding error messsages that require callback policy files (with class definition) to be parsed first

5 years agoTesting for list/vector data types
rtrimana [Mon, 28 Nov 2016 23:27:30 +0000 (15:27 -0800)]
Testing for list/vector data types

5 years agoFixing bugs on char translation; testing for arrays
rtrimana [Mon, 28 Nov 2016 22:50:32 +0000 (14:50 -0800)]
Fixing bugs on char translation; testing for arrays

5 years agoReplacing throw error with exit statements for now to handle fatal errors when commun...
rtrimana [Sat, 26 Nov 2016 03:42:41 +0000 (19:42 -0800)]
Replacing throw error with exit statements for now to handle fatal errors when communication is taking place

5 years agoReverting type resolution in C++ to Java types, e.g. byte and char instead of just...
rtrimana [Sat, 26 Nov 2016 00:53:25 +0000 (16:53 -0800)]
Reverting type resolution in C++ to Java types, e.g. byte and char instead of just char

5 years agoAdding new policy, Java, and Cpp files for testing/debugging
rtrimana [Fri, 25 Nov 2016 22:06:36 +0000 (14:06 -0800)]
Adding new policy, Java, and Cpp files for testing/debugging

5 years agoFixing comments and cleaning up
rtrimana [Thu, 24 Nov 2016 00:50:03 +0000 (16:50 -0800)]
Fixing comments and cleaning up

5 years agoCode refactoring for skeleton generation in C++ and Java, and a bit of clean-up
rtrimana [Thu, 24 Nov 2016 00:02:16 +0000 (16:02 -0800)]
Code refactoring for skeleton generation in C++ and Java, and a bit of clean-up

5 years agoCompleting compiler with C++ struct support; need to clean up code!
rtrimana [Wed, 23 Nov 2016 23:21:44 +0000 (15:21 -0800)]
Completing compiler with C++ struct support; need to clean up code!

5 years agoFixing minor bugs in callback generation
rtrimana [Wed, 23 Nov 2016 17:51:49 +0000 (09:51 -0800)]
Fixing minor bugs in callback generation

5 years agoAdding struct support for Java in compiler
rtrimana [Wed, 23 Nov 2016 17:27:55 +0000 (09:27 -0800)]
Adding struct support for Java in compiler

5 years agoAdding enum support in compiler
rtrimana [Tue, 22 Nov 2016 18:12:03 +0000 (10:12 -0800)]
Adding enum support in compiler

5 years agoMore refactoring for permission writing in Java constructor
rtrimana [Thu, 17 Nov 2016 23:02:33 +0000 (15:02 -0800)]
More refactoring for permission writing in Java constructor

5 years agoRefactoring policy writing
rtrimana [Thu, 17 Nov 2016 22:59:08 +0000 (14:59 -0800)]
Refactoring policy writing

5 years agoAdding policy dynamic checks on skeleton and stub that has callback objects
rtrimana [Thu, 17 Nov 2016 22:48:16 +0000 (14:48 -0800)]
Adding policy dynamic checks on skeleton and stub that has callback objects

5 years agoAdding callback support for C++; still missing dynamic policy checks for both
rtrimana [Thu, 17 Nov 2016 00:38:20 +0000 (16:38 -0800)]
Adding callback support for C++; still missing dynamic policy checks for both

5 years agoFixing minor bugs for callback-in-callback placeholders
rtrimana [Wed, 16 Nov 2016 17:17:09 +0000 (09:17 -0800)]
Fixing minor bugs for callback-in-callback placeholders

5 years agoAdding Java callback support in compiler
rtrimana [Wed, 16 Nov 2016 17:02:27 +0000 (09:02 -0800)]
Adding Java callback support in compiler

5 years agoAdding feature for enum and struct generations
rtrimana [Sat, 12 Nov 2016 01:03:58 +0000 (17:03 -0800)]
Adding feature for enum and struct generations

5 years agoMoving struct and enum declaration into interface declaration
rtrimana [Fri, 11 Nov 2016 22:07:50 +0000 (14:07 -0800)]
Moving struct and enum declaration into interface declaration