aboutsummaryrefslogtreecommitdiffstats
path: root/metis/ccnx/forwarder/metis/config/metisControl_Root.c
diff options
context:
space:
mode:
Diffstat (limited to 'metis/ccnx/forwarder/metis/config/metisControl_Root.c')
-rw-r--r--metis/ccnx/forwarder/metis/config/metisControl_Root.c129
1 files changed, 129 insertions, 0 deletions
diff --git a/metis/ccnx/forwarder/metis/config/metisControl_Root.c b/metis/ccnx/forwarder/metis/config/metisControl_Root.c
new file mode 100644
index 00000000..61e9ba50
--- /dev/null
+++ b/metis/ccnx/forwarder/metis/config/metisControl_Root.c
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2017 Cisco and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <config.h>
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <LongBow/runtime.h>
+
+#include <ccnx/forwarder/metis/config/metisControl_Root.h>
+#include <ccnx/forwarder/metis/config/metisControl_Add.h>
+#include <ccnx/forwarder/metis/config/metisControl_List.h>
+#include <ccnx/forwarder/metis/config/metisControl_Quit.h>
+#include <ccnx/forwarder/metis/config/metisControl_Remove.h>
+#include <ccnx/forwarder/metis/config/metisControl_Set.h>
+#include <ccnx/forwarder/metis/config/metisControl_Unset.h>
+#include <ccnx/forwarder/metis/config/metisControl_Cache.h>
+
+static void _metisControlRoot_Init(MetisCommandParser *parser, MetisCommandOps *ops);
+static MetisCommandReturn _metisControlRoot_Execute(MetisCommandParser *parser, MetisCommandOps *ops, PARCList *args);
+static MetisCommandReturn _metisControlRoot_HelpExecute(MetisCommandParser *parser, MetisCommandOps *ops, PARCList *args);
+
+static const char *_commandRoot = "";
+static const char *_commandRootHelp = "help";
+
+// ====================================================
+
+MetisCommandOps *
+metisControlRoot_Create(MetisControlState *state)
+{
+ return metisCommandOps_Create(state, _commandRoot, _metisControlRoot_Init, _metisControlRoot_Execute, metisCommandOps_Destroy);
+}
+
+MetisCommandOps *
+metisControlRoot_HelpCreate(MetisControlState *state)
+{
+ return metisCommandOps_Create(state, _commandRootHelp, NULL, _metisControlRoot_HelpExecute, metisCommandOps_Destroy);
+}
+
+// ===================================================
+
+static MetisCommandReturn
+_metisControlRoot_HelpExecute(MetisCommandParser *parser, MetisCommandOps *ops, PARCList *args)
+{
+ printf("Command-line execution:\n");
+ printf(" metis_control [--keystore <keystorepath>] [--password <password>] command\n");
+ printf("\n");
+ printf("Interactive execution:\n");
+ printf(" metis_control [--keystore <keystorepath>] [--password <password>]\n");
+ printf("\n");
+ printf("If the keystore is not specified, the default path is used. Keystore must exist prior to running program.\n");
+ printf("If the password is not specified, the user will be prompted.\n");
+ printf("\n");
+
+ MetisCommandOps *ops_help_add = metisControlAdd_CreateHelp(NULL);
+ MetisCommandOps *ops_help_list = metisControlList_HelpCreate(NULL);
+ MetisCommandOps *ops_help_quit = metisControlQuit_HelpCreate(NULL);
+ MetisCommandOps *ops_help_remove = metisControlRemove_HelpCreate(NULL);
+ MetisCommandOps *ops_help_set = metisControlSet_HelpCreate(NULL);
+ MetisCommandOps *ops_help_unset = metisControlUnset_HelpCreate(NULL);
+ MetisCommandOps *ops_help_cache = metisControlCache_HelpCreate(NULL);
+
+ printf("Available commands:\n");
+ printf(" %s\n", ops_help_add->command);
+ printf(" %s\n", ops_help_list->command);
+ printf(" %s\n", ops_help_quit->command);
+ printf(" %s\n", ops_help_remove->command);
+ printf(" %s\n", ops_help_set->command);
+ printf(" %s\n", ops_help_unset->command);
+ printf(" %s\n", ops_help_cache->command);
+ printf("\n");
+
+ metisCommandOps_Destroy(&ops_help_add);
+ metisCommandOps_Destroy(&ops_help_list);
+ metisCommandOps_Destroy(&ops_help_quit);
+ metisCommandOps_Destroy(&ops_help_remove);
+ metisCommandOps_Destroy(&ops_help_set);
+ metisCommandOps_Destroy(&ops_help_unset);
+ metisCommandOps_Destroy(&ops_help_cache);
+
+ return MetisCommandReturn_Success;
+}
+
+static void
+_metisControlRoot_Init(MetisCommandParser *parser, MetisCommandOps *ops)
+{
+ MetisControlState *state = ops->closure;
+
+ metisControlState_RegisterCommand(state, metisControlAdd_CreateHelp(state));
+ metisControlState_RegisterCommand(state, metisControlList_HelpCreate(state));
+ metisControlState_RegisterCommand(state, metisControlQuit_HelpCreate(state));
+ metisControlState_RegisterCommand(state, metisControlRemove_HelpCreate(state));
+ metisControlState_RegisterCommand(state, metisControlSet_HelpCreate(state));
+ metisControlState_RegisterCommand(state, metisControlUnset_HelpCreate(state));
+ metisControlState_RegisterCommand(state, metisControlCache_HelpCreate(state));
+
+ metisControlState_RegisterCommand(state, metisControlAdd_Create(state));
+ metisControlState_RegisterCommand(state, metisControlList_Create(state));
+ metisControlState_RegisterCommand(state, metisControlQuit_Create(state));
+ metisControlState_RegisterCommand(state, metisControlRemove_Create(state));
+ metisControlState_RegisterCommand(state, metisControlSet_Create(state));
+ metisControlState_RegisterCommand(state, metisControlUnset_Create(state));
+ metisControlState_RegisterCommand(state, metisControlCache_Create(state));
+}
+
+static MetisCommandReturn
+_metisControlRoot_Execute(MetisCommandParser *parser, MetisCommandOps *ops, PARCList *args)
+{
+ return MetisCommandReturn_Success;
+}
+
+// ======================================================================