BLPAPI C++ 3.26.6
Loading...
Searching...
No Matches
blpapi_constant.h
Go to the documentation of this file.
1/* Copyright 2012. Bloomberg Finance L.P.
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to
5 * deal in the Software without restriction, including without limitation the
6 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 * sell copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions: The above
9 * copyright notice and this permission notice shall be included in all copies
10 * or substantial portions of the Software.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
17 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
18 * IN THE SOFTWARE.
19 */
20
37
38#ifndef INCLUDED_BLPAPI_CONSTANT
39#define INCLUDED_BLPAPI_CONSTANT
40
73
74#ifndef INCLUDED_BLPAPI_TYPES
75#include <blpapi_types.h>
76#endif
77
78#ifndef INCLUDED_BLPAPI_NAME
79#include <blpapi_name.h>
80#endif
81
82#ifndef INCLUDED_BLPAPI_DEFS
83#include <blpapi_defs.h>
84#endif
85
86#ifndef INCLUDED_BLPAPI_DATETIME
87#include <blpapi_datetime.h>
88#endif
89
90#ifndef INCLUDED_BLPAPI_EXCEPTION
91#include <blpapi_exception.h>
92#endif
93
94#include <stddef.h>
95
96#ifdef __cplusplus
97extern "C" {
98#endif
99
101
104
115BLPAPI_EXPORT
116void blpapi_Constant_setUserData(blpapi_Constant_t *constant, void *userdata);
117
126BLPAPI_EXPORT
127blpapi_Name_t *blpapi_Constant_name(const blpapi_Constant_t *constant);
128
138BLPAPI_EXPORT
139const char *blpapi_Constant_description(const blpapi_Constant_t *constant);
140
150BLPAPI_EXPORT
151int blpapi_Constant_status(const blpapi_Constant_t *constant);
152
161BLPAPI_EXPORT
162int blpapi_Constant_datatype(const blpapi_Constant_t *constant);
163
174BLPAPI_EXPORT
175int blpapi_Constant_getValueAsChar(
176 const blpapi_Constant_t *constant, blpapi_Char_t *buffer);
177
188BLPAPI_EXPORT
189int blpapi_Constant_getValueAsInt32(
190 const blpapi_Constant_t *constant, blpapi_Int32_t *buffer);
191
202BLPAPI_EXPORT
203int blpapi_Constant_getValueAsInt64(
204 const blpapi_Constant_t *constant, blpapi_Int64_t *buffer);
205
216BLPAPI_EXPORT
217int blpapi_Constant_getValueAsFloat32(
218 const blpapi_Constant_t *constant, blpapi_Float32_t *buffer);
219
230BLPAPI_EXPORT
231int blpapi_Constant_getValueAsFloat64(
232 const blpapi_Constant_t *constant, blpapi_Float64_t *buffer);
233
244BLPAPI_EXPORT
245int blpapi_Constant_getValueAsDatetime(
246 const blpapi_Constant_t *constant, blpapi_Datetime_t *buffer);
247
260BLPAPI_EXPORT
261int blpapi_Constant_getValueAsString(
262 const blpapi_Constant_t *constant, const char **buffer);
263
274BLPAPI_EXPORT
275void *blpapi_Constant_userData(const blpapi_Constant_t *constant);
276
287BLPAPI_EXPORT
288void blpapi_ConstantList_setUserData(
289 blpapi_ConstantList_t *constant, void *userdata);
290
299BLPAPI_EXPORT
300blpapi_Name_t *blpapi_ConstantList_name(const blpapi_ConstantList_t *list);
301
310BLPAPI_EXPORT
311const char *blpapi_ConstantList_description(const blpapi_ConstantList_t *list);
312
320BLPAPI_EXPORT
321int blpapi_ConstantList_numConstants(const blpapi_ConstantList_t *list);
322
332BLPAPI_EXPORT
333int blpapi_ConstantList_datatype(const blpapi_ConstantList_t *constant);
334
344BLPAPI_EXPORT
345int blpapi_ConstantList_status(const blpapi_ConstantList_t *list);
346
363BLPAPI_EXPORT
364blpapi_Constant_t *blpapi_ConstantList_getConstant(
365 const blpapi_ConstantList_t *constant,
366 const char *nameString,
367 const blpapi_Name_t *name);
368
378BLPAPI_EXPORT
379blpapi_Constant_t *blpapi_ConstantList_getConstantAt(
380 const blpapi_ConstantList_t *constant, size_t index);
381
392BLPAPI_EXPORT
393void *blpapi_ConstantList_userData(const blpapi_ConstantList_t *constant);
394
397
398#ifdef __cplusplus
399}
400
401#include <cassert>
402
403namespace BloombergLP {
404namespace blpapi {
411
438class Constant {
439
440 blpapi_Constant_t *d_impl_p;
441
442 public:
443 explicit Constant(blpapi_Constant_t *handle);
444 /*
445 * Create a `Constant` object having the same value as the
446 * specified `original`. Note that this function does
447 * *not* require cross-object thread synchronization, as it does not
448 * directly read or modify the `userData` field.
449 */
450
451 void setUserData(void *userData);
459
460 Name name() const;
464
465 const char *description() const;
471
472 int status() const;
477
478 int datatype() const;
484
485 int getValueAs(char *buffer) const;
492
493 int getValueAs(Int32 *buffer) const;
500
501 int getValueAs(Int64 *buffer) const;
508
509 int getValueAs(Float32 *buffer) const;
516
517 int getValueAs(Float64 *buffer) const;
524
525 int getValueAs(Datetime *buffer) const;
532
533 int getValueAs(std::string *buffer) const;
540
541 char getValueAsChar() const;
546
547 Int32 getValueAsInt32() const;
552
553 Int64 getValueAsInt64() const;
558
564
570
576
577 std::string getValueAsString() const;
582
583 void *userData() const;
594
596 const blpapi_Constant_t *impl() const;
598};
599
627
628 blpapi_ConstantList_t *d_impl_p;
629
630 public:
631 explicit ConstantList(blpapi_ConstantList_t *handle);
632 /*
633 * Create a `ConstantList` object having the same value as
634 * the specified `original`. Note that this function does
635 * *not* require cross-object thread synchronization, as it does not
636 * directly read or modify the `userData` field.
637 */
638
639 void setUserData(void *userData);
647
648 Name name() const;
652
653 const char *description() const;
659
660 int status() const;
665
666 int numConstants() const;
671
672 int datatype() const;
678
679 Constant getConstant(const Name& name) const;
686
687 Constant getConstant(const char *name) const;
696
697 Constant getConstantAt(size_t index) const;
704
705 void *userData() const;
716
718 const blpapi_ConstantList_t *impl() const;
723};
724
727
728//=============================================================================
729// INLINE FUNCTION DEFINITIONS
730//=============================================================================
731
732inline Constant::Constant(blpapi_Constant_t *handle)
733 : d_impl_p(handle)
734{
735}
736
737inline Name Constant::name() const
738{
739 return Name(blpapi_Constant_name(d_impl_p));
740}
741
742inline const char *Constant::description() const
743{
744 return blpapi_Constant_description(d_impl_p);
745}
746
747inline int Constant::status() const
748{
749 return blpapi_Constant_status(d_impl_p);
750}
751
752inline int Constant::datatype() const
753{
754 return blpapi_Constant_datatype(d_impl_p);
755}
756
758inline const blpapi_Constant_t *Constant::impl() const { return d_impl_p; }
760
761inline int Constant::getValueAs(char *buffer) const
762{
763 return blpapi_Constant_getValueAsChar(d_impl_p, buffer);
764}
765
766inline int Constant::getValueAs(Int32 *buffer) const
767{
768 return blpapi_Constant_getValueAsInt32(d_impl_p, buffer);
769}
770
771inline int Constant::getValueAs(Int64 *buffer) const
772{
773 return blpapi_Constant_getValueAsInt64(d_impl_p, buffer);
774}
775
776inline int Constant::getValueAs(Float32 *buffer) const
777{
778 return blpapi_Constant_getValueAsFloat32(d_impl_p, buffer);
779}
780
781inline int Constant::getValueAs(Float64 *buffer) const
782{
783 return blpapi_Constant_getValueAsFloat64(d_impl_p, buffer);
784}
785
786inline int Constant::getValueAs(Datetime *buffer) const
787{
788 assert(buffer);
789
790 return blpapi_Constant_getValueAsDatetime(d_impl_p, &buffer->rawValue());
791}
792
793inline int Constant::getValueAs(std::string *result) const
794{
795 const char *buffer = 0;
796 int rc = blpapi_Constant_getValueAsString(d_impl_p, &buffer);
797 if (!rc) {
798 *result = buffer;
799 }
800 return rc;
801}
802
803inline char Constant::getValueAsChar() const
804{
805 char value = 0;
807 return value;
808}
809
811{
812 int value = 0;
814 return value;
815}
816
818{
819 Int64 value = 0;
821 return value;
822}
823
824inline float Constant::getValueAsFloat32() const
825{
826 Float32 value = 0.0;
828 return value;
829}
830
831inline double Constant::getValueAsFloat64() const
832{
833 Float64 value = 0.0;
835 return value;
836}
837
839{
840 Datetime value;
842 return value;
843}
844
845inline std::string Constant::getValueAsString() const
846{
847 std::string value;
849 return value;
850}
851
852inline void Constant::setUserData(void *newUserData)
853{
854 blpapi_Constant_setUserData(d_impl_p, newUserData);
855}
856
857inline void *Constant::userData() const
858{
859 return blpapi_Constant_userData(d_impl_p);
860}
861
862inline ConstantList::ConstantList(blpapi_ConstantList_t *handle)
863 : d_impl_p(handle)
864{
865}
866
868{
869 return Name(blpapi_ConstantList_name(d_impl_p));
870}
871
872inline const char *ConstantList::description() const
873{
874 return blpapi_ConstantList_description(d_impl_p);
875}
876
877inline int ConstantList::status() const
878{
879 return blpapi_ConstantList_status(d_impl_p);
880}
881
882inline int ConstantList::datatype() const
883{
884 return blpapi_ConstantList_datatype(d_impl_p);
885}
886
888{
889 return blpapi_ConstantList_numConstants(d_impl_p);
890}
891
892inline Constant ConstantList::getConstant(const Name& constantName) const
893{
894 blpapi_Constant_t *constant = blpapi_ConstantList_getConstant(
895 d_impl_p, /*nameString=*/nullptr, constantName.impl());
896 if (constant == nullptr) {
897 ExceptionUtil::throwOnError(BLPAPI_ERROR_ITEM_NOT_FOUND);
898 }
899
900 return Constant(constant);
901}
902
903inline Constant ConstantList::getConstant(const char *nameString) const
904{
905 blpapi_Constant_t *constant = blpapi_ConstantList_getConstant(
906 d_impl_p, nameString, /*name=*/nullptr);
907 if (constant == nullptr) {
908 ExceptionUtil::throwOnError(BLPAPI_ERROR_ITEM_NOT_FOUND);
909 }
910
911 return Constant(constant);
912}
913
914inline Constant ConstantList::getConstantAt(size_t index) const
915{
916 blpapi_Constant_t *constant
917 = blpapi_ConstantList_getConstantAt(d_impl_p, index);
918 if (constant == nullptr) {
919 ExceptionUtil::throwOnError(BLPAPI_ERROR_ITEM_NOT_FOUND);
920 }
921
922 return Constant(blpapi_ConstantList_getConstantAt(d_impl_p, index));
923}
924
926inline const blpapi_ConstantList_t *ConstantList::impl() const
927{
928 return d_impl_p;
929}
931
932inline void ConstantList::setUserData(void *newUserData)
933{
934 blpapi_ConstantList_setUserData(d_impl_p, newUserData);
935}
936
937inline void *ConstantList::userData() const
938{
939 return blpapi_ConstantList_userData(d_impl_p);
940}
941
942} // close namespace blpapi
943} // close namespace BloombergLP
944
945#endif // #ifndef __cplusplus
946
947#endif // #ifndef INCLUDED_BLPAPI_CONSTANT
Represents a date and/or time.
Common definitions used by the library.
Defines Exceptions that can be thrown by the blpapi library.
Provide a representation of strings for use as container keys.
Provide BLPAPI types.
Name name() const
Definition blpapi_constant.h:867
int datatype() const
Definition blpapi_constant.h:882
Constant getConstant(const Name &name) const
Definition blpapi_constant.h:892
Constant getConstantAt(size_t index) const
Definition blpapi_constant.h:914
void * userData() const
Definition blpapi_constant.h:937
int status() const
Definition blpapi_constant.h:877
const char * description() const
Definition blpapi_constant.h:872
ConstantList(blpapi_ConstantList_t *handle)
Definition blpapi_constant.h:862
void setUserData(void *userData)
Definition blpapi_constant.h:932
int numConstants() const
Definition blpapi_constant.h:887
Definition blpapi_constant.h:438
Name name() const
Definition blpapi_constant.h:737
Constant(blpapi_Constant_t *handle)
Definition blpapi_constant.h:732
Float32 getValueAsFloat32() const
Definition blpapi_constant.h:824
Int64 getValueAsInt64() const
Definition blpapi_constant.h:817
int datatype() const
Definition blpapi_constant.h:752
char getValueAsChar() const
Definition blpapi_constant.h:803
Datetime getValueAsDatetime() const
Definition blpapi_constant.h:838
void * userData() const
Definition blpapi_constant.h:857
int getValueAs(char *buffer) const
Definition blpapi_constant.h:761
int status() const
Definition blpapi_constant.h:747
Float64 getValueAsFloat64() const
Definition blpapi_constant.h:831
Int32 getValueAsInt32() const
Definition blpapi_constant.h:810
std::string getValueAsString() const
Definition blpapi_constant.h:845
const char * description() const
Definition blpapi_constant.h:742
void setUserData(void *userData)
Definition blpapi_constant.h:852
Definition blpapi_datetime.h:312
blpapi_Datetime_t & rawValue()
Definition blpapi_datetime.h:2018
static void throwOnError(int errorCode)
Definition blpapi_exception.h:556
Definition blpapi_name.h:228
Definition blpapi_abstractsession.h:452
blpapi_Float64_t Float64
64-bit IEEE 754 float type alias.
Definition blpapi_types.h:559
blpapi_Float32_t Float32
32-bit IEEE 754 float type alias.
Definition blpapi_types.h:558
blpapi_Int64_t Int64
64-bit signed integer type alias.
Definition blpapi_types.h:556
blpapi_Int32_t Int32
32-bit signed integer type alias.
Definition blpapi_types.h:554
Definition blpapi_abstractsession.h:451