aboutsummaryrefslogtreecommitdiffstats
path: root/libparc/examples/How To Extend a PARCObject/HowToExtendAPARCObject.c
diff options
context:
space:
mode:
Diffstat (limited to 'libparc/examples/How To Extend a PARCObject/HowToExtendAPARCObject.c')
-rw-r--r--libparc/examples/How To Extend a PARCObject/HowToExtendAPARCObject.c102
1 files changed, 0 insertions, 102 deletions
diff --git a/libparc/examples/How To Extend a PARCObject/HowToExtendAPARCObject.c b/libparc/examples/How To Extend a PARCObject/HowToExtendAPARCObject.c
deleted file mode 100644
index e98018d7..00000000
--- a/libparc/examples/How To Extend a PARCObject/HowToExtendAPARCObject.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * 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.
- */
-
-/**
- *
- * This example shows a simple extention of an existing PARC Object implementation
- * (PARCString) to replace the default implementation of the Compare() function with another.
- *
- * The demonstration shows how to reverse the sort order of a PARCSortedList
- * containing a list of PARCString instances without changing PARCSortedList nor PARCString.
- *
- */
-#include <stdio.h>
-
-#include <parc/algol/parc_SortedList.h>
-#include <parc/algol/parc_String.h>
-
-/*
- * This is the default behaviour of the PARCSortedList implementation.
- */
-void
-forwardOrder(void)
-{
- PARCSortedList *sortedList = parcSortedList_Create();
-
- PARCString *aaa = parcString_Create("aaa");
- PARCString *aab = parcString_Create("aab");
- PARCString *aac = parcString_Create("aac");
-
- parcSortedList_Add(sortedList, aaa);
- parcSortedList_Add(sortedList, aab);
- parcSortedList_Add(sortedList, aac);
-
- parcSortedList_Display(sortedList, 0);
- parcString_Release(&aaa);
- parcString_Release(&aab);
- parcString_Release(&aac);
-}
-
-/*
- * This function will be substituted for the default Compare implementation in the PARCString object.
- */
-int
-parcString_ReverseCompare(const PARCString *string, const PARCString *other)
-{
- return parcString_Compare(string, other) * -1;
-}
-
-parcObject_Extends(PARCReverseString, PARCString,
- .compare = (PARCObjectCompare *) parcString_ReverseCompare);
-
-
-PARCString *
-parcMyString_Create(const char *string)
-{
- PARCString *result = parcString_Create(string);
-
- // By setting the descriptor to our special descriptor here, we effectively
- // substitute the default compare function with our parcString_ReverseCompare
- parcObject_SetDescriptor(result, &parcObject_DescriptorName(PARCReverseString));
-
- return result;
-}
-
-void
-reverseOrder(void)
-{
- PARCSortedList *sortedList = parcSortedList_Create();
-
- PARCString *aaa = parcMyString_Create("aaa");
- PARCString *aab = parcMyString_Create("aab");
- PARCString *aac = parcMyString_Create("aac");
-
- parcSortedList_Add(sortedList, aaa);
- parcSortedList_Add(sortedList, aab);
- parcSortedList_Add(sortedList, aac);
-
- parcSortedList_Display(sortedList, 0);
- parcString_Release(&aaa);
- parcString_Release(&aab);
- parcString_Release(&aac);
-}
-
-int
-main(int argc, const char *argv[argc])
-{
- forwardOrder();
- reverseOrder();
- return 0;
-}