- Description has changed:
Diff:
~~~~
--- old
+++ new
@@ -12,10 +12,16 @@
i.e., it is only the pointer **x** that is constant, not the string that it is
pointing to.
-There are two possible ways to support constant strings in the SAF APIs:
+There are several possible ways to support constant strings in the SAF APIs:
1) Introduce a new type **SaCharT**, and use **SaCharT** pointers in the API
calls instead of **SaStringT**. Since **SaStringT** is defined as a character
pointer, it should be possible to replace occurrences of **SaStringT** with **
SaCharT* ** without breaking backwards compatibility.
2) Replace the **SaStringT** typedef with a C preprocessor macro, like this:
#define SaStringT char*
+
+3) Intruduce a new type **SaConstStringT**:
+
+ typedef const char* SaConstStringT;
+
+The proposal is to go for 3), and to begin with only define the new type. The
new type can later on be used when defining new APIs.
~~~~
- **status**: unassigned --> accepted
- **assigned_to**: Anders Widell
- **Milestone**: future --> 4.5.FC
---
** [tickets:#625] osaf: Support constant strings in SAF APIs**
**Status:** accepted
**Milestone:** 4.5.FC
**Created:** Wed Nov 13, 2013 11:25 AM UTC by Anders Widell
**Last Updated:** Wed Nov 13, 2013 12:09 PM UTC
**Owner:** Anders Widell
There is a fundamental problem with the **SaStringT** type as it is currently
defined:
typedef char* SaStringT;
When **SaStringT** is defined like this, it is impossible to declare a string
constant using it. For example, a variable decleared like this:
const SaStringT x;
has the following meaning:
char *const x;
i.e., it is only the pointer **x** that is constant, not the string that it is
pointing to.
There are several possible ways to support constant strings in the SAF APIs:
1) Introduce a new type **SaCharT**, and use **SaCharT** pointers in the API
calls instead of **SaStringT**. Since **SaStringT** is defined as a character
pointer, it should be possible to replace occurrences of **SaStringT** with **
SaCharT* ** without breaking backwards compatibility.
2) Replace the **SaStringT** typedef with a C preprocessor macro, like this:
#define SaStringT char*
3) Intruduce a new type **SaConstStringT**:
typedef const char* SaConstStringT;
The proposal is to go for 3), and to begin with only define the new type. The
new type can later on be used when defining new APIs.
---
Sent from sourceforge.net because [email protected] is
subscribed to https://sourceforge.net/p/opensaf/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/opensaf/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries. Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets